[FFmpeg开发] 视频基础知识

分辨率

X轴的像素个数 * Y轴的像素个数
常见宽高比 16:9 / 4:3
常见分辨率:360P/720P/1K/2K,都是16:9的

帧率

每秒采集/播放图像的个数,帧率越高视频越流畅,分辨率越高图像越清晰

未编码视频的RGB码流

RGB码流 = 分辨率(宽高) 3(Byte) * 帧率,3是RGB,如:
1280
720
3*25 = 69120000约69M

YUV

Y表示明亮度,UV是描述影像色彩及饱和度。
早期的电视都是黑白的,即只有亮度值,即Y。有了彩色电视以后,加入了UV两种色度,形成现在的YUV:
Y:亮度,就是灰度值。除了表示亮度信号外,还含有较多的绿色通道量。
U:蓝色通道与亮度的差值。
V:红色通道与亮度的差值。

主要采样格式有:YUV4:2:0、YUV4:2:2、YUV4:4:4
YUV4:4:4 表示完全取样,每一个Y对应一组UV分量。 一个YUV占 8+8+8 = 24bits,3个字节。


[FFmpeg开发] 视频基础知识_第1张图片

YUV4:2:2 表示2:1的水平取样,垂直完全采样,,每两个Y共用一组UV分量。 一个YUV占 8+4+4 = 16bits 2个字节。


[FFmpeg开发] 视频基础知识_第2张图片

YUV4:2:0 表示2:1的水平取样,垂直2:1采样,每四个Y共用一组UV分量。 一个YUV占 8+2+2 = 12bits 1.5个字节

[FFmpeg开发] 视频基础知识_第3张图片

注意:YUV 4:2:0这并不意味着只有Y、U,没有V分量,只是说U分量和V分类交替采样。 一个字节是8位。

[FFmpeg开发] 视频基础知识_第4张图片

YUV可以与RGB相互转换

为什么使用YUV:

  • 之前是黑白电视,只有Y,后来才加了色度,为了与以前兼容。
  • YUV数据量比RGB小,以下是YUV4:2:0的计算
[FFmpeg开发] 视频基础知识_第5张图片

你可能感兴趣的:([FFmpeg开发] 视频基础知识)