(第六讲)RTMP,RTSP,RTP概念

(第六讲)RTMP,RTSP,RTP概念
文章目录一、总览表推流/拉流支持情况二、分协议详细说明1. RTMPTCPFlash直播协议推流Publish拉流Play2. RTSP实时流协议安防为主模式1拉流最常见摄像头场景模式2推流ANNOUNCE方式终端上传3. RTP纯媒体封装**不能单独推拉**三、关键区分开发常用四、补充误区基础不牢地动山摇为了我们将来更好的学习流媒体的开发我们今天继续打基础相信很多小伙伴都会被标题上说的那几个概念搞混因此这个基础知识对我们后续的开发和选型有了至关重要的作用.一、总览表推流/拉流支持情况协议是否支持推流客户端→服务端是否支持拉流服务端→客户端底层传输典型用途RTMP✅ 推流 ✅ 拉流✅ 推流 ✅ 拉流TCP直播平台、SRS/Nginx-RTMP互联网直播RTP❌ 无独立推拉概念仅媒体载荷封装❌ 无独立推拉概念UDP底层音视频裸包载体不单独使用RTSP✅ 推流 ✅ 拉流✅ 推流 ✅ 拉流TCP/UDP摄像头、GB28181、安防设备这么说吧RTMP,RTSP是一伙的包含了通信协议的定义比如握手之类的。而rtp是流的内容更应该归类到上一讲中的NALU,avcc这类中。二、分协议详细说明1. RTMPTCPFlash直播协议推流Publish客户端ffmpeg/OBS/车载终端发送流到流媒体服务# ffmpeg推RTMPffmpeg-re-itest.h264-ccopy-fflv rtmp://127.0.0.1/live/stream拉流Play播放器从服务端拉取播放ffmpeg-irtmp://127.0.0.1/live/stream-fmp4 out.mp4特点全双工TCP弱网友好互联网直播最常用推拉一体协议。2. RTSP实时流协议安防为主RTSP是控制信令协议媒体数据走RTP同时支持推拉两种模式模式1拉流最常见摄像头场景IPC摄像头作为服务端播放器拉取画面ffmpeg-rtsp_transporttcp-irtsp://ip:554/stream-ccopy output.mp4模式2推流ANNOUNCE方式终端上传车载/编码器主动向RTSP服务推送视频ffmpeg-re-itest.h264-ccopy-rtsp_transporttcp-frtsp rtsp://server:554/live行业场景GB28181设备、安防平台接收终端RTSP推流。3. RTP纯媒体封装不能单独推拉重点RTP不是完整应用层协议只是包裹音视频NALU的数据包格式。本身没有握手、播放、发布信令无法独立建立推拉会话必须依附上层协议使用RTSP RTP安防摄像头JT1078私有RTP车载视频WebRTC RTP网页通话你只能发送/接收UDP RTP数据包但没有“推流/拉流会话”概念ffmpeg可以直接读写RTP UDP包但仅作为裸媒体通道无鉴权、无播放控制。三、关键区分开发常用需要完整直播服务手机/网页观看选 RTMP推拉成熟SRS、Nginx-RTMP原生支持。对接摄像头、国标安防设备选 RTSP摄像头默认输出RTSP媒体承载RTP。底层裸视频UDP传输JT1078、内网低延迟转发使用RTP包但必须自己实现上层业务逻辑不能单独当作推拉协议。四、补充误区不要混淆 RTP 和 RTSPRTSP控制信令RTP音视频数据包二者配套使用。RTMP内部封装FLV不使用RTP自成一套封装体系。三者延迟对比RTP(UDP) RTSP RTMP(TCP)。