Как отформатировать команду ffmpeg для записи звука с моей веб-камеры
Используя ffmpeg arecord -L, я могу идентифицировать мою веб-камеру Logitech как:
hw:CARD=U0x46d0x821,DEV=0
USB Device 0x46d:0x821, USB Audio
Direct hardware device without any conversions
plughw:CARD=U0x46d0x821,DEV=0
USB Device 0x46d:0x821, USB Audio
Hardware device with all software conversions
когда я захожу в /dev/snd/by-id, веб-камера описывается как:
usb-046d_0821_6813BFD0-00 -> ../controlC1
Я знаю, что команда использовать звуковое устройство в ffmpeg
ffmpeg -f alsa -i $ALSA_DEVICE_NAME..
я пытался
ffmpeg -f alsa -i "hw:CARD=U0x46d0x821,DEV=0" and
ffmpeg -f alsa -i "plughw:CARD=U0x46d0x821,DEV=0"
и в обоих случаях я получаю одно и то же сообщение об ошибке
ALSA lib pcm.c:2208:(snd_pcm_open_noupdate) Unknown PCM hw=CARD=U0x46d0x821,DEV=0
[alsa @ 0x9c96580] cannot open audio device hw=CARD=U0x46d0x821,DEV=0 (No such file or directory)
hw:CARD=U0x46d0x821,DEV=0: Input/output error
Я также пытался
ffmpeg -f alsa -i "usb-046d_0821_6813BFD0-00" and
ffmpeg -f alsa -i "usb-046d_0821_6813BFD0-00,DEV=0" and have still received error message
Могли бы помочь с формулировкой правильного формата команды?
2 ответа
Вот правильный путь:
- Выпустить
arecord -Lкоманда. - Ищите
plughwзначения, которые соответствуют вашему оборудованию. Обратите внимание, что plughw представляет собой аппаратное обеспечение, которое было подключено к компьютеру. - Перепроверьте значения в
/dev/snd/by-idкаталог.- Когда вы отключите веб-камеру (и),
by-idПодкаталог исчезнет из/dev/sndкаталог. Это отличный тест, чтобы подтвердить, какиеplughwэто внешне подключенное устройство.
- Когда вы отключите веб-камеру (и),
- Указанный там идентификатор звукового устройства будет таким же или соответствует одному из значений, полученных из
arecord -Lкоманда. - Команда для использования
ffmpeg: -f alsa -i plughw, - Обратите внимание, НЕ заключайте значение plughw в кавычки.
Рабочий пример для меня был:
ffmpeg -f alsa -i plughw:CARD=U0x46d0x821,DEV=0 -acodec libmp3lame -t 20 output.mp4Вы можете добавить видео часть к вышеупомянутой команде, добавив:
-f video4linux2 -i /dev/video0
Надеюсь, это поможет. Любой связанный вопрос (ы) приветствуется.
Я быстро прочитал справочную страницу по ffmpeg, и они рекомендуют поискать в /proc/asound/cards
У меня есть две карты на моей машине 0 и 1, и моя веб-камера равна 1, поэтому команда для меня
ffmpeg -f alsa -i hw:1