rtmp, rtsp, webrtc 简单的关系总结


 

  • WebRTC,名称源自网页即时通信(英语:Web Real-Time Communication)的缩写,是一个支持网页浏览器进行实时语音对话或视频对话的 API

它于 2011 年 6 月 1 日开源并在 Google、Mozilla、Opera 支持下被纳入万维网联盟的 W3C 推荐标准。 
目前主要应用于视频会议和连麦中,协议分层如下:

rtsp直播流截图 java_Google

优点 
·W3C 标准,主流浏览器支持程度高 
·Google 在背后支撑,并在各平台有参考实现 
·底层基于 SRTP 和 UDP,弱网情况优化空间大 
·可以实现点对点通信,通信双方延时低 
缺点 
·ICE,STUN,TURN 传统 CDN 没有类似的服务提供 

 

  • 關於libjingle_peerconnection庫 

为什么是peerconnection的库呢?
第一,peerconnection是webrtc对外的提供的比较全的接口的类
第二,peerconnection在框架的高层,与应用层最近,需要的改动最少
第三,peerconnection最容易编译和集成
第四,如果你想要两个人简单的直播连麦,peerconnection就足够了

直播
简单来说就是一个人发布自己的直播供别人观看,可以有一点延迟,重点在服务器的稳定和流量带宽,CDN的分发。而目前直播技术最简单成熟的就是基于RTMP的推流拉流,在此我推荐SRS(http://www.chnvideo.com/blog-classic-srs.html),原因很简单,就是简单高效稳定开源,文章可参考

连麦
连麦是现在直播中比较高大上的一个功能,可以和主播直接互动,市面上的映客,ME直播可以,一般都是两个人或三个人之间互动,可以说是为直播锦上添花,拉近了主播和和粉丝的距离,增加了人气等等等。
而基于WebRTC的P2P的连麦是比较简单的,最简单的思路,主播和粉丝P2P通了之后,主播将两路视频或者合成一路直接推送到SRS服务器上,供粉丝观看即可,连麦者获取主播视频本地观看。多人连麦可需要稍微复杂的服务架构设计和实现,有较大的难度,保证实时和稳定以及质量。
另外连麦模型还可以参考:视频直播中用户连麦技术模型与特点分析
 

  • webrtc 怎么了????

 

 

 

如何看待B站 (bilibili) 开源 HTML5 播放器内核 flv.js?

https://www.zhihu.com/question/51997376?sort=created

 


直播未来属于RTMP还是HTTP?


dash:这个协议国内用的不多,http轮询传输,但是国外很多平台都在用,比如youtube直播,该协议是google公司研发的,和hls如出一辙,同样是将直播流数据切片,只不过不是ts文件,而是mp4或者3gp文件,又或者webm(vp8,vp9)文件,该协议同样和hls一样也是http传输,同样和hls主打的是“自适应动态码率”,大概意思就是当客户端网络不好的时候会无缝切换到低码率的路线。

 

hls和dash:这两种协议延时原因大致都是差不多的,因为切片了,切成小端的文件,单独开始传输,这就是延时的关键了,当然可以设置切成小文件,越小延时越低。按理说dash切片要比hls稍微先进一点,所以延时上dash要比hls低,但是同样的,切片了,就注定延时。

 

 

我列一个表作为总结:

协议

httpflv

rtmp

hls

dash

传输层

http流

tcp流

http

http

视频格式

flv

flv tag

Ts文件

Mp4 3gp webm

延时

很高

数据分段

连续流

连续流

切片文件

切片文件

Html5播放

暂不支持

不支持

大部分支持

极大部分支持

服务器编程难易

简单

一般

一般+

中等

作者:Tinywan

 

https://github.com/notedit/rtmp-to-webrtc

基于RTMP和WebRTC开发大规模低延迟(1000毫秒内)直播系统

https://cloud.tencent.com/developer/article/1409975