【技术实现步骤摘要】
面向多屏的场景自适应的数据封装方法和装置及系统
本专利技术涉及数据封装领域,具体而言,涉及一种面向多屏的场景自适应的数据封装方法和装置及系统。
技术介绍
随着移动终端的发展,播放终端的多样化趋势已不可避免。而不同播放终端允许接收的音视频数据的封装格式也有所差异,如:PC上Flash播放器可以接收RTMP格式和HDS格式,iOS以及Android高于4.0版本的手机和平板可以接收HTTPLiveStreaming(HLS)格式,Android低于4.0版本的手机和平板可以接收RTP格式。这些数据封装类型均有与之对应的标准协议描述。数据的封装和解封装,指的是数据从编码端传递到播放端时,需要经过多个协议层,在编码端,从最高层的应用层到最底层的物理层,每一层中又包含一个或多个协议层,数据每向下经过一个协议层时,均要在数据之上添加对应的头或尾作为协议的控制信息,然后传递给下一层协议层,称之为数据的封装,而在解码端,每向上通过一个协议层,则将协议的控制信息剥离,再把剩下的数据向上传递给上一层协议,称之为数据的解封装。这里提到的数据封装,特指在应用层中包含的协议层的数据封装,而不涉及传输层TCP/UDP、网络层、数据链路层和物理层的数据封装。上述提到的不同播放终端支持的数据封装,其应用层包含一个或多个协议。同时这些协议中所描述的数据封装方法,通常仅是规定了数据封装中控制信息的格式,但对具体如何拆分视频、音频信息,特别是不同帧的信息如何组织,并未具体规定。专利技术人发现,为提高传输效率,可以针对不同场景给出不同的封装优化方案,但是场景是易变的,目前还没有封装方案可以适应所 ...
【技术保护点】
一种面向多屏的场景自适应的数据封装方法,其特征在于,包括:检测客户端的属性信息,所述属性信息用于反映所述客户端对多媒体数据封装的解析能力,所述多媒体数据包括音频数据和/或视频数据;由所述属性信息确定所述客户端对应的封装参数,所述封装参数包括以下至少之一:第一参数、第二参数、第三参数、第四参数、第五参数、第六参数,其中,所述第一参数用于反映所述客户端是否支持音视频交织,所述第二参数用于反映所述客户端是否支持动态码率,所述第三参数用于反映所述客户端是否支持音频数据截断,所述第四参数用于反映所述客户端是否支持视频数据截断,所述第五参数用于反映所述客户端是否支持音频帧聚合,所述第六参数用于反映所述客户端是否支持视频帧聚合;根据所述封装参数对所述多媒体数据进行封装;以及将封装后的数据输出至所述客户端。
【技术特征摘要】
1.一种面向多屏的场景自适应的数据封装方法,其特征在于,包括:检测客户端的属性信息,所述属性信息用于反映所述客户端对多媒体数据封装的解析能力,所述多媒体数据包括音频数据和/或视频数据;由所述属性信息确定所述客户端对应的封装参数,所述封装参数包括以下至少之一:第一参数、第二参数、第三参数、第四参数、第五参数、第六参数,其中,所述第一参数用于反映所述客户端是否支持音视频交织,所述第二参数用于反映所述客户端是否支持动态码率,所述第三参数用于反映所述客户端是否支持音频数据截断,所述第四参数用于反映所述客户端是否支持视频数据截断,所述第五参数用于反映所述客户端是否支持音频帧聚合,所述第六参数用于反映所述客户端是否支持视频帧聚合;根据所述封装参数对所述多媒体数据进行封装;以及将封装后的数据输出至所述客户端。2.根据权利要求1所述的数据封装方法,其特征在于,在根据所述封装参数对所述多媒体数据进行封装之前,所述数据封装方法还包括:获取对所述多媒体数据进行编码后的数据;通过预先建立的缓存队列对所述编码后的数据进行缓存,根据所述封装参数对所述多媒体数据进行封装包括:根据所述封装参数对所述缓存队列中缓存的数据进行封装。3.根据权利要求2所述的数据封装方法,其特征在于,所述缓存队列包括音频缓存队列和视频缓存队列,根据所述封装参数对所述多媒体数据进行封装包括:由所述第一参数判断所述客户端是否支持音视频交织;如果判断出所述客户端不支持音视频交织,则将所述音频数据缓存至所述音频缓存队列,将所述视频数据缓存至所述视频缓存队列;比较所述音频缓存队列的队列头部的数据帧的时间戳与所述视频缓存队列的队列头部的数据帧的时间戳;以及获取所述音频缓存队列和所述视频缓存队列中时间戳较小的数据帧进行封装。4.根据权利要求1所述的数据封装方法,其特征在于,所述属性信息包括所述客户端的操作系统和所述操作系统对应的版本号,检测客户端的属性信息包括:检测所述客户端的操作系统和所述操作系统对应的版本号,由所述属性信息确定所述客户端对应的封装参数包括:如果检测出所述操作系统为iOS系统且所述iOS系统的版本号为iOS3.0以上版本,则确定所述客户端不支持音视频交织、支持动态码率、支持音频数据截断、支持视频数据截断、支持音频帧聚合以及支持视频帧聚合;如果检测出所述操作系统为Android系统且所述Android系统的版本号为Android4.0以上版本,则确定所述客户端不支持音视频交织、支持动态码率、支持音频数据截断、支持视频数据截断、支持音频帧聚合以及支持视频帧聚合;以及如果检测出所述操作系统为Android系统且所述Android系统的版本号低于Android4.0,则确定所述客户端支持音视频交织、不支持动态码率、不支持音频数据截断、不支持视频数据截断、不支持音频帧聚合以及不支持视频帧聚合。5.根据权利要求1所述的数据封装方法,其特征在于,根据所述封装参数对所述多媒体数据进行封装包括:由所述第五参数判断所述客户端是否支持音频帧聚合;如果判断出所述客户端支持音频帧聚合,则获取所述音频数据中按顺序排列的多个音频帧;获取所述多个音频帧中第一个音频帧的数据包头信息;以所述第一个音频帧的数据包头信息作为音频帧集合的数据包头信息对所述多个音频帧进行聚合,得到所述音频帧集合;以及对所述音频帧集合进行封装,和/或,根据所述封装参数对所述多媒体数据进行封装包括:由所述第六参数判断所述客户端是否支持视频帧聚合;如果判断出所述客户端支持视频帧聚合,则获取所述视频数据中按顺序排列的多个视频帧;获取所述多个视频帧中第一个视频帧的数据包头信息;以所述第一个视频帧的数据包头信息作为视频帧集合的数据包头信息对所述多个视频帧进行聚合,得到所述视频帧集合;以及对所述视频帧集合进行封装。6.根据权利要求5所述的数据封装方法,其特征在于,对所述多个音频帧进行聚合,得到音频帧集合包括:判断所述客户端接收的封装后的数据包的数据长度是否为固定数据长度;如果判断出所述客户端接收的封装后的数据包的数据长度为所述固定数据长度,则确定所述客户端接收的封装后的数据包的固定负荷和所述数据包的封包包头数据长度;确定用于进行聚合的音频帧的个数k,所述个数k满足以下公式其中,z为预设的比例值,Truncate((...
【专利技术属性】
技术研发人员:罗翰,李毅,要文涛,
申请(专利权)人:北京世纪鼎点软件有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。