ffmpeg 程序员使用 lib Swscale 做什么?
- 它对 AV 编码/解码有什么好处?
- 它与 av* 库相关的位置是什么?
最佳答案
swscale 主要用于播放器,不用于编码/解码。如果您想以不同于编码时的像素大小/纵横比显示视频,并且您没有硬件视频缩放支持,则这是必要的。 Swscale 还执行各种 RGB 和 YUV 颜色格式之间的色彩空间转换,以及打包(所有 channel 在一个缓冲区中)和平面(每个 channel 都有自己的缓冲区)格式之间的转换。所有这些例程都经过高度优化;据我所知,目前还没有更快的软件实现,至少在 x86 和 x86_64 上是这样。
如果源视频尚未采用编码器所需的格式,则可能还需要 Swscale 来编码视频。例如,如果您的源视频是 RGB,您可能需要将其转换为适当的 YUV 平面格式,因为大多数编解码器都适用于 YUV。这需要色彩空间转换(R、G、B vector 的仿射变换)和实际缩放(重采样),因为与 Y 平面(亮度,即强度数据)。
关于c - ffmpeg 程序员使用的 lib Swscale 是做什么用的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3367187/