Используя ffmpeg arecord-L, я могу определить свою веб-камеру usb 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
Мог использовать некоторую справку в формулировке правильного формата команды
Следующее является правильным способом:
arecord -L
. plughw
, соответствующие вашему оборудованию. Обратите внимание, что plughw представляет собой аппаратное обеспечение, которое было подключено к компьютеру. /dev/snd/by-id
. by-id
исчезнет из каталога /dev/snd
. Это отличный тест для подтверждения того, какой plughw
является подключенным извне устройством. arecord -L
. ffmpeg: -f alsa -i 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