【问题标题】:what is The fastest way to scale down a H264 video in 2:1?以 2:1 缩小 H264 视频的最快方法是什么?
【发布时间】:2016-01-25 03:02:21
【问题描述】:

当我使用 ffmpeg 缩放 H264 视频时。似乎视频被解码为原始图,然后缩放然后再次编码。但是如果速度非常关键,如果我指定一个“好”的比例,比如 2:1,有没有更快的方法,好像我想每 4 个像素拾取一个像素一样?

我对h264的工作原理有点了解,8*8/4*4像素被编码为一组,所以在其范围内拾取1/4像素并不容易。但是有没有办法快速将 4 个组合并为一个?

【问题讨论】:

  • 在 ffmpeg 中有很多可用的预设,您可以使用它们来提高编码速度。当前按速度降序排列的预设是:超快、超快、非常快、更快、快、中、慢、慢、非常慢、安慰剂。 PL。以上礼物的使用方法请参考以下链接trac.ffmpeg.org/wiki/Encode/H.264
  • 对不起,如果我表达得不好。我知道 ffmpeg 的存在,我知道快速真的很快。但我想知道是否有一种方法可以完全跳过编码(通过某种方式压缩或删除旧的 264 文件)以获得更快的速度。
  • 你必须重新编码
  • 可能有“更快”或“更慢”的不同缩放选项,但对于下采样,这可能并不重要

标签: encoding ffmpeg h.264 transcoding


【解决方案1】:

当您使用 ffmpeg 进行缩放时,您无法避免对视频的任何部分进行重新编码。对于规模操作,ffmpeg 以管道方式工作,如下所示:

解码器---->定标器----->编码器

Scaler 只有在完全解码的帧可用后才会进行缩放操作。由于每个数据包都通过此管道,编码器仅接收解压缩(YUV 格式)形式的视频帧。因此,每个 YUV 帧都会在缩放操作后重新编码。我想这说明了为什么无法避免重新编码。

缩放比例确实在复杂性中起作用。我猜比例比例 2:1 是可以的,比例比例会影响比例算法中使用的抽头数(滤波器系数)。此外,您可以选择的缩放算法增加了另一层复杂性。 ffmpeg 中最简单的缩放算法是“fast_bilinear”。但请注意视频质量权衡。

当然,编码速度是另一个需要考虑的因素。看来您对此相当了解。一件事,看看您是否可以使用系统中可能提供的硬件解码器和编码器。如果硬件编解码器可用,它将大大提高整个管道的速度。您可以尝试使用 ffmpeg 的 -hwaccel dxva2 选项

【讨论】:

  • 一般来说,硬件编码器不能保证“大大提高”“管道速度”。你有没有在 CPU 和 dxva2 上比较 x264?
猜你喜欢
  • 2013-10-09
  • 2021-07-13
  • 2016-12-08
  • 2016-05-28
  • 2012-10-04
  • 1970-01-01
  • 1970-01-01
  • 2019-03-23
  • 2015-10-28
相关资源
最近更新 更多