как отформатировать команду ffmpeg для записи звука от моей веб-камеры

Используя 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

Мог использовать некоторую справку в формулировке правильного формата команды

3
задан 24 July 2012 в 11:13

2 ответа

Следующее является правильным способом:

  1. Введите команду arecord -L.
  2. Найдите значения plughw, соответствующие вашему оборудованию. Обратите внимание, что plughw представляет собой аппаратное обеспечение, которое было подключено к компьютеру.
  3. Перепроверьте значения в каталоге /dev/snd/by-id.
    • При отключении веб-камеры подкаталог by-id исчезнет из каталога /dev/snd. Это отличный тест для подтверждения того, какой plughw является подключенным извне устройством.
  4. Перечисленные здесь идентификаторы звукового устройства будут такими же или соответствуют одному из значений, полученных из команды arecord -L.
  5. Используемая команда: ffmpeg: -f alsa -i plughw.
  6. Обратите внимание, НЕ заключайте значение plughw в кавычки.
  7. Рабочий пример для меня был:

    ffmpeg -f alsa -i plughw:CARD=U0x46d0x821,DEV=0 -acodec libmp3lame -t 20 output.mp4
    
  8. Вы можете добавить видео часть к вышеуказанной команде, добавив:

    -f video4linux2 -i /dev/video0
    

Надеюсь, это поможет. Любой связанный вопрос (ы) приветствуется.

0
ответ дан 24 July 2012 в 11:13

Я быстро прочитал справочную страницу для ffmpeg, и они рекомендуют поискать в / proc / asound / cards

У меня две карты на моей машине 0 и 1, и моя веб-камера равна 1, поэтому команда для меня это

ffmpeg -f alsa -i hw:1
0
ответ дан 24 July 2012 в 11:13

Другие вопросы по тегам:

Похожие вопросы: