FFmpeg 升级视频

FFmpeg 升级视频

首先,我只想多说一下我的标题,我并不是指升级不会添加数据(升级时经常问到) - 而是指一些不同的东西。

例子

我有原始视频 A1 (854x480)

我对 A1 到 B1 进行编码,忽略比例 - 因此保持相同的 854x480。

ffmpeg -i C:\A1.mkv -preset veryslow -crf 24 C:\B1.mkv

我在播放器中播放此视频,并通过放大播放器的窗口来将其放大,视频现在是 1092x614,我保存了第 88 帧的屏幕截图。

我现在将 A1 编码为 C1,指定比例为 1092x614(就像我们的屏幕截图一样)

ffmpeg -i C:\A1.mkv -preset veryslow -crf 24 -filter_complex scale=1092:614 C:\C1.mkv

我保存了 C1 中第 88 帧的屏幕截图,其原始屏幕尺寸为 1092x614

因为我对两种编码都使用了 Raw Original,所以我假设两个屏幕截图看起来会相同 - 但事实并非如此,与手动放大的编码 B1 相比,放大的编码 C1 的质量要差很多。

我认为,当我使用播放器手动升级并查看图像时,ffmpeg 在编码时也会执行相同的操作 - 因此它会看到我看到的相同图像并基于此构建编码,但就好像 ffmpeg 使用的渲染引擎不同/不那么好。

有没有什么办法可以解决这个问题?

我们能用不同的技术实现类似的效果吗?例如编辑原始 Raw A1 的元数据并设置宽度:高度 - 让任何播放器以该尺寸打开视频,在播放时不知不觉地将其放大。

我的用例是尝试模拟大多数主要视频主机可识别的尺寸 - 任何低于阈值的视频都不会被主机使用某些设置进行编码。

答案1

正如您所说,您的原始视频是原始的,这意味着它没有被压缩,当使用播放器手动放大时,它仍然未压缩但经过了插值。意味着它仍然是最高质量的。但 -crf 24 是高压缩,如果您希望视频看起来像放大的原始视频,您可以尝试 -crf 19 或更低。

相关内容