我正在尝试使用以下命令将录像带录制为数字形式:
ffmpeg -f v4l2 -video_size 720x480 -i /dev/video2 -channel_layout stereo -f alsa -i hw:1,0 -c:v libx264 -pix_fmt yuv420p -b:v 2M -crf 23 -c:a aac -b:a 128K -to 00:00:30 -preset fast -report tape1.mkv
我收到此错误:
[alsa @ 0x55ede20aa9e0] cannot open audio device hw:1,0 (Device or resource busy) hw:1,0: Input/output error
我的录像机已插入 USB 录音设备。
arecord -l
产生这个:
**** List of CAPTURE Hardware Devices **** card 0: NVidia [HDA NVidia], device 0: CS4206 Analog [CS4206 Analog] Subdevices: 1/1 Subdevice #0: subdevice #0 card 1: USB20 [AV TO USB2.0], device 0: USB Audio [USB Audio] Subdevices: 1/1 Subdevice #0: subdevice #0
我不打算使用 alsa。我只是不知道还能用什么来让它发挥作用。
fuser -fv /dev/snd/* /dev/dsp*
产生这个:
Specified filename /dev/dsp* does not exist. USER PID ACCESS COMMAND /dev/snd/controlC0: matt 30999 F.... pulseaudio /dev/snd/controlC1: matt 30999 F.... pulseaudio
如果我将其传递给 VLC,VLC 可以使用音频流式传输输入:
v4l2:// :input-slave=alsa:// :v4l2-standard=0
但我不知道如何将其传递给 ffmpeg。
我可以使用 VLC 录制这些录像带。但我更喜欢使用 ffmpeg 来完成这项工作。
答案1
尝试将音频设备定义为hw1
。
您还可以尝试暂停 Pulse:
pasuspender -- ffmpeg -f v4l2 -video_size 720x480 -i /dev/video0 -channel_layout stereo -f alsa -i hw:1 -c:v libx264 -pix_fmt yuv420p -b:v 2M -crf 23 -c:a aac -b:a 128K -to 00:00:30 -preset fast -report tape1.mkv