EasyDSS_Dash版本虚拟直播输出RTMP流中断问题的优化调整

TSINGSEE青犀视频团队升级EasyDSS的DASH支持,修复了虚拟直播中断问题。通过递归处理和调整资源释放时机,解决了'contextdeadlineexceeded'错误。新版本优化了拉流到RTMP的逻辑,确保流畅直播体验。
摘要由CSDN通过智能技术生成

几个月前,TSINGSEE青犀视频开发团队增加了EasyDSS对DASH直播的支持,在EasyDSS的DASH版本中,不仅直播分发了DASH流,并且经过研究,虚拟直播推到直播间也拥有了DASH流数据。

image.png

此版本虚拟直播采用新内核“lalserver”中拉flv本地文件流输出RTMP流。实现完成后还是存在会虚拟直播中断的问题,发现是在调用“lalserver”push方法时,返回了error,” context deadline exceeded”如图:

image.png

于是我们对该问题进行了优化调整。首先将拉flv推rtmp方法使用递归处理,如果返回error,则重新推流,这样会发现如果有虚拟直播中断推流不成功,则就一直在推流-返回error,会导致程序一直卡在push方法中一直循环。

经测试发现,代码逻辑中对pushsession做释放是放在for循环之后,但是代码中返回error时,for直接return,而pushsession则无法释放,导致下次pushsession推流时则继续报error,所以现在加defer,将释放资源提到for循环上面,则就会执行到释放资源方法。

defer:将会在该方法返回前最后执行的关键字

递归处理:

image.png

将session释放放在最上面:

image.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值