音视频技术原理

1. 播放器的数据处理流程

音视频技术原理

2. 封装格式

按照一定的格式,把音视频流和描述数据, 存储到文件中

音视频技术原理

3. 编码格式:

音频编码: G.711, G722, G726, AAC,MP1/MP2/MP3, AC-3, WMA...

视频编码: h265/H264/H263,MPEG1/2/3/4, WMV, MJPEG, VP8/VP9...

4. 视频编码原理

经典的IPB压缩:

Iframes: 节点图像, 保存一帧完整图像压缩后的数据,

                  解码不涉及自己以外的任何图像

Pframes: 预测图像: 保存当前帧与前一帧的差值信息,

                  解码依赖于前一帧数据

Bframes: 前后预测图像: 保存当前帧与前一帧和后一帧的差值信息可双向单帧逐步播放

音视频技术原理

5. 视频编码原理

以H264为例

音视频技术原理


6. 图像群组(GOP)

图像群组就是一组连续的图像, GOP总是以I frame为起始点,

后面有若干P frameBframe, 下一个I frame则是新的GOP起点

音视频技术原理

7. 硬件编解码

硬件编解码是图形芯片厂家提出GPU资源解码视频流的方案

(解是用CPU承担解码工作)

优点是编解码效率高,功耗低、热功耗低,缺点存在局限性,设置较为复杂, 一般需要使用图形芯片厂商提供的驱动和sdk程序

为什么GPU编解码速度快于CPU?

CPU 主要为串行指令而优化,而GPU 则是为大规模的并行运算而优化
并行的角度来看,现代的多核CPU 针对的是指令集并行(ILP)和任务并行(TLP),而GPU 则是数据并行(DLP
同样面积的芯片之上,CPU 更多的放置了多级缓存(L1/L2/LLC)和指令并行相关的控制部件(乱序执行,分支预测等等),而 GPU 上则更多的是运算单元(整数、浮点的乘加单元,特殊运算单元等等)
GPU 往往拥有更大带宽的Memory也就是显存,因此在大吞吐量的应用中也会有很好的性能

8. 音视频协议

HLS,RTSP/RTP/RTCP,H323,SIP, RTMP...

9. 开源框架

vlc, ffmpeg, gstreamer, directshow,live555, webRTC...