
本发明涉及FLV格式数据传输,尤其涉及一种H264、H265裸流数据封装成FLV格式以NIO传输的方法。
背景技术:
FLV是FLASHVIDEO的简称,FLV流媒体格式是一种新的视频格式,全称为FlashVideo。FLV格式视频主要特点是体积小,适合作为流媒体在网上进行传播,本身占有率低,视频质量良好,目前大部分播放器都支持FLV视频格式播放。
如图1所示,FLV包括文件头(File Header)和文件体(File Body)两部分。FLV封装格式由一个FLV Header文件和一个一个的Tag组成的,Tag中包含了音频数据和视频数据。现有技术H264、H265裸流数据传输效率不高,本发明结合FLV格式的优点而开发。
技术实现要素:
本发明正是针对上述的问题,提出一种H264、H265裸流数据封装成FLV格式以NIO传输的方法。
为实现上述目的,本发明具体技术方案如下:
一种H264、H265裸流数据封装成FLV格式以NIO传输的方法,包括步骤:
S1、录屏端采集到第一数据,将其进行转换成H264或H265数据格式,获得H264或H265裸流数据;
S2、将H264或H265裸流数据封装成FLV格式,通过NIO将FLV格式数据传输到客户端。
优选地,所述录屏端采集Android5.0以上版本的第一数据。
进一步地,所述第一数据的数据格式是ByteBuffer类型。
优选地,所述步骤S2中将H264或H265裸流数据封装成FLV格式的方法为:
S201、首先通过录屏获取到数据源,将得到的ByteBuffer进行处理,通过ByteBuffer读取到该数据的长度;
S202、声明一个数据包的长度,其中FLV header占9个字节;
S203、然后通过自带的函数获取一遍数据;
S204、进行tag封装。
本发明技术所具有的有益效果为:
本发明中借助FLV的优点和NIO的优点结合在一起进行字节数据的传输,可以更高效的处理数据,以及减少用户的流量;适合在手机录屏、投屏操控上带来更好的体验。
附图说明
图1为现有技术FLV格式的结构示意图;
图2为本发明流程图;
图3为本发明中FLV格式封装流程图。
具体实施方式
为了便于本领域的普通技术人员能够理解并实施本发明,下面将结合附图对本发明实施例作进一步说明。
参考图2,本发明提供一种H264、H265裸流数据封装成FLV格式以NIO传输的方法,包括步骤:
S1、录屏端采集到第一数据,将其进行转换成H264或H265数据格式,获得H264或H265裸流数据;
S2、将H264或H265裸流数据封装成FLV格式,通过NIO将FLV格式数据传输到客户端。
其中,所述录屏端采集Android5.0以上版本的第一数据。
所述第一数据的数据格式是ByteBuffer类型。
参考图3,所述步骤S2中将H264或H265裸流数据封装成FLV格式的方法为:
S201、首先通过录屏获取到数据源,将得到的ByteBuffer进行处理,通过ByteBuffer读取到该数据的长度;
S202、声明一个数据包的长度,其中FLV header占9个字节;
S203、然后通过自带的函数获取一遍数据;
S204、进行tag封装。
本发明工作原理为:
Android5.0以上录屏采集获取到的数据格式是ByteBuffer类型的,然后再将获取到的ByteBuffer数据进行封装,转换成H264或H265的数据格式,然后再使用FLV进行对H264或H265的裸流数据封装。
录屏端以nio的实现方式作为服务端,使用nio socket给客户端传输数据,将封装好的FLV数据格式通过nio把数据给到以nio方案实现的客户端。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
本发明介绍了一种将H264或H265裸流数据封装为FLV格式并通过NIO传输的方法,适用于Android5.0以上版本的录屏数据。该方法通过FLV格式提高数据传输效率,减少流量消耗,提升用户体验。
2万+

被折叠的 条评论
为什么被折叠?



