我应该按照什么顺序使用 ffmpeg 的稳定和压缩?

我应该按照什么顺序使用 ffmpeg 的稳定和压缩?

我用佳能 Vixia 拍摄足球比赛视频,该设备以 60fps 的帧率录制高清视频,并采用 h264 压缩。从相机拍摄的视频文件大小为 20GB,我使用 h265 重新压缩这些文件(以节省存储空间并提高上传速度),比特率上限为 7000k,帧率上限为 60fps,质量足以满足我的需求。我使用带有 AMD 显卡的 hevc_amf 编码器,它可以在大约 40 分钟内重新压缩 1 小时 20 分钟的高清视频(2 倍),我对此非常满意。

最近,我学会了如何使用 vidstab,它确实能很好地清理我的抖动视频。所以现在我想在存档之前使用 vidstab 进行稳定并重新压缩为 h265。我正在寻找一些关于如何以最有效的方式对工作流程进行排序同时仍能获得良好结果的建议。我应该 1) 首先对我的原始 20G 文件执行 vidstab(检测和转换过程)吗?或者,我应该 2) 在进行稳定之前使用硬件加速的 hevc_amf 编码器重新压缩吗?

  1. 如果是第一个选项,则有一个后续问题。我按如下方式运行 vidstabtransform:
ffmpeg.exe -i input.mp4 -vf vidstabtransform,unsharp=5:5:0.8:3:3:0.4 outputstabilized.mp4

这是根据 ffmpeg.org 文档。它似乎将比特率从原来的 30Mbps 更改为大约 10Mbps。这是为什么?我可以控制它并保持原始比特率吗?我应该吗?(另外,我需要锐化蒙版吗?这是因为稳定器有一些固有的缩放吗?)。

这种方法的缺点似乎是使用 h265 可以获得更好的压缩由于像素的移动较少,因此稳定性较高,但可能差别并不大。

  1. 如果选择第二种方式,我还能控制稳定输出的比特率吗?

如果有人有其他推荐的工作流程,我也会洗耳恭听。(我曾考虑过尝试使用复杂的滤镜图,但它们看起来……很复杂 :) 而且我还没有花时间去理解它们)。

提前致谢!

答案1

vidstabdetect对原始文件运行过滤器。

vidstabtransform也在原始文件上运行过滤器,但使用 HEVC 编码器来生成最终输出。过滤器在编码器之前运行,因此转换将在将原始输入的帧发送到编码器之前稳定这些帧。

相关内容