rtmp, rtsp, webrtc 简单的关系总结
发布网友
发布时间:2024-09-26 18:05
我来回答
共1个回答
热心网友
时间:2024-10-04 02:38
RTSP协议,以客户端方式工作,提供播放、暂停、后退、前进等流媒体操作。RTSP负责控制信息、操作方法、状态码以及与RTP的交互操作。RTSP主要控制实时数据的发送,自身不传输流媒体数据,需要依赖RTP/RTCP协议完成。
RTMP,基于TCP,是实时消息传输协议,用于Flash/AIR平台与流媒体/交互服务器之间的音视频数据通信。广泛用于直播领域,主要优势包括CDN支持良好、协议简单,但在弱网环境下传输成本高、不支持浏览器推送、Adobe私有协议不再更新。
WebRTC,遵循W3C标准,由Google、Mozilla、Opera支持,主要应用于实时语音对话或视频对话。其优点包括主流浏览器支持程度高、底层基于SRTP和UDP,弱网情况优化空间大、可实现点对点通信、通信双方延时低。缺点在于ICE、STUN、TURN等传统CDN没有类似服务。
RTMP与WebRTC的对比,RTMP基于TCP,传输成本高,不支持浏览器推送;WebRTC基于UDP,底层优化空间大,可实现点对点通信,通信双方延时低。
RTMP适用于主流直播应用,如SRS,因为其简单高效稳定且开源。WebRTC适用于需要低延时、点对点通信的场景,如连麦直播。
WebRTC的编程魅力在于其在app环境下的应用,底层C++库API完善,跨平台特性好,适用于移动设备。直播客户端难点主要在网络传输和流数据处理,WebRTC提供解决方案。官方WebRTC不断优化,如回声消除的改进。
WebRTC提供三个关键API:MediaStream用于设备摄像头及话筒的视频、音频同步流;RTCPeerConnection构建点对点稳定高效流传输;RTCDataChannel用于浏览器间高吞吐量、低延时的数据传输。