2

我一直在 Mac 上使用 Quicktime 录制屏幕共享演示文稿,它使用 x264 格式,速度约为 60fps。制作的视频文件为 MOV 类型,大约 2.2GB 用于 1 小时的演示。我想使用 ffmpeg 压缩它,我也一直在使用 x264 压缩它。以下是我的论点:

ffmpeg -i '$inputFile' -vcodec "libx264" -crf 32 -vf 'scale=${width}:-2,fps=24' -c:a aac -b:a 128k -preset veryslow -profile:v high -tune stillimage -f mp4 '$outputFile'

我将视频重新缩放为 1600 像素宽度以节省空间,并且我还将录制转换为 24 fps,因为我认为不需要完整的 ~60 fps 可用。当我在屏幕上讲话时,它主要是静态图像。这导致使用该-profile:v high参数的文件大约为 100MB。否则大约为 160MB。

另一方面,更大分辨率(4k 等)的缩放记录约为每 1 小时 80MB。有谁知道我们可以使用哪些选项来近似此文件大小和质量?我知道他们使用的是质量较低的音频,这可能会解释其中的一些差异。

但是,如果我增加-crf 32论点,它就会开始过多地降低质量。我不确定 Zoom 如何以 1080p 和 4k 等高分辨率实现其视频质量,文件大小约为 80MB,而我无法使用 1600px 宽度匹配它。

编辑:我有一个想法,在静态内容的屏幕共享中我可能不需要所有 24 fps。所以我把它降低到 5 fps,这似乎很适合我的用例。我想知道这是否是Zoom所做的?

4

1 回答 1

2

看起来我能够找到如何使用 ffmpeg 进行可变帧速率编码并保持音频和视频同步。

我使用参数-vf mpdecimate -vsync vfr来删除重复的帧。在屏幕录制中,我们有很多重复的帧,因此删除它们会导致文件大小更小。我也使用-cfr 36它,因为我发现它仍然可以产生良好的效果,因为现在我以原始分辨率进行编码。

这提供了非常好的原始分辨率编码,文件大小比 Zoom 稍大,但结果对音频和视频都有更好的质量。我很高兴。

我创建了一个工具来自动化转换:https ://github.com/stanimirivanovde/general-tools/tree/master/ffmpeg-encoding

我也尝试过使用 x265,但我没有发现它更胜一筹。编码速度比 x264 慢得多,这真的不行。我试图将其cfr增加到 40,但这导致文本质量不佳。

于 2020-10-25T22:12:06.563 回答