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

标签 c media mpeg

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/

相关文章:

无法在C程序中拆分数组

c++ - 实现 clrscr() 函数以了解其工作原理

c - 函数 "fgetc ()"暂时无法正常工作

C:排序的输入序列

Django 媒体文件在生产中未显示为 Debug = False - Django 1.10

html - 以 HTML 格式播放 MPEG-1 视频

php - 如果没有附加元素,Wordpress 媒体按钮不起作用?

php - WordPress : Allow zip files in media to upload

java - 在java中获取mp3音频信号作为数组

mp3 - Chromium嵌入式框架MP3支持