在我的 C# 项目中,我会定期(使用计时器)捕获屏幕。然后我必须使用 FFmpeg 将图像转换为一个视频,因此我使用以下命令:
"-f image2 -framerate 9 -i E:\\REC\\Temp\\%06d.jpeg -r 30 E:\\REC\\Video\\" + s + ".mkv"
可以,但是输出视频的大小很大,只有 1 分钟的视频,大小约为 8 MB。如何在不牺牲质量的情况下缩小视频大小?
答案1
据我所知,MKV 是一个容器,您需要对视频流使用压缩,如下所示:
ffmpeg -r 1/5 -i img%03d.png -c:v libx264 -r 30 -pix_fmt yuv420p out.mp4
在此示例中,每幅图像的持续时间为 5 秒(每秒 1/5 帧的倒数)。通过相应地复制帧,视频流的帧速率将达到 30 fps。
有关详细信息,请参阅FFmpeg wiki 上的这篇文章。