先分享一个获取 RFC 标准文档的方法,打开 rfc_search 网站,如下图:
百度搜索知道 RTSP标准 是 2326 编号,直接在上面网站输入编号,即可下载 pdf 文件。
RTSP 的全称 是 Real Time Streaming Protocol,它的名字虽然有 Streaming ,但是这个协议不传输音视频数据,只是 定义了 很多的 method (方法),例如 PLAY (播放),PAUSE(暂停)等等,这个协议他还定义了很多辅助真正的 音视频帧 传输的东西,所以你可以把他理解为一个辅助协议,辅助真正的音视频数据传输。
好了,既然知道 RTSP 是一个辅助协议,那这个协议是辅助什么的呢?就是辅助 RTP 协议的,真正的音视频帧,例如 H264,AAC 等数据,是通过 RTP 协议来传输的。RTSP 通常是基于 TCP 实现的,然后 RTP 可以基于 TCP,或者 UDP,所以 RTSP 跟 RTP 可以看成是同一层的协议。
同时,配合 RTSP 使用的还有 RTCP 协议,RTCP 全称是 RTP Control Protocol 。这个协议是处理传输过程中的统计信息的,音视频流传输一段时间之后,就会发 RTCP 包,来统计之前的信息。
一般我们开发中说的 RTSP 服务器,通常是指 融合了 RTSP,RTP,RTCP 功能的机器,并不是单单指 RTSP 协议。
在 FFmpeg 里面 rtsp 相关的代码文件是 :
1,rtsp.c
是总⼊⼝,推流拉流都是该⽂件
2,rtspenc.c
推流的时候使⽤
3,rtspdec.c
拉流的时候使⽤
相关阅读:
由于笔者的水平有限, 加之编写的同时还要参与开发工作,文中难免会出现一些错误或者不准确的地方,恳请读者批评指正。如果读者有任何宝贵意见,可以加我微信 Loken1。QQ:2338195090。