You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows下处理ffmpeg gdigrab原始输出的技术问题求助

解决录屏像素错乱及重新编码问题

问题根源

你用-vcodec copy直接复制gdigrab的原始流到AVI容器时,gdigrab默认输出的是BGR格式的未压缩视频流,但AVI容器没有正确标记该像素格式,导致播放器用错误的格式解析,出现像素错乱。同时直接复制未压缩流虽然CPU占用低,但文件体积极大,后续需要重新编码。

一、正确的低CPU录屏命令(避免生成错乱文件)

要在低CPU负载下录屏,优先选择未压缩原始帧存储或低开销无损编码,确保流封装正确:

1. 未压缩原始帧(最低CPU开销)

用NUT容器比AVI更适合存储未压缩流,避免格式兼容问题:

ffmpeg -f gdigrab -i desktop -t 00:00:05 -c:v rawvideo -pix_fmt yuv420p -y testing.nut

如果坚持用AVI,需明确指定编码为rawvideo并确保像素格式标记正确:

ffmpeg -f gdigrab -i desktop -t 00:00:05 -c:v rawvideo -pix_fmt yuv420p -y testing.avi

2. 低CPU无损编码(文件更小,CPU开销仍很低)

用FFV1编码,比未压缩体积小一半左右,CPU占用远低于H.264:

ffmpeg -f gdigrab -i desktop -t 00:00:05 -c:v ffv1 -level 3 -pix_fmt yuv420p -y testing.avi

二、修复已生成的错乱文件并重新编码

针对你已有的testing.avi,需要强制FFmpeg用正确的像素格式解码原始流,再重新编码为压缩格式:

ffmpeg -c:v rawvideo -pix_fmt bgr0 -i testing.avi -c:v libx264 -crf 23 -preset medium -pix_fmt yuv420p -y output.mp4

参数说明:

  • -c:v rawvideo -pix_fmt bgr0:强制按gdigrab默认的BGR格式解码输入文件
  • -c:v libx264:用H.264编码压缩文件
  • -crf 23:控制画质,数值越小画质越好(范围0-51,23为默认)
  • -preset medium:平衡编码速度和压缩率,可选fast/slow等(越慢压缩率越高)

内容的提问来源于stack exchange,提问作者jugglingcats

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 19:42:12