为什么要研究这个,这个是一个非常基础乃至关键的东西,类似于http之于web。做了一年多直播app觉得,如果想弄明白到底那些功能应该在哪一层实现,必须先把这一关过了。
一些应用
最近想了一些应用感觉无从下手,有些可能会产生一些新的协议类似直播p2p。
直播p2p
直播弹幕融合
直播加密
匿名直播
。。。。。
协议介绍
这段我会说两遍,正着一遍反着一遍,车轱辘话来回说,别嫌我烦
这段我会说两遍,正着一遍反着一遍,车轱辘话来回说,别嫌我烦
这段我会说两遍,正着一遍反着一遍,车轱辘话来回说,别嫌我烦
直播传输协议
rtmp
hls
http-flv
如果说直播是一条海上航线,http-flv,rtmp,hls这三就是船。flv与ts就相当于集装箱。
这三个协议是我从学习直播服务器搭建的时候就没弄明白。最近弄明白一点。一般主播端用rtmp进行推流,推到cdn以后,cdn支持观众用http-flv,hls,rtmp三种方式进行拉流,一般直播app用的是http-flv。这些协议相当于载具,载的是什么呢,他们载的是包装是什么呢,rtmp,http-flv运载的是flv,hls运载的是m3u8与ts。
https://github.com/gwuhaolin/livego/tree/master/protocol
音频视频的容器的格式,注意是容器,注意是容器,注意是容器
flv
ts
如果说直播是一条海上航线,http-flv,rtmp,hls这三就是船。flv与ts就相当于集装箱。集装箱里面装的是什么h264,acc。flv协议里面分video和audio就是视频和音频。好多人介绍flv协议比ts好理解是真的文档长度不一样。
https://github.com/ListFranz/livego/tree/master/container
真正的音频视频的协议
h264 视频
acc 音频
mp3 音频
h264是播放的视频,acc是播放的声音的集合。
https://github.com/gwuhaolin/livego/tree/master/parser
视频是连续的画面还可以分解为图片
yuv
图片就是yuv,学opencv用过yuv,hlv,rgb的概念
参考
https://github.com/gwuhaolin/livego
https://www.cnblogs.com/luconsole/p/6079534.html
网友评论