ffmpeg 同时录制音频+视频的正确参数是什么?

ffmpeg 同时录制音频+视频的正确参数是什么?

我一直在网上搜索如何录制带有视频和音频的流媒体播放。我找到了这个方法:

ffmpeg -video_size 1920x1080 -framerate 25 -f x11grab -i :0.0 -f pulse -ac 2 -i default recording.mkv

可能是其中一个-i参数错误:显示的命令只给我视频通道的记录,没有声音。

之前,我在寻找纯音频录制的配方时,被告知要查看

pactl list short sources

0   alsa_output.pci-0000_00_1b.0.analog-stereo.monitor  module-alsa-card.c  s16le 2ch 44100Hz   SUSPENDED
1   alsa_output.usb-Sennheiser_Communications_Sennheiser_USB_headset-00.analog-stereo.monitor   module-alsa-card.c  s16le 2ch 48000Hz   SUSPENDED
2   alsa_input.usb-Sennheiser_Communications_Sennheiser_USB_headset-00.multichannel-input   module-alsa-card.c  s16le 1ch 48000Hz   SUSPENDED

并将结果替换为 ALSA 输出设备。因此我将其替换 alsa_output.usb-Sennheiser_Communications_Sennheiser_USB_headset-00.analog-stereo.monitor为命令

ffmpeg -f pulse -i alsa_output.usb-Sennheiser_Communications_Sennheiser_USB_headset-00.analog-stereo.monitor -ac 2 recording.mp3

并且我可以用它录制纯音频播放。

我对我的第一个试验命令进行了类似的修改:

ffmpeg -video_size 1920x1080 -framerate 25 -f x11grab -i :0.0 \
-f pulse -ac 2 \
-i alsa_output.usb-Sennheiser_Communications_Sennheiser_USB_headset-00.analog-stereo.monitor \
recording.mkv

但这又一次让我只能听到无声录音。我的命令肯定不对,虽然我在录音过程中听到了耳机里的声音,但在播放时却听不到。

进行音频+视频录制的正确命令是什么?

答案1

您的问题是,您直接放置-i音频源的标志,将其放在输入格式之后-f pulse

这将是你的命令ffmpeg -video_size 1920x1080 -framerate 25 -f x11grab -i :0.0 -f pulse -ac 2 -i default -c:v libx264 -c:a aac -strict experimental recording.mkv

如果您想使用特定的音频,请替换default您想要的源。

此外,此命令还将以指定的尺寸和帧速率从屏幕录制视频,从指定的音频源录制音频,并使用 H.264 视频编解码器和 AAC 音频编解码器将输出保存在 MKV 文件中:

ffmpeg -video_size 1920x1080 -framerate 25 -f x11grab -i :0.0 -f pulse -ac 2 -i alsa_output.usb-Sennheiser_Communications_Sennheiser_USB_headset-00.analog-stereo.monitor -c:v libx264 -c:a aac -strict experimental recording.mkv

答案2

ffmpeg -s 1920x1080 -framerate 25 -f x11grab -i :0.0 -f pulse -i 0 file.mp4

如果你想录制麦克风的音频,-f pulse -i 10使用上面的命令

相关内容