一、流媒体传输协议
1.实时传输协议RTP
2.实时传输控制协议RTCP
3.实时流协议RTSP
-
RTSP协议定义了一对多应用程序如何有效通过IP网络传送多媒体数据。
-
RTSP在体系结构上位于RTP和RTCP之上,它使用TCP或RTP完成数据传输,属于应用层协议。
-
RTSP与RTP最大的区别在于:RTSP是一种双向实时数据传输协议,它允许客户端向服务器端发送请求,如回放、快进、倒退等操作。
-
缺点:因为互联网网络环境的不稳定性,RTSP+RTP较少用于互联网视音频传输。
4.资源预定协议RSVP
5.实时消息传输协议RTMP/RTMPS
6.微软媒体服务器协议MMS
7.HTTP Live Streaming [IOS设备直播]
-
苹果公司实现的基于HTTP的流媒体传输协议,可实现流媒体的直播和点播,主要应用于iOS系统。
-
HLS直播最大的不同在于,直播客户端获取到的并不是一个完整的数据流,HLS协议在服务器端将直播数据流存储为连续的、很短时长的媒体文件(MPEG-TS格式),而客户端则不断的下载并播放这些小文件,因为服务器总是会将最新的直播数据生成新的小文件,这样客户端只要不停的按顺序播放从服务器获取到的文件,就实现了直播。
-
解决苹果原生环境中的流媒体播放,这个协议可以方便地让Mac和iPhone播放视频流,不依赖Adobe(RTMP)。
-
优点: HTTP 传输,有效避免防火墙拦截, 支持网络分发,CDN 支持良好,自带多码率自适应。
-
缺点:
【学习地址】:FFmpeg/WebRTC/RTMP/NDK/Android音视频流媒体高级开发
【文章福利】:免费领取更多音视频学习资料包、大厂面试题、技术视频和学习路线图,资料包括(C/C++,Linux,FFmpeg webRTC rtmp hls rtsp ffplay srs 等等)有需要的可以点击1079654574加群领取哦~
![](https://img-blog.csdnimg.cn/7bbd811703b3413ab579984c5ad1d1c9.png)
8.WebRTC [音视频互通]
网页即时通信(Web Real-Time Communication),是一个支持网页浏览器进行实时语音对话或视频对话的API。无需安装任何插件就可以实现在网页浏览器中的实时通信。WebRTC还具备跨平台属性。
应用场景:
9.HTTP-FLV
HttpFlv 就是 http+flv ,将音视频数据封装成FLV格式,然后通过 HTTP 协议传输给客户端。
FLV (Flash Video) 是 Adobe 公司推出的另一种视频格式,是一种在网络上传输的流媒体数据存储容器格式。
优点:可以通过 HTTP 传输,基于 HTTP/80 传输,有效避免被防火墙拦截,支持使用 HTTPS 加密传输,也能够兼容支持 Android,iOS 的移动端。
缺点:由于它的传输特性,会让流媒体资源缓存在本地客户端,在保密性方面不够好。因为网络流量较大,它也不适合做拉流协议。
10.Websocket-FLV
基于WebSocket
传输FLV,依赖浏览器支持播放FLV。WebSocket
建立在HTTP
之上,建立WebSocket
连接前还要先建立HTTP
连接。
11.SRT
12.流媒体协议对比
流媒体协议 |
协议 |
视频封装 |
播放器 |
延时 |
数据分段 |
HTML5 |
场景 |
RTSP+RTP |
TCP+UDP |
|
VLC, WMP |
2s |
连续流 |
不支持 |
IPTV |
RTMP |
TCP |
flv tag |
Flash |
2s |
连续流 |
不支持 |
互联网直播,点播 |
HLS |
HTTP |
m3u8/ts |
Video |
10s+ |
切片 |
支持 |
H5,互联网直播,点播 |
HTTP-FLV |
HTTP |
flv |
Video |
2s |
连续流 |
支持 |
H5,互联网直播,点播 |
Websocket-FLV |
WebSocket |
flv |
Video |
2s |
连续流 |
支持 |
H5,互联网直播,点播 |
WebRTC |
|
|
|
|
|
|
实时音视频对话 |
备注:FLV里所包含的视频编码必须是H.264
,音频编码必须是AAC
或MP3
13.直播运行流程
-
如果拉取RTSP音视频流,需要先将RTSP的H264 音视频源
-
主播端在采集到一段时间的音视频原数据后,因为音视频原数据庞大需要先压缩数据:
-
YUV视频数据过视频编码压缩为H264视频数据
-
PCM音频数据通过音频编码压缩为AAC音频数据
-
压缩完后再通过FLV容器格式封装压缩后的数据,封装成一个FLV TAG
-
再把FLV TAG通过RTMP协议编码再推流到音视频服务器,音视频服务器再从RTMP协议里解析出FLV TAG。
-
音视频服务器再通过HTTP协议通过和浏览器建立的长链接流式把FLV TAG传给浏览器。
-
flv.js 获取FLV TAG后解析出压缩后的音视频数据喂给Video播放。
![](https://img-blog.csdnimg.cn/img_convert/2b6add9b50c8214b9e12df6255a39773.png)
14.直播平台参数对比
视音频编解码技术零基础学习方法
直播即互联网视音频平台直接将视频内容实时发送给用户
名称 |
协议 |
封装 |
视频编码 |
音频编码 |
播放器 |
华数TV |
RTMP |
FLV |
H.264 |
AAC |
Flash |
六间房 |
RTMP |
FLV |
H.264 |
AAC |
Flash |
中国教育电视台 |
RTMP |
FLV |
H.264 |
AAC |
Flash |
北广传媒移动电视 |
RTMP |
FLV |
H.264 |
AAC |
Flash |
上海IPTV |
RTSP+RTP |
TS |
H.264 |
MP2 |
机顶盒 |
15.点播平台参数对比
点播即根据用户的需要播放相应的视频节目
名称 |
协议 |
封装 |
视频编码 |
音频编码 |
播放器 |
CNTV |
HTTP |
MP4 |
H.264 |
AAC |
Flash |
CNTV(部分) |
RTMP |
FLV |
H.264 |
AAC |
Flash |
华数TV |
HTTP |
MP4 |
H.264 |
AAC |
Flash |
优酷网 |
HTTP |
FLV |
H.264 |
AAC |
Flash |
土豆网 |
HTTP |
F4V |
H.264 |
AAC |
Flash |
56网 |
HTTP |
FLV |
H.264 |
AAC |
Flash |
音悦台 |
HTTP |
MP4 |
H.264 |
AAC |
Flash |
乐视网 |
HTTP |
FLV |
H.264 |
AAC |
Flash |
新浪视频 |
HTTP |
FLV |
H.264 |
AAC |
Flash |
二、音视频编码格式
1.视频播放器原理
过程如图所示:
2.视频的原始数据格式
3.视频的编码格式
-
H.264:高性能的视频编解码技术,有更高的数据压缩比。
-
H.265:比H.264压缩率更高的视频编解码技术
-
MPEG1:VCD编码格式
-
MPEG2:用于广播电视和DVD
-
MPEG4:适用于低传输速率应用的方案,更适于交互AV服务以及远程监控
-
Xvid:由MPEG-4衍生出的一种开源视频编码(压缩)标准,特别是用于家用DVD和便携式MP4等设备。
-
Divx:由MPEG-4衍生出的一种视频编码(压缩)标准,采用了MPEG4的压缩算法,同时又综合了MPEG-4与MP3各方面的技术,要收费。
4.音频的原始数据格式
5.音频的编码格式
名称 |
推出机构 |
推出时间 |
目前使用领域 |
AAC |
MPEG |
1997 |
各个领域(新) |
AC-3 |
Dolby Inc. |
1992 |
电影 |
MP3 |
MPEG |
1993 |
各个领域(旧) |
WMA |
Microsoft Inc. |
1999 |
微软平台 |
6.视频封装格式
-
AVI
-
Matroska(MKV)
-
MP4
-
3GP
-
RMVB
-
FLV
封装格式包含视频编码和音频编码,封装容器对音频编码和视频编码的组合方式放的很开,封装格式是不影响画质。
封装容器 |
机构 |
流媒体 |
视频流编码格式 |
音频流编码格式 |
领域 |
AVI |
Microsoft Inc. |
不支持 |
几乎所有格式 |
几乎所有格式 |
BT下载 |
Matroska(MKV) |
CoreCodec Inc. |
支持 |
几乎所有格式 |
几乎所有格式 |
互联网视频网站 |
TS |
MPEG |
支持 |
MPEG-1, MPEG-2, MPEG-4, H.264 |
MPEG-1 Layers I, II, III, AAC, |
IPTV,数字电视 |
MP4 |
MPEG |
支持 |
MPEG-2, MPEG-4, H.264, H.263等 |
AAC, MPEG-1 Layers I, II, III, AC-3等 |
互联网视频网站 |
FLV |
Adobe Inc. |
支持 |
Sorenson, VP6, H.264 |
MP3, ADPCM, Linear PCM, AAC等 |
互联网视频网站 |
MVB |
Real Networks Inc. |
支持 |
RealVideo 8, 9, 10 |
AAC, Cook Codec, RealAudio Lossless |
BT下载影视 |
3GP |
|
|
H.263 |
AAC |
|
7.图片压缩格式
格式 |
压缩模式 |
透明支持 |
JPEG(JPG) |
有损压缩 |
不支持 |
PNG |
无损压缩 |
支持 |
BMP |
无压缩 |
不支持 |
占用空间:BMP > PNG > JPG