目录

音视频技术原理

目录

音视频技术原理

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

https://i-blog.csdnimg.cn/blog_migrate/f724244a8849179d8a04ca1ef43b8ac8.png

  1. 封装格式

按照

一定的格式

,

把音视频流和描述数据

,

存储到文件中

https://i-blog.csdnimg.cn/blog_migrate/e5a7c7153f8921e143bcf81100291328.png

  1. 编码格式:
音频编码

G.711, G722, G726, AAC,MP1/MP2/MP3, AC-3, WMA

视频编码

:

h265/H264/H263,MPEG1/2/3/4, WMV, MJPEG, VP8/VP9…

  1. 视频编码原理

经典的

IPB

压缩

:

Iframes:

节点图像

,

保存

一帧完整图像压缩后的

数据

,

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

图像

Pframes:

预测图像

:

保存当前帧与前一帧的差值

信息

,

解码

依赖于前一帧

数据

Bframes:

前后

预测

图像

:

保存

当前帧与前一帧和后一帧的差值

信息

,

可双向单帧逐步播放

https://i-blog.csdnimg.cn/blog_migrate/cffd8287f9fff7d22958bfa17c1f2ee5.png

视频编码原理

以H264为例

https://i-blog.csdnimg.cn/blog_migrate/330593a29ae0ad91e4f4d62cd0d3ade1.png

图像

群组

(GOP)

图像群组就是一组连续的图像

, GOP

总是以

I frame

为起始点

,

后面有若干

P frame

Bframe,

下一个

I frame

则是新的

GOP

起点

https://i-blog.csdnimg.cn/blog_migrate/125e990d153807417d4a575ef5e5cb77.png

硬件编解码

硬件编解码

是图形芯片

厂家提出

GPU

资源解码视频流的方案

(

解是用

CPU

承担解码

工作

)

优点

是编解码效率高,功耗低、热功耗低,缺点存在局限性,

设置较为

复杂

,

一般需要使用图形芯片厂商提供的驱动和

sdk

程序

为什么

GPU

编解码速度快于

CPU?

• CPU

主要为串行指令而优化,而

GPU

则是为大规模的并行运算而

优化

• 从

并行的角度来看,现代的多核

CPU

针对的是指令集并行(

ILP

)和任务并行(

TLP

),而

GPU

则是数据并行(

DLP

• 在

同样面积的芯片之上,

CPU

更多的放置了多级缓存(

L1/L2/LLC

)和指令并行相关的控制部件(乱序执行,分支预测等等),而

GPU

上则更多的是运算单元(整数、浮点的乘加单元,特殊运算单元等等)

• GPU

往往拥有更大带宽的

Memory

也就是显

存,因此在大吞吐量的应用中也会有很好的性能

  1. 音视频协议

HLS,RTSP/RTP/RTCP,

H323,SIP, RTMP…

  1. 开源框架

vlc

,

ffmpeg

,

gstreamer

,

directshow

,live555,

webRTC