Linux 上同时是使用 ALSA 和 pulseaudio 来处理声音的。 ffmpeg 可以录制两者,不过我要特别说明 pulseaudio, 因为 Debian 系列的发行版默认用了它。命令如下:
在 pulseaudio, 你必须强制指定(-f) alsa 然后指定 default 作为输入 t (-i default):
ffmpeg -f alsa -i default output.mp3
Note: 在你系统音频设置里,应该能看到默认的录音设备。
我经常玩吉他,我平时使用一个专业音频设备才能录制声音,当我发现 ffmpeg 也可以很轻松的录制的时候颇为惊讶。
录制小贴士
对于录制任务来说,通常都需要指定编码器以及帧率,之前讲过的参数当然也可以用到这里来!
ffmpeg -i /dev/video0 -f alsa -i default -c:v libx264 -c:a flac -r 30 output.mkv
有时候不直接录音,而是在录屏/录像的时候给一个音频文件,那么可以这么做:
ffmpeg -f x11grab -s $(xdpyinfo | grep dimensions | awk '{print $2;}') -i :0.0 -i audio.wav -c:a copy output.mp4
Note: ffmpeg 使用片段录取,所有有时候非常短的录制可能不会保存文件。我建议录地可以稍微长一些(然后后期裁剪),已保证录制的文件成功写到磁盘上。