一 前沿
打算花两篇文章来写RTSP ,第一篇介绍RTSP 协议,第二篇介绍RTSP 是如何在FFMPEG 中实现的。RTSP 是早期的流媒体协议,协议由RealNetworks,NetScape和哥伦比亚大学合作开发,并由IETF标准化(RFC2326),现在常用于安防摄像头监控。
我们在播放rtsp 连接,并开启wireshark 抓取其网络包是发现,其中不但有rtsp 包,还有大量的rtp, rtcp 包。 这是 怎么回事?
ffplay.exe -i rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mov
rtmp, rtp, rtcp 到底有什么关系?
rtmp: 它是一个文件控制协议,用于控制stream 的播放/暂替。
rtp/rtcp: 它们是一对姐妹协议,前者用来传输video/audio数据,后者用来QOS,像服务器/客户端反馈当前的网络环境,传输质量等等。他们层级关系如下:
因此RSTP 通常与RTP/RTCP 协议共同使用,其中RTSP 是服务器与客户端间的双向协议,它不负责传输音视频数据,而是用来控制多个音视频流。RTSP是基于ISO10646字符集的文本协议,基于TCP 建立会话,与HTTP1.1 很类似,例如404 代表错误码“Not Found”,200 代表“OK”。