RTSP-Over-TCP推流笔记
kagula
2021-2-3
前言
RTSP是流媒体在不同空间上进行交换的一种方式,这里通过RTSP-Over-TCP一次推流过程的观察,学习RTSP-Over-TCP协议。
这里假设你已经阅读:搭建RTSP数据流观察环境_lee353086的专栏-CSDN博客
正文
- RTSP((Real Time Streaming Protocol))服务端的实现采用事件驱动设计模式, 即每个事件的处理在时空上独立。
- 时间上的独立指的是当前事件的处理不依赖任何已经发生或未发生的事件。
- 由于服务端为每个连上来的客户端建立新的session, 所以在空间上也是独立的。
- RTSP的负载是RTP/RTCP包。RTP包的负载格式(protocol)根据RTP的packet type字段确定,RTP包的负载格式(protocol)不是本文的重点。
- 这里只考虑RTSP 1.0版本。
推流的过程
用类似下面的命令推流
ffmpeg -re -i D:\test\test_h264_aac\testAVSync.mp4 -rtsp_transport tcp -vcodec h264 -f rtsp rtsp://192.168.1.15:554/1
可以从Wireshark中看到类似图一的RTSP流媒体传输过程,主要有七种事件,现在一条条来讲解每一种RTSP事件。
一、OPTIONS方法
询问流媒体服务器,支持哪些RTSP方法。
CS之间来回传送内容均为TEXT格式,服务端为客户端分配了session id,并在Public字段中告诉客户端自己支持哪些命令(Option)。
C