一种RTMP直播流到HTTP FLV直播流实时转换系统及其工作方法技术方案

技术编号:18767357 阅读:1040 留言:0更新日期:2018-08-25 13:03
本发明专利技术公开了一种RTMP直播流到HTTP FLV直播流实时转换系统及其工作方法,包括:数据分离模块实时接收RTMP直播流,从RTMP直播流中分离脚本标签和音视频数据并存入消息缓存模块;编码器模块从消息缓存模块中取出音视频数据,对音视频数据进行FLV格式编码;HTTP服务模块收到播放端(6)的HTTP FLV直播流播放请求后,从编码器模块中获取相应的直播流并发送至播放端(6)。本发明专利技术在现有的RTMP直播服务上面,无缝扩展HTTP FLV直播,大大节约了设备投入和技术改造成本,在不增加任何设备和修改协议的情况下,既能与现有的CDN网络无缝对接,还能满足PC、移动终端直播需求,同时解决了画面抖动的方法和实现了画面秒开方法。

【技术实现步骤摘要】
一种RTMP直播流到HTTPFLV直播流实时转换系统及其工作方法
本专利技术属于互联网的音视频
,具体涉及一种RTMP直播流到HTTPFLV直播流实时转换系统及其工作方法。
技术介绍
在传统互联网直播领域,PC端采用RTMP协议进行视频直播,国内一部分CDN服务器禁用了RTMP协议的传输端口1935,不利RTMP协议进行CDN分发,但是HTTP协议的端口80都保留,能有效的进行内容分发。其次,随着移动互联网的直播业务的大力发展,RTMP协议不能应用在移动终端上,因此,迫切需要一套系统既满足PC端直播,还能满足移动互联网端直播的技术。FLV是一种流式结构,由文件头(FLVheader)和很多tag组成,tag又可以分成三类:audio,video,script,分别代表音频流,视频流,脚本流。基于各个终端平台都支持HTTP协议,因此采用HTTPFLV进行视频直播,既能与现有的CDN网络无缝衔接与内容分发,还能满足PC、移动(Android/iOS)平台直播业务需求。H.264是国际标准化组织(ISO)和国际电信联盟(ITU)共同提出的继MPEG4之后的新一代数字视频压缩格式。当前,直播
视频编码技术主要采用的是H.264。直播过程中,用户端播放器打开时,需要等待一段时间才有视频画面出来,用户体验差,当等待时间较长时,用户以为播放器已经卡死了,会不断重新请求视频播放,加大了服务器并发压力。在网络直播过程中,动态修改视频编码级别、参数、画面大小是一种常态。视频编码级别、参数、画面大小等参数是通过SPS和PPS的值来反应的。当客户端播放器还按照没有改变的SPS和PPS解码,势必会影响解码效率及准确性,直接影响就是画面会发生抖动和马赛克。
技术实现思路
本专利技术的目的在于:解决上述现有技术中的不足,提供一种RTMP直播流到HTTPFLV直播流实时转换系统及其工作方法,解决多终端平台直播协议不能统一的问题,同时还解决了直播过程中画面出现抖动的现象且实现了终端播放器画面秒开方法。为了实现上述目的,本专利技术采用的技术方案为:一种RTMP直播流到HTTPFLV直播流的实时转换系统,其特征在于包括:Internet网络;分别与Internet网络连接的RTMP服务器和直播前端;与直播前端连接的若干台摄像机;与RTMP服务器连接的HTTPFLV服务器;通过CDN网络与HTTPFLV服务器连接的播放端。进一步的,上述的直播前端包括直播编码器和与直播编码器连接的若干台摄像机。进一步的,上述的播放端包括PC播放器、IOS播放器、Android播放器和H5播放器。进一步的,上述的HTTPFLV服务器包括:与Internet网络连接的数据分离模块,数据分离模块用于接收RTMP直播流并分离出脚本标签和音视频数据;与数据分离模块连接的消息缓存模块;与消息缓存模块连接的编码器模块,编码器模块用于对音视频数据进行FLV格式编码;与编码器模块连接的HTTP服务模块,HTTP服务模块通过CDN网络连接播放端。进一步的,上述的编码器模块包括FLV头模块、脚本标签模块、视频标签模块和音频标签模块,FLV头模块、脚本标签模块、视频标签模块和音频标签模块的输入端连接消息缓存模块,输出端连接合成模块的输入端,合成模块的输出端连接HTTP服务模块。进一步的,上述消息缓存模块还包括GOP缓存模块,GOP缓存模块与视频标签模块连接,用于缓存最新的关键帧。一种RTMP直播流到HTTPFLV直播流实时转换方法,应用上述的RTMP直播流到HTTPFLV直播流实时转换系统,它包括以下步骤:步骤1:数据分离模块实时接收RTMP直播流,从RTMP直播流中分离脚本标签和音视频数据并存入消息缓存模块;步骤2:编码器模块从消息缓存模块中取出音视频数据,对音视频数据进行FLV格式编码;步骤3:HTTP服务模块收到播放端的HTTPFLV直播流播放请求后,从编码器模块中获取相应的直播流并发送至播放端。进一步的,步骤1所述的分离脚本标签和音视频数据具体包括以下步骤:步骤101:从接收到的RTMP直播流中查找FLV头,将查找到的FLV头存入消息缓存模块;步骤102:从接收到的RTMP直播流中查找脚本标签,将查找到的脚本标签存入消息缓存模块;步骤103:从接收到的RTMP直播流中查找视频标签,然后从视频标签中分离出图像参数集和序列参数集,将图像参数集和序列参数集存入消息缓存模块;若消息缓存模块中已经存在图像参数集和序列参数集,则使用新的图像参数集和序列参数集替换原有的图像参数集和序列参数集;步骤104:从接收到的RTMP直播流中查找音频标签,然后从音频标签中分离出音频数据并发送至编码器模块;步骤105:从接收到的RTMP直播流中查找视频标签,然后从视频标签中分离出视频数据并发送至编码器模块;步骤106:重复步骤102至105。进一步的,步骤105还包括判断当前视频标签是否为关键帧(IDR),若当前视频标签中的视频帧类型为关键帧(IDR),则消息缓存模块删除GOP缓存模块内的原数据,同时将当前视频标签存入GOP缓存模块。进一步的,上述的步骤2具体为:FLV头模块向消息缓存模块请求FLV头,消息缓存模块将FLV头发送至FLV头模块;脚本标签模块向消息缓存模块请求FLV头,消息缓存模块将脚本标签发送至脚本标签模块;视频标签模块向消息缓存模块请求图像参数集和序列参数集,消息缓存模块将图像参数集和序列参数集发送至视频标签模块;合成模块:合成模块接收FLV头、脚本标签、图像参数集和序列参数集,合成HTTPFLV直播流并发送至HTTP服务模块。进一步的,合成模块向HTTP服务模块发送HTTPFLV直播流时先按以下格式发送FLV头+[脚本标签]+[第一个视频标签]+[第一个音频标签]+[第二个视频标签];然后交互发送视频标签和音频标签。进一步的,每个关键帧(IDR)发送之前,均动态插入视频标签,所述视频标签仅包括基于H.264格式的图像参数集和序列参数集。进一步的,上述步骤3具体为:步骤201:播放端向HTTP服务模块发送HTTPFLV直播流播放请求;步骤202:HTTP服务模块从编码器模块获取HTTPFLV直播流,然后将HTTPFLV直播流返回给播放端;步骤203:HTTP服务模块实时监听播放端链接状态,当监听到播放端主动关闭时,释放编码器模块,终止本次服务。由于采用了上述技术方案,本专利技术的有益效果是:本专利技术在现有的RTMP直播服务上面,无缝扩展HTTPFLV直播,大大节约了设备投入和技术改造成本,在不增加任何设备和修改协议的情况下,既能与现有的CDN网络无缝对接,还能满足PC、移动终端直播需求,同时解决了画面抖动的方法和实现了画面秒开方法。附图说明图1为本专利技术的模块组件示意图。图2为本专利技术的结构示意图。图3为本专利技术的直播流转换流程示意图。图4为本专利技术的HTTPFLV直播流播放数据与消息传递时序示意图。附图标记:1-直播前端,2-RTMP服务器,3-HTTPFLV服务器,4-直播编码器,5-摄像机,6-播放端。具体实施方式参照附图1-4和术语表,对本专利技术的实施方式做具体的说明。本专利技术提供一种RTMP直播流实时转换HTTPFLV直播流的系统,包括::Internet网络;分别与Interne本文档来自技高网
...

【技术保护点】
1.一种RTMP直播流到HTTPFLV直播流的实时转换系统,其特征在于包括:Internet网络;分别与所述Internet网络连接的RTMP服务器(2)和直播前端(1);与所述直播前端(1)连接的若干台摄像机(7);与所述RTMP服务器(2)连接的HTTPFLV服务器(3);通过CDN网络与所述HTTPFLV服务器(3)连接的播放端(6);所述的直播前端(1)包括直播编码器(4)和与直播编码器(4)连接的若干台摄像机(5);所述的播放端(6)包括PC播放器、IOS播放器、Android播放器和H5播放器;所述的HTTPFLV服务器(3)包括:与所述Internet网络连接的数据分离模块,所述数据分离模块用于接收RTMP直播流并分离出脚本标签和音视频数据;与所述数据分离模块连接的消息缓存模块;与所述消息缓存模块连接的编码器模块,所述编码器模块用于对音视频数据进行FLV格式编码;与所述编码器模块连接的HTTP服务模块,所述HTTP服务模块通过CDN网络连接播放端(6);所述的编码器模块包括FLV头模块、脚本标签模块、视频标签模块和音频标签模块,所述FLV头模块、脚本标签模块、视频标签模块和音频标签模块的输入端连接消息缓存模块,输出端连接合成模块的输入端,所述合成模块的输出端连接HTTP服务模块;所述消息缓存模块还包括GOP缓存模块,所述GOP缓存模块与视频标签模块连接,用于缓存最新的关键帧。...

【技术特征摘要】
1.一种RTMP直播流到HTTPFLV直播流的实时转换系统,其特征在于包括:Internet网络;分别与所述Internet网络连接的RTMP服务器(2)和直播前端(1);与所述直播前端(1)连接的若干台摄像机(7);与所述RTMP服务器(2)连接的HTTPFLV服务器(3);通过CDN网络与所述HTTPFLV服务器(3)连接的播放端(6);所述的直播前端(1)包括直播编码器(4)和与直播编码器(4)连接的若干台摄像机(5);所述的播放端(6)包括PC播放器、IOS播放器、Android播放器和H5播放器;所述的HTTPFLV服务器(3)包括:与所述Internet网络连接的数据分离模块,所述数据分离模块用于接收RTMP直播流并分离出脚本标签和音视频数据;与所述数据分离模块连接的消息缓存模块;与所述消息缓存模块连接的编码器模块,所述编码器模块用于对音视频数据进行FLV格式编码;与所述编码器模块连接的HTTP服务模块,所述HTTP服务模块通过CDN网络连接播放端(6);所述的编码器模块包括FLV头模块、脚本标签模块、视频标签模块和音频标签模块,所述FLV头模块、脚本标签模块、视频标签模块和音频标签模块的输入端连接消息缓存模块,输出端连接合成模块的输入端,所述合成模块的输出端连接HTTP服务模块;所述消息缓存模块还包括GOP缓存模块,所述GOP缓存模块与视频标签模块连接,用于缓存最新的关键帧。2.一种RTMP直播流到HTTPFLV直播流实时转换方法,应用权利要求1所述的一种RTMP直播流到HTTPFLV直播流实时转换系统,其特征在于包括以下步骤:步骤1:数据分离模块实时接收RTMP直播流,从RTMP直播流中分离脚本标签和音视频数据并存入消息缓存模块;步骤2:编码器模块从消息缓存模块中取出音视频数据,对音视频数据进行FLV格式编码;步骤3:HTTP服务模块收到播放端(6)的HTTPFLV直播流播放请求后,从编码器模块中获取相应的直播流并发送至播放端(6)。3.根据权利要求2所述的一种RTMP直播流到HTTPFLV直播流实时转换方法,其特征在于步骤1所述的分离脚本标签和音视频数据具体包括以下步骤:步骤101:从接收到的RTMP直播流中查找FLV头,将查找到的FLV头存入消息缓存模块;步骤102:从接收到的RTMP直播流中查找脚本标签,将查找到的脚本标签存入消息缓存模块;步骤103:从接收到的RTMP直播流中查找视频标签,然后从视频标签中分离出图像参...

【专利技术属性】
技术研发人员:李超
申请(专利权)人:四川百视通科技有限公司
类型:发明
国别省市:四川,51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1