流媒体视频数据的解码方法和装置制造方法及图纸

技术编号:14995413 阅读:83 留言:0更新日期:2017-04-04 01:00
本发明专利技术涉及流媒体视频数据的解码方法和装置。所述方法包括:获取流媒体视频数据的视频帧的时间信息;建立第一缓存区以缓存流媒体视频数据的视频帧;获取所缓存的视频帧的视频帧信息;基于所获取的时间信息和视频帧信息对所缓存的视频帧进行解码,并将解码后的视频帧数据保存在第二缓存区中;读取第二缓存区中的视频帧数据并进行转码;以及将转码后的视频帧数据写入硬盘以供播放。该方法和装置其通过硬解码方式实现了对流媒体视频数据的解码,提高了解码效率并降低了耗电量。

【技术实现步骤摘要】

本专利技术涉及视频
,尤其涉及一种流媒体视频数据的解码方法和装置
技术介绍
ios系统是由苹果公司开发的移动操作系统。ios系统播放器不支持某些格式的流媒体视频数据的解码,例如基于H.264格式的流媒体视频数据(以下简称为H.264流媒体视频数据)。为解决这一问题,目前在ios系统环境下通常通过软解码来实现这类流媒体视频数据的解码。现在视频行业内的软解码通常采用FFmpeg开源框架,FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。然而,这种软解码方式完全依赖于CPU来执行。由于CPU没有相关的集成指令,需要靠CPU的运算能力来解码,所以对流媒体视频数据的软解码会给CPU造成很大的负担,在移动终端表现为效率低,耗电严重。
技术实现思路
有鉴于此,本专利技术提出了一种流媒体视频数据的解码方法和装置,其通过硬解码方式实现了对流媒体视频数据的解码,提高了解码效率并降低了耗电量。一方面,提出了一种流媒体视频数据的解码方法,该方法包括:获取流媒体视频数据的视频帧的时间信息;建立第一缓存区以缓存流媒体视频数据的视频帧;获取所缓存的视频帧的视频帧信息;基于所获取的时间信息和视频帧信息对所缓存的视频帧进行解码,并将解码后的视频帧数据保存在第二缓存区中;读取第二缓存区中的视频帧数据并进行转码;以及将转码后的视频帧数据写入硬盘以供播放。另一方面,提出了一种流媒体视频数据的解码装置,该装置包括:用于获取流媒体视频数据的视频帧的时间信息的部件;用于建立第一缓存区以缓存流媒体视频数据的视频帧的部件;用于获取所缓存的视频帧的视频帧信息的部件;用于基于所获取的时间信息和视频帧信息对所缓存的视频帧进行解码,并将解码后的视频帧数据保存在第二缓存区中的部件;用于读取第二缓存区中的视频帧数据并进行转码的部件;以及用于将转码后的视频帧数据写入硬盘以供播放的部件。根据下面参考附图对示例性实施例的详细说明,本专利技术的其它特征及方面将变得清楚。附图说明包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本专利技术的示例性实施例、特征和方面,并且用于解释本专利技术的原理。图1示出根据本专利技术一实施例的一种流媒体视频数据的解码方法的流程图。图2示出根据本专利技术一实施例的一种流媒体视频数据的解码装置的框图。图3示出根据本专利技术一实施例的一种流媒体视频数据的解码设备的框图。具体实施方式以下将参考附图详细说明本专利技术的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。另外,为了更好的说明本专利技术,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本专利技术同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本专利技术的主旨。实施例1图1示出根据本专利技术一实施例的一种流媒体视频数据的解码方法的流程图。如图1所示,该方法主要包括:步骤101:获取流媒体视频数据的视频帧的时间信息;步骤102:建立第一缓存区以缓存流媒体视频数据的视频帧;步骤103:获取所缓存的视频帧的视频帧信息;步骤104:基于所获取的时间信息和视频帧信息对所缓存的视频帧进行解码,并将解码后的视频帧数据保存在第二缓存区中;步骤105:读取第二缓存区中的视频帧数据并进行转码;以及步骤106:将转码后的视频帧数据写入硬盘以供播放。本实施例的各步骤可借助于解码硬件(如GPU)的指令集来完成,从而实现硬解码,降低解码过程中CPU资源的使用,提高了解码速度,降低了终端设备的耗电量。以下以ios系统下的VideoToolBox框架为例,给出本实施例的一个非限制性的具体示例。本领域技术人员应理解,该示例仅为了说明本专利技术实施例以便于理解,而并非以任何方式限制本专利技术。在一个示例中,该方法可包括获取流媒体视频数据,其中流媒体视频数据可以是基于H.264的HLS(HTTP流媒体直播)流媒体视频数据。ios系统提供的播放器(例如AVplayer,MPMoviePlayer,AVPlayerQueue等)是不支持H.264视频格式的解码的,所以要获取流媒体视频数据,可控制流媒体视频数据output(输出数据流)的流向,即截获output数据,并对所截获的数据进行本实施例的后续处理,以实现硬解码。以AVplayer播放器为例,可以设置AVplayer播放器的输出函数AVPlayerItemVideoOutput的attribute(属性)的kCVPixelBufferPixelFormatTypeKey格式,即指定解码后的图像格式。例如,对于移动终端为苹果TM手机的情况,由于苹果的硬解码器只支持NV12,因此解码后的图像格式可指定成NV12格式。可通过控制output流向来获取流媒体视频数据的视频帧的时间信息。时间信息可以通过参数CMTime表示,其指示视频帧的是每秒中的第几帧,以及每秒有多少帧,利用该信息还可计算出每帧的起止时间等时间信息。可通过函数CACurrentMediaTime()来获取CMTime。可通过函数CopyPixelBufferForItemTime()来获取pixelbuffer(像素缓存区)作为第一缓存区,以缓存流媒体视频数据的视频帧。可通过函数CVPixelBufferRef来获取所缓存的视频帧的视频帧信息,视频帧信息可包括用于显示该视频帧所需的信息,例如每个视频帧的纹理数据,用于绘制该视频帧的画面以供显示。在一个示例中,基于所获取的时间信息和视频帧信息对所缓存的视频帧进行解码可包括:针对每个视频帧,将所获取的时间信息和视频帧信息进行合成得到合成后的视频帧信息,并对合成后的视频帧信息进行解码。例如,可通过函数AVAssetWriter将第一缓存区中的视频帧的视频帧信息与其他信息(例如时间信息、音频信息等)进行合成。具体来说,可以通过函数AVAssetWirteInput控制AVAssetWriter内部的input(输入数据流)流向以截取input数据进行后续处理。可以将指示编解码格式的参数AVVideoCodecKey设置为针对本文档来自技高网...

【技术保护点】
一种流媒体视频数据的解码方法,该方法包括:获取流媒体视频数据的视频帧的时间信息;建立第一缓存区以缓存流媒体视频数据的视频帧;获取所缓存的视频帧的视频帧信息;基于所获取的时间信息和视频帧信息对所缓存的视频帧进行解码,并将解码后的视频帧数据保存在第二缓存区中;读取第二缓存区中的视频帧数据并进行转码;以及将转码后的视频帧数据写入硬盘以供播放。

【技术特征摘要】
1.一种流媒体视频数据的解码方法,该方法包括:
获取流媒体视频数据的视频帧的时间信息;
建立第一缓存区以缓存流媒体视频数据的视频帧;
获取所缓存的视频帧的视频帧信息;
基于所获取的时间信息和视频帧信息对所缓存的视频帧进行解码,并将
解码后的视频帧数据保存在第二缓存区中;
读取第二缓存区中的视频帧数据并进行转码;以及
将转码后的视频帧数据写入硬盘以供播放。
2.根据权利要求1所述的流媒体视频数据的解码方法,其中,基于所获
取的时间信息和视频帧信息对所缓存的视频帧进行解码包括:
针对每个视频帧,将所获取的时间信息和视频帧信息进行合成得到合成
后的视频帧信息,并对合成后的视频帧信息进行解码。
3.根据权利要求1所述的流媒体视频数据的解码方法,其中,时间信息
包括视频帧的是每秒中的第几帧,以及每秒有多少帧。
4.根据权利要求1所述的流媒体视频数据的解码方法,其中,所述第二
缓存区保存针对多个第一缓存区的解码后的视频帧数据。
5.根据权利要求1所述的流媒体视频数据的解码方法,其中,读取第二
缓存区中的视频帧数据并进行转码包括:基于从所述视频帧数据中获取的所
述时间信息对所读取的第二缓存区中的视频帧数据进行转码。
6.一种流媒体视频数据的解码装...

【专利技术属性】
技术研发人员:卢昱泽蔡亮王涛顾思斌潘柏宇王冀
申请(专利权)人:传线网络科技上海有限公司
类型:发明
国别省市:上海;31

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

1