使用ffmpeg录制来自网络摄像头的声音

4

使用 ffmpeg arecord -L 命令,我可以识别我的罗技 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"

我一直收到错误信息,请问您能否帮助制定正确的命令格式

2个回答

2

我终于成功使用了ffmpeg下webcam的声音部分。正确的做法并不是将硬件值用引号括起来。不要将硬件值用引号括起来:

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

替代方案:

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

希望这能帮助其他人。


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

来源


谢谢您的建议。对于命令的声音/音频部分,我仍然收到相同的错误,无法识别音频硬件。<br/><br/> 斜体 **粗体 “ALSA lib pcm_hw.c:1401:(_snd_pcm_hw_open) Invalid value for card [alsa @ 0xb0e7620] cannot open audio device hw:2,0 (No such file or directory)<br/> hw:2,0: Input/output error" - user1545779
我在尝试格式化我上传的内容时遇到了问题。到目前为止,我还没有成功。我觉得帮助说明太简略了。我需要一些更清晰的教程来标记我上传的内容。谢谢。 - user1545779

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接