用于WebRTC的视频数据发送方法及装置、接收方法及装置制造方法及图纸

技术编号:14624987 阅读:361 留言:0更新日期:2017-02-12 11:46
本发明专利技术提供了一种用于WebRTC的视频数据发送方法及装置、接收方法及装置,其中用于WebRTC的视频数据发送方法包括:获取未编码视频数据;向H.264编码器中输入未编码视频数据进行编码;获取经H.264编码器编码后的已编码视频数据;按照H.264格式的切包方式对已编码视频数据进行打包以形成已编码视频数据包;发送已编码视频数据包。本发明专利技术通过在WebRTC中增加了H.264标准的编解码算法和基于H.264标准特有的切包和组帧方式,使得WebRTC可以与现在主流的H.264标准的视频会议产品相兼容。从而,使得WebRTC在基于web的无插件视频会议领域更好地发挥自己的优势。

【技术实现步骤摘要】

本专利技术涉及视频会议
,具体涉及一种用于WebRTC的视频数据发送方法及装置、接收方法及装置
技术介绍
WebRTC是源自网页实时通信(WebReal-TimeCommunication)的缩写,是google公司的一个支持网页浏览器进行免插件实时音视频对话的技术,其在视频会议领域的应用前景非常广阔。WebRTC的最终目的是让Web开发者能够基于浏览器开发出丰富的多媒体实时交互应用,而无需下载安装任何插件。它提供了视频会议的核心技术,包括音视频的采集、编解码、网络传输、显示等功能,并且支持跨平台(windows\\linux\\mac\\andriod)应用。这意味着,Web开发者只需要通过简单的javascript语句就可以实现复杂的视频会议核心技术调用,大大降低了多媒体交互应用的开发难度。图1示出了整个webRTC的框架结构:webRTC本是一项在浏览器内部进行实时视频和音频通信的技术,所以其暴露在最外层的接口是WebAPI,再住下才是WebRTCC++API(也可称为WebRTCNativeC++API),NativeAPI完成其在不同平台(Windows、Linux、Mac、Android)上各个模块的功能实现,其包括音视频的采集、编解码、网络传输、显示、渲染等功能,实际上google设定这一层是给浏览器开发者使用的接口,不过其他想要使用WebRTC各个模块的开发者也可以通过NativeAPI来调到WebRTC中各个表现优秀的功能。为了使开发者更方便的使用视频通信的功能,WebRTC中实现了一套可直接使用的视频流控制模块VideoEngine,如图2所示为VideoEngine内部中各个模块的关联情况,包括编解码模块(VideoCodingModule)、RtpRtcp模块、网络收发模块之间的关系,及VideoEngine是如何来组织这些模块的。VideoEngine包含着一次视频通信过程中所要调用到的各个模块的操作对象,视频流的控制都在VideoEngine内部实现,对于开发者不需要关心采集模块与视频编码模块如何链接,视频编码模块与网络收发模块如何链接,开发者只需要启动这个过程即可,如图3中所示,其中包括:1)从编码开始到发送数据整个过程中,视频流在VideoEngine内部的流向;2)从接收RTP包开始到解码整个过程中,视频流在VideoEngine内部的流向。但是,目前视频会议领域使用最普遍的编解码算法还是基于H.264标准的算法,其切包和组帧方式也是基于H.264标准特有的,未来的发展趋势可以确定是H.265。以视频会议目前的普及率,不考虑兼容性的视频会议产品是无法在市场上生存的。而WebRTC原生并不支持H.264/H.265,它的默认编解码器使用的是开源的VP8。这使得WebRTC无论从编解码算法还是媒体流的接收发送特性上,均无法与现在主流的H.264视频会议产品相兼容。
技术实现思路
因此,本专利技术要解决的技术问题在于WebRTC由于使用的编解码器是开源的VP8,而非目前主流视频会议产品使用的H.264编解码器,而导致的WebRTC无论从编解码算法还是媒体流的接收发送上,均无法与现在主流的视频会议产品相兼容。为此,本专利技术实施例提供了如下技术方案:一种用于WebRTC的视频数据发送方法,包括以下步骤:获取未编码视频数据;向H.264编码器中输入未编码视频数据进行编码;获取经H.264编码器编码后的已编码视频数据;按照H.264格式的切包方式对已编码视频数据进行打包以形成已编码视频数据包;发送已编码视频数据包。优选地,H.264编码器是通过外部编解码器注册模块来动态注册的,外部编解码器注册模块由WebRTC中的视频引擎提供。优选地,获取经H.264编码器编码后的已编码视频数据的步骤之后,还包括:利用H.264编码器内预先设置的编码完成时的回调函数将已编码视频数据发送至WebRTC中的RtpRtcp模块,以进行打包和发送。优选地,按照H.264格式的切包方式对已编码视频数据进行打包的步骤包括:将已编码视频数据打包为多个片(slice);判断各个片(slice)的大小是否大于预设的最大传输单元;如果是,则通过切片方式将该片(slice)切成多个包。一种用于WebRTC的视频数据接收方法,包括以下步骤:接收已编码视频数据包;按照H.264格式的组帧方式对所接收的已编码视频数据包进行解析、组帧;向H.264解码器输入组帧后的已编码视频数据进行解码。优选地,H.264解码器是通过外部编解码器注册模块来动态注册的,外部编解码器注册模块由WebRTC中的视频引擎提供。优选地,按照H.264格式的组帧方式对所接收的已编码视频数据包进行解析、组帧的步骤包括:获取并解析所接收的已编码视频数据包的包头信息;根据包头信息进行组帧。优选地,向H.264解码器输入组帧后的已编码视频数据进行解码的步骤之后,还包括:根据H.264解码器中预先设置的解码完成时的回调函数将解码完成的视频数据输送至显示模块中进行显示。一种用于WebRTC的视频数据发送装置,包括:第一获取单元,用于获取未编码视频数据;编码单元,用于向H.264编码器中输入未编码视频数据进行编码;第二获取单元,用于获取经H.264编码器编码后的已编码视频数据;打包单元,用于按照H.264格式的切包方式对已编码视频数据进行打包以形成已编码视频数据包;发送单元,用于发送已编码视频数据包。一种用于WebRTC的视频数据接收装置,包括:接收单元,用于接收已编码视频数据包;组帧单元,用于按照H.264格式的组帧方式对所接收的已编码视频数据包进行解析、组帧;解码单元,用于向H.264解码器输入组帧后的已编码视频数据进行解码。本专利技术技术方案,具有如下优点:1.本专利技术实施例提供的用于WebRTC的视频数据发送方法及装置,通过在webRTC中增加了对H.264格式的支持,即增加了H.264标准的编码算法和基于H.264标准特有的切包方式,从而使得WebRTC从编码算法和媒体流的发送特性上,与现在主流的H.264视频会议产品相兼容。结合WebRTC自身良好的网络适应性,可以使其在视频会议领域的应用更加广泛。2.本专利技术实施例提供的用于WebRTC的视频数据发送方法及装置,H.本文档来自技高网
...

【技术保护点】
一种用于WebRTC的视频数据发送方法,其特征在于,包括以下步骤:获取未编码视频数据;向H.264编码器中输入所述未编码视频数据进行编码;获取经所述H.264编码器编码后的已编码视频数据;按照H.264格式的切包方式对所述已编码视频数据进行打包以形成已编码视频数据包;发送所述已编码视频数据包。

【技术特征摘要】
1.一种用于WebRTC的视频数据发送方法,其特征在于,包括以下步骤:
获取未编码视频数据;
向H.264编码器中输入所述未编码视频数据进行编码;
获取经所述H.264编码器编码后的已编码视频数据;
按照H.264格式的切包方式对所述已编码视频数据进行打包以形成已
编码视频数据包;
发送所述已编码视频数据包。
2.如权利要求1所述的方法,其特征在于,所述H.264编码器是通过
外部编解码器注册模块来动态注册的,所述外部编解码器注册模块由
WebRTC中的视频引擎提供。
3.如权利要求1或2所述的方法,其特征在于,所述获取经所述H.264
编码器编码后的已编码视频数据的步骤之后,还包括:
利用所述H.264编码器内预先设置的编码完成时的回调函数将所述已
编码视频数据发送至WebRTC中的RtpRtcp模块,以进行打包和发送。
4.如权利要求1-3中任一项所述的方法,其特征在于,所述按照H.264
格式的切包方式对所述已编码视频数据进行打包的步骤包括:
将所述已编码视频数据打包为多个片(slice);
判断各个片(slice)的大小是否大于预设的最大传输单元;
如果是,则通过切片方式将该片(slice)切成多个包。
5.一种用于WebRTC的视频数据接收方法,其特征在于,包括以下步
骤:
接收已编码视频数据包;
按照H.264格式的组帧方式对所接收的已编码视频数据包进行解析、
组帧;
向H.264解码器输入组帧后的已编码视频数据进行解码。
...

【专利技术属性】
技术研发人员:刘翔张宝卿
申请(专利权)人:苏州科达科技股份有限公司
类型:发明
国别省市:江苏;32

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

1