RTSP
RTSP(Real Time Streaming Protocol):实时流媒体协议,是基于文本的协议,采用ISO10646字符集,使用UTF-8编码
RTSP-over-TCP,默认端口554
RTSP-over-HTTP,默认端口为8080
RTSP OVER WebSocket 默认端口为 80(非加密)/ 443(加密)
实时流数据由传输协议RTP/RTCP完成数据流和控制命令,传输层可以为UDP或者TCP
RTSP拉流交互
options(可选,可作为心跳使用) 询问流媒体服务器可用的RTSP方法
describe 从服务器获取媒体流相关信息,可以包含多个媒体流类型,此处服务器一般会进行用户鉴权
setup 建立媒体流链接会话
RTP/AVP表示通过UDP,unicast表示单播方式
RTP和RTCP要成对出现,一般码流端口号为RTCP=RTP+1
RTP/AVP/TCP表示通过TCP
interleaved=0-1,标识RTP的streamid=0,RTCP的streamid=1
当码流通过TCP传输时,与RTSP共用一个TCP链路,不需要建立新的连接,为了区分需要增加包头标识
| magic number | channel number | embedded data length | data |
magic number 0x24,收到0x24时,可以判定其为RTP或者RTCP
play 开始传输或者接受媒体数据
play消息会在range中指定媒体的播放时间,实时流Range: npt=0.000,scale和speed字段用于点播速度控制
teardown 停止媒体,释放资源
RTSP推流交互
options (可选,可作为心跳使用) 询问流媒体服务器可用的RTSP方法
announce 通知新会话描述
setup 建立媒体流链接会话
record 开始流媒体录制
pause 暂停流媒体传输
teardown 停止媒体,释放资源