您的位置:首页 > 其它

darwin拉模式设计详解

2017-05-02 15:46 211 查看



1.live555客户端source sink创建流程

rtp rtcp socket是在收到sdp信息(describe)后,根据sdp信息中的m信息来创建;

source也是在收到sdp信息(describe)后,根据sdp中的媒体信息,来创建具体的source类型.
在收到setup信息后,创建sink,对应source的sink

2.darwin如何获取sdp信息

通过live555与源端作为rtsp客户端身份通信,发送完play,调度循环退出,解析完sdp信息后,将调度循环通过线程开启
,至此rtp流将在线程中读取。

3.拉模块与反射模块处理思路

切记,在setup之前,一定要创建好ReflectorSession,因为RTPSessionOutput要绑定到ReflectorSession的ReflectorStream上。

QTSSReflectorModule模块

推流

1.在DoAnnounce中读取rtsp客户端发送过来的sdp信息,将其保存到磁盘文件中,以sdp命名。

2.在setup中,创建ReflectorSession(DoSessionSetup),仅创建一次,之后的操作一直使用这个ReflectorSession。

客户端取流

1.在DoDescribe中,引用ReflectorSession(拉模式中setup时创建),通过读取本地存放的sdp信息,将其发送给客户端。

2.在setup中,将对应的客户端的请求流RTPSessionOutput绑定到对应的ReflectorStream中。多个客户端setup时会将某个ReflectorStream绑定多个RTPSessionOutput。

拉流模块

1.在DoDescribe中,通过调用live555来获取到sdp信息,创建ReflectorSession,将sdp信息发送给客户端。



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: