视频
PAR DAR SAR
PAR - pixel aspect ratio(像素宽高比)大多数情况为1:1,就是一个正方形像素,否则为长方形像素
DAR - display aspect ratio(显示宽高比)就是视频播放时,我们看到的图像宽高的比例,缩放视频也要按这个比例来,否则会使图像看起来被压扁或者拉长了似的
SAR - storage aspect ratio(采样纵横比)就是对图像采集时,横向采集与纵向采集构成的点阵,横向点数与纵向点数的比值。比如VGA图像640/480 = 4:3,D-1 PAL图像720/576 = 5:4
三者的关系PAR x SAR = DAR或者PAR = DAR/SAR.
帧率相关信息
完成时间点与帧号的转换就需要找出合适的参数
- tbr 一般被当成帧率。当视频的码率为固定码率时,FFmpeg显示tbr为正常的码率值。当视频有变长码率时,FFmpeg打印的tbr为多个码率的均值,看着像音频流。
- tbn代表文件层(st)的时间精度,比如:25k tbn即1S=25k,和duration相关
- tbc代表视频层(st->codec)的时间精度,即1S=50,和strem->duration和时间戳相关。
颜色编码
YUV420是视频中通常采用的颜色编码方式,Y表示亮度,而U,V则与颜色相关,而420则分别对应着存储相应分量所占用的比特数之比。
码率
影响体积,与体积成正比:码率越大,体积越大;码率越小,体积越小。
码率就是数据传输时单位时间传送的数据位数,一般我们用的单位是kbps即千位每秒
码率=采样率 x 位深度 x 声道
总比特率
通常来说,一个视频文件包括了画面及声音。音频及视频都有各自不同的采样方式和比特率,也就是说,同一个视频文件音频和视频的比特率并不是一样的。而我们所说的一个视频文件码流率大小,一般是指视频文件中音频及视频信息码流率的总和。
视频码率
视频码率就是数据传输时单位时间传送的数据位数,一般我们用的单位是kbps即千位每秒。通俗一点的理解就是取样率,单位时间内取样率越大,精度就越高,处理出来的文件就越接近原始文件。
FPS(帧速率)
帧/秒。是指每秒钟刷新的图片的帧数,也可以理解为图形处理器每秒钟能够刷新几次。越高的帧速率可以得到更流畅、更逼真的动画。每秒钟帧数(FPS)越多,所显示的动作就会越流畅。
GOP(Group of Pictures)
GOP,意思是画面组,一个GOP就是一组连续的画面。MPEG编码将画面(即帧)分为I、P、B三种,I是内部编码帧,P是前向预测帧,B是双向内插帧。简单地讲,I帧是一个完整的画面,而P帧和B帧记录的是相对于I帧的变化。没有I帧,P帧和B帧就无法解码,这就是MPEG格式难以精确剪辑的原因,也是我们之所以要微调头和尾的原因。GOP 越长,B 帧所占比例更高,编码的率失真性能越高。
I,P,B帧和PTS,DTS的关系
基本概念:
I frame :帧内编码帧 又称intra picture,I 帧通常是每个 GOP(MPEG 所使用的一种视频压缩技术)的第一个帧,经过适度地压缩,做为随机访问的参考点,可以当成图象。I帧可以看成是一个图像经过压缩后的产物。
P frame: 前向预测编码帧 又称predictive-frame,通过充分将低于图像序列中前面已编码帧的时间冗余信息来压缩传输数据量的编码图像,也叫预测帧;
B frame: 双向预测内插编码帧 又称bi-directional interpolated prediction frame,既考虑与源图像序列前面已编码帧,也顾及源图像序列后面已编码帧之间的时间冗余信息来压缩传输数据量的编码图像,也叫双向预测帧;
PTS:Presentation Time Stamp。PTS主要用于度量解码后的视频帧什么时候被显示出来
DTS:Decode Time Stamp。DTS主要是标识读入内存中的bit流在什么时候开始送入解码器中进行解码。
在没有B帧存在的情况下DTS的顺序和PTS的顺序应该是一样的。
IPB帧的不同:
I frame:自身可以通过视频解压算法解压成一张单独的完整的图片。
P frame:需要参考其前面的一个I frame 或者B frame来生成一张完整的图片。
B frame:则要参考其前一个I或者P帧及其后面的一个P帧来生成一张完整的图片。
两个I frame之间形成一个GOP,在x264中同时可以通过参数来设定bf的大小,即:I 和p或者两个P之间B的数量。
通过上述基本可以说明如果有B frame 存在的情况下一个GOP的最后一个frame一定是P.
DTS和PTS的不同:
DTS主要用于视频的解码,在解码阶段使用.PTS主要用于视频的同步和输出.在display的时候使用.在没有B frame的情况下.DTS和PTS的输出顺序是一样的.
音频
PCM
PCM(Pulse Code Modulation)也被称为 脉码编码调制。数字信号是对连续变化的模拟信号进行抽样、量化和编码产生的。PCM中的声音数据没有被压缩。
你可以在cooledit里面放大这个图片,看到实际上它就是一个波形图。一个声音对应的就是一个波形图。PCM实际上就是讲这个波形图通过按一定的时间间隔,收集起来。
PCM的每个样本值包含在一个整数i中,i的长度为容纳指定样本长度所需的最小字节数。
首先存储低有效字节,表示样本幅度的位放在i的高有效位上,剩下的位置为0,这样8位和16位的PCM波形样本的数据格式如下所示。
样本大小 | 数据格式 | 最小值 | 最大值 |
---|---|---|---|
8位PCM | unsigned int | 0 | 225 |
16位PCM | int | -32767 | 32767 |
音频文件格式
专指存放音频数据的文件的格式。存在多种不同的格式
采样率,分辨率和声道数目(例如立体声为2声道)是音频文件格式的关键参数。
- 无损格式,例如WAV,FLAC,APE,ALAC,WavPack(WV)
- 有损格式,例如MP3,AAC,Ogg Vorbis,Opus
采样率
声音信号在“模→数”转换过程中单位时间内采样的次数。采样值是指每一次采样周期内声音模拟信号的积分值。
经常见到这样的描述: 44100HZ 16bit stereo 或者 22050HZ 8bit mono 等等.比如:
-
- 44100HZ 16bit stereo: 每秒钟有 44100 次采样, 采样数据用 16 位(2字节)记录, 双声道(立体声);
-
- 22050HZ 8bit mono: 每秒钟有 22050 次采样, 采样数据用 8 位(1字节)记录, 单声道;
人对频率的识别范围是 20HZ - 20000HZ, 如果每秒钟能对声音做 20000 个采样, 回放时就足可以满足人耳的需求. 所以 22050 的采样频率是常用的, 44100已是CD音质, 超过48000的采样对人耳已经没有意义。这和电影的每秒 24 帧图片的道理差不多。
AAC
AAC是高级音频编码(Advanced Audio Coding)的缩写。基于MPEG-2的有损声音编码技术。
AAC编码的主要扩展名有三种:
- .aac - 使用MPEG-2 Audio Transport Stream(ADTS,参见MPEG-2)容器。
- .mp4 - 使用了MPEG-4 Part 14(第14部分)的简化版即3GPP Media Release 6 Basic(3gp6,参见3GP)进行封装的AAC编码(Nero AAC编码器仅能输出MPEG-4封装的AAC)。
- .m4a - 为了区别纯音频MP4文件和包含视频的MP4文件而由苹果(Apple)公司使用的扩展名,Apple iTunes对纯音频MP4文件采用了".m4a"命名。M4A的本质和音频MP4相同,故音频MP4文件亦可直接更改扩展名为M4A。