参考官方文档和另一篇博客文章后,我现在有以下脚本:
A="$(pacmd list-sources | grep -PB 1 "analog.*monitor>" | head -n 1 | perl -pe 's/.* //g')"
F="/home/enan/Videos/$(date --iso-8601=minutes | perl -pe 's/[^0-9]+//g').mkv"
V="$(xdpyinfo | grep dimensions | perl -pe 's/.* ([0-9]+x[0-9]+) .*/$1/g')"
ffmpeg -video_size "$V" -framerate 25 -f x11grab -i :0.0 -f pulse -i "$A" -f pulse -i default \
-filter_complex amerge -ac 1 -preset veryfast "$F"
该脚本基本上会产生以下命令:
ffmpeg -video_size 1366x768 -framerate 25 -f x11grab -i :0.0 -f pulse -ac 2 -i default output.mkv
在这种情况下,使用-ac 2
,与捕获的视频一起添加的音频具有某种麦克风。我使用的是笔记本电脑,没有麦克风,因此我不完全知道添加外部声音的设备,但确实如此。但是我可以通过耳机插孔听到的主要音频中的任何音频都不会添加到视频中。
如果我改用-ac 1
,则视频现在将获得外部音频和内部音频。那很好。但是如何将视频限制为仅添加内部音频,而不添加从麦克风或类似内容获得的音频。
我不知道是否有帮助,但是无论如何都要添加它。来自man mpv
:
-ac[:stream_specifier] channels (input/output,per-stream)
Set the number of audio channels. For output streams it is set by
default to the number of input audio channels. For input streams this
option only makes sense for audio grabbing devices and raw demuxers and
is mapped to the corresponding demuxer options.