音视频技术原理

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

音视频技术原理_第1张图片

2. 封装格式

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

音视频技术原理_第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: 前后预测图像: 保存当前帧与前一帧和后一帧的差值信息可双向单帧逐步播放

音视频技术原理_第3张图片

5. 视频编码原理

以H264为例

音视频技术原理_第4张图片


6. 图像群组(GOP)

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

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

音视频技术原理_第5张图片

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...



你可能感兴趣的:(流程)