LINUX.ORG.RU

Проблемы с захватом звука с камеры

 , ,


0

1

Доброго времени суток!

Итак, на носу пробное ЕГЭ в девятых классах. Необходимо организовать видеорегистрацию этого действа в аудиториях. Транслировать куда-либо это видео какбэ и не нужно, необходимо лишь записать локально. Со звуком.

Выходя с совещания по этому поводу я рассчитывал, что вот приду щас, открою wxcam или ещё какой cheese, пока решившие использовать венды будут мучительно искать что-то бесплатное и работоспособное (сам я ни разу под вендами вебку не юзал и даже не интересовался что там окромя скайпа её могёт юзать, а на совещании были высказаны утверждения, что бесплатно писать поток с вебки ничто не умеет, 4.2 наверное). Дома как раз стоял бюджетный ацер с Зузей 13.1 на борту, посему и было решено пробовать на нём. Внезапне в wxcam всё заработало замечательно. Видео, звук, файл правда слегка большеватым выходил, да и не было возможности проверить смогёт ли оно 4 часа писать и не упасть при этом. Решил продолжить опыты на работе с утреца. Дополнительно выяснил, что vlc оказывается тоже много чего умееет, в том числе писать с вебки в файл, да к тому же с выбором формата этого самого файла. Очень захотелось попробовать вывод в webm, вроде должно было получиться менее объёмно. На ацере с влц не сложилось, ибо вместо видео получалось слайдшоу с частотой кадров где-то один в 3-5 секунд.
Итак, с утра началось тестирование. Подцепил к учительскому десктопу вот это:

Bus 002 Device 008: ID 04f2:a133 Chicony Electronics Co., Ltd Gateway Webcam 
На самой камере вообще маркировка отсутствует, но устройство умеет 1280*1024 и снабжено вполне удобным креплением. Запускаем vlc, меня слегка смутило, что нужно отдельно указать устройство захвата звука, причём вбивать вручную, ибо в списке было только хдми с видяхи, но решил, что раз вебка устройство комлексное, то может быть хватит указанного видеоустройства. Я сильно ошибался. Видео пишется отлично, но вот аудиопотока нет, вообще. При всём при этом пульса камеру видит, кде тоже. Пульса даже показывает, что микрофон исправен. Я погуглил статьи, но нигде не нашёл каким образом указать влц нужное устройство для захвата звука или как вывести пути до всех звуковых устройств средствами линапсов. Решил не париться с влц, но wxcam тоже пишет на этой машине без звука. V4l обновлял до крайней версии, также как и всякие пульсы с влц. Звука нет, нет его и от встроенной камеры на samsung R528, хотя как видеоустройство оно ок работает.

Взял бук с вендой, прицепил камеру, открыл влц. Она там отображается как в списке аудиоустройств, так и видео. Обидно, однако.

В общем, кто может объяснить, что я делаю не так или что будет проще и удобнее использовать? Сам я в двадцати аудиториях запись разом не включу. Надо чтобы сидящая в конкретном кабинете училка просто ткнула кнопычку и запись пошла.

★★★

в камере микрофон то есть? он должен определяться как отдельное usb audio устройство и быть виден в пульсе/алсе

HighwayStar ★★★★★ ()
Последнее исправление: HighwayStar (всего исправлений: 1)
Ответ на: комментарий от HighwayStar

Есть. Виден. Даже есть реакция на звук (по статусбару в пульсе). На R528 Сейчас проверю, но там микрофон рабочий, ибо при увеличении громкости через gmixer через динамики звук с встроенного микрофона выводит.

Vier_E ★★★ ()
Ответ на: комментарий от Vier_E

И так, по ноутбуку, там микрофон какбэ отдельный от камеры, посему его удалось настроить средсвами пулься и КДЕ, единственное - он фонит, если громкость выше 20% поднять. Зачем-то сразу пытается вывести звук на динамики, а вот способов избежать именно эха и писка не знаю. С вендов помню там специальная галочка была в реалтековских дровах. Может в линапсе отдельная команда есть?

Vier_E ★★★ ()
Ответ на: комментарий от Vier_E

я не знаю как в линапсе, но если в системе пульса, то что-то типа

pactl load-module module-echo-cancel
setenv("PULSE_PROP", "filter.want=echo-cancel", 1)

registrant ★★★★★ ()
Ответ на: комментарий от registrant

А можно поподробнее спросить, что именно делает эта команда. Ибо внезапне микрофон в списке устройств появился. Если возможно, то как можно подробнее по всем элементам. Если не затруднит, конечно.

Vier_E ★★★ ()
Ответ на: комментарий от Vier_E

Да, в wxcam теперь есть звук, хотя микрофон в списке устройств таки пропал. Сам. В влц всё по прежнему.

Vier_E ★★★ ()
Ответ на: комментарий от registrant

До меня только сейчас дошло, что это твет на вопрос по эху. Эм, тогда я совсем не понял, почему заработал звук в вхкаме.

Vier_E ★★★ ()
Ответ на: комментарий от Vier_E

первая загружает модуль фильтра эхоподавления, вторая говорит пульсе, чтобы его использовала

registrant ★★★★★ ()
Ответ на: комментарий от registrant

Спасибо. Вот ещё в чём прикол. При появлении микрофона его громкость стояла на нуле. Пока этот девайс был доступен я выкрутил её до 60%, после этого звук появился, но девайс пропал, оставив в списке уже имеющуюся камеру. Хотя для неё я до этого выставлял громкость на 80. Почему может так быть?

Vier_E ★★★ ()
Ответ на: комментарий от Vier_E

для vlc вроде есть какой-то свой фильтр для эха, насчет wxcam не в курсе

registrant ★★★★★ ()
Ответ на: комментарий от registrant

Нет, я сейчас не про эхо, а про включение микрофона, именно после настройки появившегося девайса.

Vier_E ★★★ ()

Итак, при выборе звукового устройства hw 2,0 в логе влц получаем:

access_alsa error: cannot open ALSA device "hw:2,0": Устройство или ресурс занято
main error: open of `alsa://hw:2,0' failed
xcb_window error: X11 key press support not compiled-in
main error: Failed to resize display
Чем оно могёт быть занято, если верить пульсе в этот момент запись никаким приложением не ведётся. При старте wxcam в павуконтроле на вкладке «Запись» появляется камера. И звук есть. В случае с влц получаем ошибку открытия. wxcam в этот момент закрыт, других звукозаписывающих прог не наблюдается.

Vier_E ★★★ ()
Ответ на: комментарий от Vier_E

Итак, проблема вроде как решилась, а вроде как и нет.
Звук с камеры заработал! Но для этого необходимо закрыть медиаприложения (я закрывал даже тушонку) и переподключить камеру посредством выдёргивания шнурка усб из компьютера. По ощущениям - тот ещё костыль, но я так и не понял, что у нас занимает устройство и не отдаёт его обратно. Сомнительно, что это плеер. Может быть это павуконтрол или ещё какая фигня.
Надеюсь тут появятся знающие люди и пояснят, чому всё так. А я пока перехожу ко второму этапу: попытке транслировать поток по хттп с одновременной записью в файл. Ещё раз спасибо registrant За пояснение по устранению помех для микрофона.

Vier_E ★★★ ()
Ответ на: комментарий от Vier_E

Посмотреть, кто занял устройство:

fuser -v /dev/snd/*
Но я и так скажу: PulseAudio server занял hw:2.0. Если используешь пульс, то используй его всегда и во всех приложениях, не лезь сам напрямую к альсе. Если хочешь использовать и альсу, и пульс одновременно, то придется разобраться в устройстве всех кругов ада, т.е. маршрутизации звука.

Запись и трансляцию можно склеить из ffmpeg + motion + apache|nginx|ffserver. Эта связка работает месяцами и не падает.

H.264, вещание - в общем случае браузер не умеет, потребуется плагин. Если тебе непременно http, то рекомендую HLS, сейчас это модно-молодежно.

fopen ★★ ()
Ответ на: комментарий от fopen

Вот пасибки! Занял павуконтрол, как я понял. Я ж его открытым держал, чтобы в списке устройств увидеть, что hw 2,0 именно камера. Я, честно говоря, себя в начале сам запутал решив, что это хдми с видяхи. ССЗБ, короче.

Итак, всё пишется-смотрится, но я не понял, чому ВЛЦ лезет к альсе (хотя выводит через пульсу по настройкам), самое замечательное - трансляция. Связку theora+vorbis кушает лиса и симанкей, но под линапсом в них нет звука (может какой адблок блокирует, хотя в симанке плагинов не ставил вообще?), в венде есть. Вендоопера, ишак и хромог ниасилили трансляцию и начали сохранять файл. Ещё в догонку вопрос: Как отучить влц от глобального прокси? У меня основной системный - привокся+тор, а вот чтобы принять трансляцию надо именно отучить, ибо в еррорах он материт глобальный прокси за 503 ошибку. Просто не хочется лишний раз плодить треды, учитывая, что всё остальное весьма ок.

P.S. Оказывается, что отучать надо и СМплеер, но там также настроек нема для этого.

Vier_E ★★★ ()
Последнее исправление: Vier_E (всего исправлений: 1)
Ответ на: комментарий от Vier_E

Прокси устанавливается через переменные окружения. Если в системных настройках установлен прокси, а надо запустить программу без прокси, то можно так:

http_proxy= smplayer ...
Обрати внимание: пробел после знака «=». Можно еще с переменной no_proxy попробовать, но у меня сомнения, что ее все программы умеют.

Звука нет в firefox - обычно это из-за двух и более звуковых карт. Здесь надо смотреть `aplay -L` - как определено устройство «default», на какое физическое устройство оно назначено. Раз ты используешь pulseaudio, то стоит раз и навсегда заткнуть default на пульс, /etc/asound.conf:

pcm.!default {
    type pulse
}
ctl.!default {
    type pulse
}

Ну, и, ты выбирай выражения здесь. Про «Линапс» я рассказывать тебе больше ничего не буду. Разве что, ты отмажешься, сказав, что на украинском это уменьшительно-ласкательная форма.

fopen ★★ ()
Последнее исправление: fopen (всего исправлений: 1)
Ответ на: комментарий от fopen

Ага, понятно. Значит в конфиги надо глянуть.

Вывод меня тоже немножко поразил:

aplay -L
null
    Discard all samples (playback) or generate zero samples (capture)
default
    Default ALSA Output (currently PulseAudio Sound Server)
sysdefault:CARD=Intel
    HDA Intel, VT1708S Analog
    Default Audio Device
front:CARD=Intel,DEV=0
    HDA Intel, VT1708S Analog
    Front speakers
surround40:CARD=Intel,DEV=0
    HDA Intel, VT1708S Analog
    4.0 Surround output to Front and Rear speakers
surround41:CARD=Intel,DEV=0
    HDA Intel, VT1708S Analog
    4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=Intel,DEV=0
    HDA Intel, VT1708S Analog
    5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=Intel,DEV=0
    HDA Intel, VT1708S Analog
    5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=Intel,DEV=0
    HDA Intel, VT1708S Analog
    7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
iec958:CARD=Intel,DEV=0
    HDA Intel, VT1708S Digital
    IEC958 (S/PDIF) Digital Audio Output
hdmi:CARD=NVidia,DEV=0
    HDA NVidia, HDMI 0
    HDMI Audio Output
hdmi:CARD=NVidia,DEV=1
    HDA NVidia, HDMI 1
    HDMI Audio Output
hdmi:CARD=NVidia,DEV=2
    HDA NVidia, HDMI 2
    HDMI Audio Output
hdmi:CARD=NVidia,DEV=3
    HDA NVidia, HDMI 3
    HDMI Audio Output
В любом случае он определит две звуковых, ибо хдми на невидии ещё.

А по поводу линапса/лялеха/пингвина - это уже от привычки зависит. Как в разговорной речи употребляю, так обычно и пишу. Это не есть гут, да.

Vier_E ★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.