4

使用ffmpeg arecord -L,我能够将我的 Logitech USB 网络摄像头识别为:

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"

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"

ffmpeg -f alsa -i "usb-046d_0821_6813BFD0-00,DEV=0"

并且仍然收到错误消息

您能否帮助制定正确的命令格式

4

2 回答 2

3

我终于可以在 ffmpeg 下使用网络摄像头的声音部分了。正确的做法是不要将硬件值括在引号中。不要用引号将硬件括起来:

ffmpeg -f alsa -i plughw:CARD=U0x46d0x821,DEV=0

代替:

ffmpeg -f alsa -i "plughw:CARD=U0x46d0x821,DEV=0"

我希望这对其他人有帮助。

于 2012-08-01T00:13:43.983 回答
1

也许这有效:

ffmpeg -f alsa -r 16000 -i hw:2,0 -f video4linux2 -s 800x600 -i /dev/video0 -r 30 -f avi -vcodec mpeg4 -vtag xvid -sameq -acodec libmp3lame -ab 96k output.avi

资源

于 2012-07-24T06:07:11.927 回答