最近一直在看雷霄骅 FFmpeg 系列视频,然后将自己的理解总结一下。
参看:《基于 FFmpeg + SDL 的视频播放器的制作》课程的视频
比如一个 MP4 文件,它是有音频、有视频两部分封装的。PCM 音频采样数据和 YUV 视频像素数据,通过音视频编码 Encode,生成AAC和H.264文件,最后封装成 MP4 文件。
然后,我想起我使用 PR 剪辑视频时,其实就是这个过程,将音视频合成MP4文件的。
VLC、CyberLink PowerDVD 14、完美风暴
下载:VLC media player 下载
下载:powerDVD 14 破解 安装 方法 下载 地址 免费
下载:完美解码V20170702官方版
下载:UltraEdit
PCM音频采样数据
视频码流和音频码流按照一定的格式存储在一个文件中。
将视频像素数据(RGB,YUV等)压缩成为视频码流,从而降低视频的数据量。
将音频采样数据(PCM 等)压缩成为音频码流,从而降低音频的数据量。
保存了屏幕上每个像素点的像素值。
常见的像素数据格式有 RGB24,RGB32,YUV420P,YUV422P,YUV444P 等。压缩编码中一般使用的是 YUV 格式的像素数据,最为常见的格式为 YUV420P。
视频像素数据体积很大,一般情况下 1 小时高清视频的 RGB24 格式的数据体积为:
3600*25*1920*1080*3=559.9GByte
PS:这里假定帧率为25Hz,取样精度8bit。
Red、 Green、 Blue三种颜色,可以混合成世界上所有的颜色。
彩色图像中每个点,由R、 G、 B三个分量组成。
以 RGB24 为例,图像像素数据的存储方式如下:
从图中可以看出, RGB24依次存储了每个像素点的R、 G、 B信息。
PS: BMP文件中存储的就是RGB格式的像素数据。
双声道的情况下按照“左右、左右”的顺序存储每个采样点两个声道的数据。