使用FFmpeg录制Windows 10桌面时音视频同步录制卡顿问题求助
使用FFmpeg录制Windows 10桌面时音视频同步录制卡顿问题求助
大家好,我遇到了一个FFmpeg录制桌面的奇怪问题,想请教下有没有可行的解决方案。
正常录制纯视频的情况
我原本用以下命令录制1920x1080分辨率的桌面,完全没有性能问题——哪怕是录制Unreal Engine的实时模拟,画面都能流畅输出:
ffmpeg -f gdigrab -draw_mouse 1 -framerate 60 -probesize 42M -rtbufsize 1024M -i desktop -c:v libopenh264 -b:v 30M -g 30 -loopfilter 1 -profile:v main -allow_skip_frames 1 -an C:\Users\User\Desktop\recording.mkv
添加音频录制后的卡顿问题
但当我尝试同时录制系统音频,使用下面的命令时,性能暴跌:哪怕只是拖动资源管理器窗口这种基础桌面操作,视频都会变得极其卡顿,完全没法正常使用:
ffmpeg -f gdigrab -draw_mouse 1 -framerate 60 -probesize 42M -rtbufsize 1024M -thread_queue_size 512 -i desktop -f dshow -channels 2 -sample_rate 44100 -i audio="Stereo-mix (Realtek(R) Audio)" -c:v libopenh264 -b:v 30M -g 30 -loopfilter 1 -profile:v main -allow_skip_frames 1 -c:a libmp3lame -q:a 5 C:\Users\User\Desktop\recording.mkv
我已经尝试过的调整(均无效)
- 将音频编码换成WAV格式(使用
-c:a pcm_s16le参数),本以为能降低CPU占用,但卡顿情况完全没有改善 - 降低录制帧率,同样没能缓解性能问题
更新1:分开进程录制无性能问题
我试着同时运行两个独立的FFmpeg进程,一个专门录视频,一个专门录音频,结果完全没有性能问题!
我写了这样一个批处理文件:
@ECHO OFF REM 单独录制视频 START /b ffmpeg -f gdigrab -draw_mouse 1 -framerate 30 -probesize 42M -rtbufsize 1024M -i desktop -c:v libopenh264 -b:v 30M -g 30 -loopfilter 1 -profile:v high -allow_skip_frames 1 -pix_fmt yuv420p -an C:\Users\User\Desktop\recording.mkv REM 单独录制音频 START /b ffmpeg -f dshow -channels 2 -sample_rate 44100 -i audio="Stereo-mix (Realtek(R) Audio)" -c:a pcm_s16le C:\Users\User\Desktop\recording.wav
这种方式虽然不够优雅,但之后在Adobe Premiere里合并音视频时,同步度还不错。这让我猜测问题可能不是编码器性能的问题,而是FFmpeg在单个进程中同时处理音视频录制任务时出现了冲突或资源调度问题。
更新2:问题似乎与libopenh264编码器相关
我又测试了其他编码器,发现换成VP9编码器+WAV音频时,用单个进程同时录屏录音频完全没有卡顿:
ffmpeg -f gdigrab -draw_mouse 0 -framerate 30 -probesize 42M -i desktop -f dshow -i audio="Stereo-mix (Realtek(R) Audio)" -c:v libvpx-vp9 -r 30 -g 90 -s 1920x1080 -quality realtime -speed 5 -threads 8 -row-mt 1 -tile-columns 2 -frame-parallel 1 -qmin 4 -qmax 48 -b:v 4500k -c:a pcm_s16le C:\Users\User\Desktop\recording.mkv
不过我还没测试其他编码器的情况。
现在想请教各位大佬:有没有人遇到过类似的问题?为什么单个FFmpeg进程使用libopenh264同时录屏录音频就会卡顿?除了分开两个进程运行之外,有没有更优雅的解决方案?
备注:内容来源于stack exchange,提问作者iz_been
相关产品推荐
相关产品推荐

