一种基于媒体流编码格式突变的处理方法
1. 背景说明
在音视频监控应用场景,由于设备种类众多,技术实现以及推出的媒体流也是参差不齐的。面对设备推出的媒体流,有些流是不符合标准的,作为承担媒体流处理中间环节的流媒体服务会对设备推出的媒体流简单处理和转发。当设备推出的媒体流是不符合标准的,流媒体收到不符合标准的媒体流后也会进行简单处理和转发,客户端从流媒体服务拉到该媒体流进行播放会出现异常。针对这种情况,常见的处理方法是将该媒体流的异常反馈给设备厂家,待设备厂家处理后,再继续启用该设备。 实际的情况是当客户反馈该流异常,按照常见的处理方式,问题解决的及时性,是无法满足重要应用领域特殊客户的低时效要求的。实际应用中常遇到设备推出的媒体流编码格式突变,按照常见的处理方式,很难满足客户的要求。因此需要流媒体服务对收到的非标流进行兼容处理来提高处理效率和提高流媒体服务的兼容性。
2. 详细方案
本方法主要是基于监控场景下媒体流视频编码格式突变的处理。
实际的生产应用中,目前常见设备推出的媒体流主要是H264和H265两种编码格式突变,主要有两种情况:
(1)设备推流前期设备推出的流还未上线视频编码格式发生突变;
(2)设备推流过程中设备推出的流已上线视频编码格式发生突变;
针对以上媒体流编码格式突变的情况,具体技术方案和工作原理如下。
步骤1:流媒体视频编码格式检测算法模块
根据H264和H265本身的编码格式标准(主要检测容器内的视频编码格式和实际视频流中的视频编码格式),检测出当前流的编码格式是否发生改变,若发生改变则进入步骤2,否则不做处理。
步骤2:流媒体检测到突变视频编码格式兼容和上线
2.1.针对设备推流前期设备推出的流还未上线视频编码格式发生突变的情况,因为突变前视频编码格式的流并未上线,只需要对突变前的视频编码格式的流信息和初始化进行重置,直接以突变后的视频编码格式进行初始化上线。
2.2.针对在设备推流过程中设备推出的流已上线视频编码格式发生突变的情况;由于突变前编码格式的流已经上线,因此需要停止该流的处理和转发,再以突变后的视频编码格式的流进行初始化上线,同时增加信令通知客户端用新上线的流进行重新拉流。
步骤3:流媒体通知客户端拉流播放
经过步骤2的处理,已经完成了对媒体流编码格式突变的流做了兼容处理和上线,此时客户端拉到的流就能正常播放。
3. 结论和建议
本方法针对设备推出的媒体流编码格式突变,流媒体服务器收流时增加视频编码格式突变检测算法模块,检测到视频编码格式改变,兼容新的编码格式复用原有的url及时上线,尤其是具备自动检测识别并自动上线的既完成了流媒体对异常流的兼容,也解决了重要应用领域特殊客户的问题处理时效久的问题