ZLMediaKit / ZLMediaKit

WebRTC/RTSP/RTMP/HTTP/HLS/HTTP-FLV/WebSocket-FLV/HTTP-TS/HTTP-fMP4/WebSocket-TS/WebSocket-fMP4/GB28181/SRT server and client framework based on C++11
https://docs.zlmediakit.com
Other
14.53k stars 3.55k forks source link

[功能请求] 希望能对startSendRtp,提供 类似 "播放最多等待时间" 的功能 #4137

Open supersndqd opened 6 days ago

supersndqd commented 6 days ago

title: "[功能请求] 希望能对startSendRtp,提供 类似 "播放最多等待时间" 的功能"

描述该功能的用处,可以提供相关资料描述该功能

startSendRtp,开始推送的时候,需要流已经存在,同时推送的目的端口已经监听,在使用gb28181过程中,端口在sdp中定义都是在INVITE阶段,而流的生成肯定是ack阶段,需要不停的查询,确认流的生成,然后再startSendRtp,而收流的服务器,有的比较严谨的话,不光在ack信令发出才打开收流端口,而且会鉴别推流使用的地址和端口,这样有时候需要在invite阶段自己手动管理推送的端口.

该功能是否用于改进项目缺陷,如果是,请描述现有缺陷

描述你期望实现该功能的方式和最终效果

有没有设计类似"播放最多等待时间"类似的功能,我们直接信令交互,而zlmediakit自己判断流生成,然后推送,定义一个超时时间,这个时间内,无流,或者推送失败,都返回webhook.而我可以在invite阶段,直接openRtpServer,获取收流端口,直接startSendRtp,获取推流端口,然后生成sdp,回复应答.然后坐等.

xiongguangjie commented 4 days ago

你是要tcp被动模式吧,就没这个问题了

supersndqd commented 4 days ago

我收流再推送,我就是下级了,a=setup:active,严谨一点,我sdp交互的时候,就应该确认我的发送端口,但因为未Ack,上级的端口未开放,我startSendRtp因为上级的端口未开,报错,我需要手动设置发送端口,这样和zlmediakit管理的端口有可能就发送冲突,变复杂了