一分一秒,原来你也在这里
目录
视频编码的定义:
所谓视频编码就是指通过特定的压缩的技术,将某一个视频格式文件转换为另外一种视频格式文件的方式。
视频流传输中最重要的编解码 标准有国际电联的H.261、H.263、H.264、 运动静止图像专家组的m-JPEG 和国际标准化运动图像专家组的MPEG系列标准。
视频编码的两个系列:
- MPEG系列:MPEG1、MPEG2 MPEG4 MPEG4 AVC.其他音频方面包括 MPEG Audio Layer 1/2 MPEG Audio Layer3 (mp3)
- H.26X 系列: (由ITU 国际电传视讯联盟 主导),侧重于网络传输,注意,只有视频片吗,包括 H.261、H.262、H.263、H.263+、H.263++、H.264.
音频编码格式:AAC. MP3 AC3
- AAC:一种专门为音乐数据设计的文件压缩技术,与MP3不同,它采用了全新的算法进行编码,更加高效,具有更高的性价比,AAC 格式:文件更加小,但是感觉声音质量没有明显降低的前提下。相对于MP3 AAC 的音质更加优秀。
- MP3 :音频压缩技术,全程是 动态影像专家压缩标准音频层面 3. 。利用此技术,将音乐 1:10 设置1:12的压缩率压缩容量较小的文件。特点:是用利用人耳对高频声音信号不敏感的特性,将时域波形信号转换为频域信号,并划分为多个频段,对不同频段使用不同额压缩率,对高频信号使用大压缩率对低频信号,使用小压缩率,保证信号不失真。
- AC3:全称为 Audio Coding Version3 ,是 Dolby 实验室所发展的有损音频编码的格式,被广泛应用在5.1 声道,是 dolby pro logic的继承者,不同的地方在于AC3提供了6个独立的声道 。 pro logic 混合其环绕声道,AC3普及程度很高。应用于激光唱片和DVD ,也经常以640kb/s 的码率 广泛应用电影院。
Android 多媒体播放组件介绍:
- Mediaplayer :播放控制,
- MediaCodec: 音视频解码。
- OMX :多媒体部分采用的编解码标准。
- StageFright :替代了之前OpenCore 。 主要做了 OMX
多媒体框架:
- VLC Video LAN Client 是一款自由,开源的跨平台多媒体播放器框架。
- FFMpeg :多媒体解决方案 ,不是多媒体框架,广泛应用音视频开发中。
- GStreamer: 一套构建流媒体应用的开源的多媒体框架。
单位相关:
- 帧率:用于测量显示帧数的量度。所谓的测量单位为每秒显示帧数 fps 或者 hz (每秒显示帧数或者帧率表示图形处理器处理场时候,每秒能够更新的次数。高帧率可以得到更加流畅的动画。一般来说 30fps 是可以接受了,但是性能提高到60fps 时候可以明显提高交互感和逼真感觉,但是超过 75fps 时候,就不容易擦觉有明显的提升了。如果帧率超过屏幕的刷新率只会浪费图像处理能力。)
- 分辨率: 视频分辨率视频成像产品所形成的图像大小或者尺寸。
- 刷新率:屏幕每秒画面被刷新的次数,刷新率分为垂直刷新率和水平刷新率,一般提到过的刷新率通过指垂直刷新率。垂直刷新率表示屏幕上图像每秒重绘多少次,也就是每秒屏幕刷新的次数。以 HZ 为单位,刷新率越高,图像越稳定那么图像就自然清晰了。如果 能达到80HZ 以上的刷新率,可以完全消除图像闪烁和抖动感,眼睛就不容易疲劳。
- 码率:就是比特率,单位时间播放连续的媒体(如压缩后的音频或者视频)的比特数量。比特率越高,带宽消耗越高。(文件大小b =码率(b/s)x 时长(s)).
视频帧
I 帧 表示关键帧,你可以理解为这一帧 画面的保留,解码时只需要本帧数据就可以完成
P帧 表示与之前的关键帧 差别的差别。解码时候需要用到之前缓存的画面所叠加上本帧定义差别生成的最终画面。也就是差别帧p帧没有完整画面的关键数据,只有与前一帧的画面差别的数据。
B帧 是双向差别帧,也就是B帧的记录是本帧与前后帧的差别。要解码B帧,不仅要取得之前的缓存的画面,还要解码之后的画质前后画面数据与本帧数据的叠加取得最终的画面。B帧压缩率高,cpu 比较吃力,解码时候。
音频帧:
跟编码格式相关,它是各个编码标准自己的实现。
- 对PCM (没有经过编码的音频数据)它不需要帧的概念,根据采样率和采样精度就可以播放了。
- AMR帧比较简单,它规定每20ms 的音频是1 帧,每一帧音频是独立的,有可能用不同的编码算法以及不同的编码参数。
- MP3 帧复杂一些,包含了更多信息。比如:采样率,比特率参数,音频数据帧个数由文件大小和帧长度决定,每一帧的长度可以固定,也可以固定,由比特率决定,每一帧又分为帧头和数据实体两部分,帧头记录了 MP3的比特率,采样率,版本信息。每一帧之间相互独立。
GO to ---> android音视频开发基础2--Shell脚本+linux命令