什么是以2:1缩小H264视频的最快方法?

时间:2015-10-26 04:34:55

标签: encoding ffmpeg h.264 transcoding

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

我知道h264的工作原理,8 * 8/4 * 4像素被编码为一组,因此在其范围内拾取1/4像素并不容易。但有没有办法快速将4组合并为一组?

1 个答案:

答案 0 :(得分:1)

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

解码器----> Scaler ----->编码器

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

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

当然,编码速度是另一个需要考虑的因素。看来你对此非常了解。有一件事,看看你是否可以使用HW解码器&您的系统中可用的编码器。如果HW编解码器可用,它可以大大提高整个管道的速度。您可以尝试使用-hwaccel dxva2选项进行ffmpeg