什么是lib Swscale用于ffmpeg程序员?

时间:2010-07-29 21:43:18

标签: c media mpeg

ffmpeg程序员使用的是什么是lib Swscale?

  • 它为AV编码/解码带来了什么好处?
  • 它与av * libs相关的立场是什么?

2 个答案:

答案 0 :(得分:16)

Swscale主要用于播放器,而非编码/解码。如果您希望以不同于其编码的像素大小/宽高比显示视频,并且您没有硬件视频缩放支持,则必须这样做。 Swscale还可以在各种RGB和YUV颜色格式之间执行颜色空间转换,以及打包(单个缓冲区中的所有通道)和平面(每个通道都有自己的缓冲区)格式之间的转换。所有这些例程都经过高度优化;据我所知,目前还没有更快的软件实现,至少在x86和x86_64上。

如果源视频尚未采用编码器所需的格式,则可能还需要Swscale来编码视频。例如,如果您的源视频是RGB,您可能需要将其转换为适当的YUV平面格式,因为大多数编解码器都在YUV上工作。这需要色彩空间转换(R,G,B矢量的仿射变换)和实际缩放(重新采样),因为大多数YUV格式使用半分辨率U和V平面(彩色平面)与Y平面(亮度,即亮度)相比强度数据)。

答案 1 :(得分:2)

swscale也可以进行高质量的重采样,例如:使用lanczos算法。所以基本上它在颜色空间之间转换,在#34;位数和#34;之间转换,并且还调整大小。它也有使用MMX等的选项,因此可以很快。