微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

当 ffmpeg 正在录制时,我希望它创建一个更小、质量更低的视频

如何解决当 ffmpeg 正在录制时,我希望它创建一个更小、质量更低的视频

目前我正在使用这个...

ffmpeg -video_size 1920x1080 -framerate 1 -f x11grab -i :0.0+0,0 -f pulse -ac 2 -i default -t 00:00:10 Output.mkv

当 ffmpeg 正在录制视频时,与上面的 ffmpeg 命令相比,我希望它能够显着降低大小质量

如果您感到好奇,我正在录制简短的质量保证视频,以确保我用 Python 编写的一个简单的小型网络抓取工具正确抓取数据(具体而言,它在特定时间点击特定按钮特定网页)。我的 Python 脚本触发了上面的命令,在我的 Python 脚本应该点击该按钮之前几秒钟开始录制我的屏幕。

当然,要验证网页上的按钮是否被点击,低质量的视频分辨率通常就足够了。

解决方法

对于 libx264/libx265,减少大小和质量的最重要选项是 -crf。此选项控制质量。值 51 提供最差的质量。如果它太可怕了,那就用一个较小的数字。

ffmpeg -video_size 1920x1080 -framerate 1 -f x11grab -i :0.0+0,0 -f pulse -channels 2 -i default -t 00:00:10 -c:v libx264 -crf 51 -c:a libopus Output.mkv

FFmpeg Wiki: H.264

,

为了显着降低 Output.mkv 的大小和质量,您可以使用下一个 ffmpeg 配置:

裁剪:iw-(以像素为单位的切割宽度):ih-(以像素为单位的切割高度)

scale:设置比例和分辨率(例如 1700x800)

crf:设置质量,其中 0 是无损,23 是默认值,51 是最差的。较低的值表示较高的质量,主观上合理的范围是 18-28。将 18 视为视觉无损

比特率值:-b:v value -minrate value 和 -maxrate max value(例如 - b:v 4000K -minrate 2000K -maxrate 6000K)

预设:理论上慢是最好的质量/尺寸,你可以超快探测 超快 非常快 快点 快速地 中 – 默认预设 慢 慢点 很慢

剪下一部分视频,改分辨率,改crf,和码率,先只做视频,然后其他工作可以加音频,不要混,重复,很重要,音视频分开编解码,然后你可以混合所有,但首先是这个例子中的视频

ffmpeg -i  Output.mkv   -map 0:v  -vf  crop=iw-150:ih-85,scale=ih*16/9:ih,scale=1072:732,setsar=1   -c:v libx264 -crf 17  -b:v 4000K -maxrate  6000K -bufsize 4M   -movflags -faststart  -preset veryfast -dn video-new.mkv

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。