当我尝试使用此类似命令进行录制时遇到了完全相同的问题(请注意,我正在尝试使用无损截屏视频编解码器 huffyuv 而不是尝试直接编码为 x264):
avconv -f alsa -i pulse -f x11grab -r 30 -s 1920x1080 -i :0.0 -vcodec huffyuv -acodec libmp3lame -ac 1 -threads auto screencast.avi
在花了太多时间进行实验之后,我发现如果我将详细程度设置为“安静”,那么“跳过”或“断断续续”会有所改善:
avconv -v quiet -f alsa -i pulse -f x11grab -r 24 -s 1920x1080 -i :0.0 -vcodec huffyuv -acodec libmp3lame -ac 1 -threads auto screencast.avi
我发现完全消除问题的唯一方法是在两个 avconv 实例中分别录制视频和音频,然后杀死它们以停止录制:
哈夫尤夫:
avconv -v quiet -f x11grab -r 24 -s 1920x1080 -i :0.0 -vcodec huffyuv -threads auto video.mkv & \
avconv -v quiet -f alsa -i pulse -ar 22050 -ab 32 -ac 1 -threads auto audio.mp3 &
x264:
avconv -f x11grab -r 24 -s 1920x1080 -i :0.0 -qscale 0 -vcodec libx264 -crf 26 -preset superfast -v quiet -threads auto -y 001.mkv & \
avconv -f alsa -i pulse -acodec libmp3lame -ar 22050 -ab 32 -ac 1 -threads auto -v quiet -y 001.mp3 &
avconv 的两个实例都在后台运行。要停止录制,请同时杀死它们:
kill %1 %2
要将音频和视频重新拼接为一个文件:
avconv -i video.mkv -i audio.mp3 -c:a copy -c:v copy video_and_audio.mkv