一种用于移动电视的录制方法
技术领域
本发明涉及一种用于移动电视的录制方法。
背景技术
目前数字移动电视播放设备广泛应用,移动电视节目的录制也渐渐成为这类设备的必备需求。
随着科技的进步,数字移动电视迅速发展、市场也走向成熟,尤其是CMMB标准推出后,手机等手持设备上播放数字移动电视已经十分常见。用户除了观看节目,也希望将一些感兴趣的节目保存下来,或是节目播放时没有时间观看,希望录制下来,甚至将录制的文件拷贝到PC上可以随时观看。
在移动电视的录制时可以把接收的全部数据流都保存下来,这类方法实现简单方便,但这些码流中可能包含了若干节目的内容,占用的存储空间会较大,一些节目也不是用户感兴趣的。
因此,需要一种处理机制,仅保存用户需要保存的节目内容。由于在数字移动电视播放时已对节目进行了提取,如图1所示的数字移动电视的播放流程:
1、通过移动电视接收设备接收到电视节目数据流中的音视频数据流;
2、由传输流分析装置分离成一个节目中带时间戳的音频/视频流;
3、音视频解码装置分别解码音视频;
4、通过播放控制装置对进行同步播放。
将与正在播放的节目内容相关的数据流保存下来,就实现了这一需求,这是数字移动电视录制采用的普遍方法。具体实施过程如图2所示包括三个步骤:
1、通过移动电视接收设备接收到音视频数据流(TS);
2、由TS流分析装置分离成一个节目数据流;
3、存储装置将数据流保存到存储介质。
现有的解决方案虽然使得最终录制的文件节省了占用空间,也能实现录制文件在支持相同移动电视功能的手持设备上播放,但这些录制的文件可能被用户发送给好友分享,而对于不支持相同移动电视功能的手持设备上这些录制的文件无法播放;此外,由于移动手持设备的存储容量有限,一些用户感兴趣的内容就会被转移到PC上保存,对于现有方法保存的文件在PC上播放却需要安装特定的软件,给大多用户带来一定的麻烦。随着移动电视节目录制的应用越来越广,录制文件的可播放性也显得十分重要。
发明内容
本发明的目的在于提供一种用于移动电视的录制方法,本方法根据数字移动电视的播放流程将数字节目使录制为可在手持设备和PC上主流播放软件能够正常播放的文件,增强了移动电视录制文件的可播放性,同时具有节省存储空间的特点。
本发明的目的可通过以下的技术措施来实现:一种用于移动电视的录制方法,其特征在于包括以下步骤:
(1)、通过移动电视接收设备接收到传输数据流;
(2)、由传输流分析装置从传输数据流中分离出一个节目中带时间戳的音视频流;
(3)、使用音频解码装置和视频解码装置分别解码出音视频流中带时间戳的音频数据码流和视频数据码流;
(4)、对带时间戳的音频数据码流和视频数据码流进行合成并生成目标媒体文件。
所述第(4)步骤中带时间戳的音频数据码流进行合成之前,对其进行通用的纠错处理后再进行合成。所述第(4)步骤中带时间戳的视频数据码流进行合成之前,对其进行通用的纠错处理后再进行媒体文件的合成。
所述对带时间戳的音频数据码流和视频数据码流进行合成的过程包括以下步骤:
(a)将音频数据码流/视频数据码流以视频帧/音频帧为单位按时间顺序对应放入音频先入先出缓冲区/视频先入先出缓冲区中,每帧音频数据码流/视频数据码流都带有时间戳信息;
(b)在视频先入先出缓冲区中查找第一个视频关键帧作为合成过程的起始点,并将所述视频关键帧之前的所有视频帧丢弃,记录所述视频关键帧的时间戳信息,同时,将所述时间戳信息之前的音频帧全部丢弃;
(c)从起始点开始,判断视频先入先出缓冲区中是否存在视频帧,没有视频帧则进入步骤(d),有视频帧则从视频先入先出缓冲区中取出一个视频帧,将当前视频帧加入到合成的媒体文件中;
(d)判断音频先入先出缓冲区中是否存在音频帧,如果没有音频帧则进入步骤(e),如果有音频帧则从音频先入先出缓冲区中取出一个音频帧,将当前音频帧加入到合成的媒体文件中;
(e)判断视频先入先出缓冲区中是否有视频数据,有则进入步骤(c),否则判断是否停止录制,如果停止录制则结束合成过程;否则进入步骤(a)。
所述步骤(c)和(d)中将当前视频帧/音频帧加入到合成的媒体文件之前,判断当前视频帧/音频帧是否为重新同步后的第一个视频帧/音频帧,是则直接将当前视频/音频帧合成到媒体文件中;否则计算当前视频帧/音频帧与上次合成的视频帧/音频帧的视频帧时间戳差值/音频帧时间戳差值,并检测视频帧时间戳差值/音频帧时间戳差值是否异常,如果异常则进行重新同步操作;如果没有异常则判断当前视频帧/音频帧与上次合成的视频帧/音频帧之间是否有数据丢失,没有数据丢失则将当前视频帧/音频帧加入到合成的媒体文件中,否则对视频帧/音频帧进行补帧并加入到合成的媒体文件中。其中所述时间戳以毫秒为单位。
所述检测视频帧时间戳差值/音频帧时间戳差值是否异常的过程为:判断视频帧时间戳差值/音频帧时间戳差值是否小于0或者大于给定数值,为真则当前视频帧/音频帧为异常。
所述判断当前视频帧与上次合成的视频帧之间是否有数据丢失的过程为:计算当前视频帧与上次合成的视频帧的视频帧时间戳差值,然后用这个差值除以相邻两视频帧标准差值,得到的结果值取整数,如果所述结果值减1后小于0则不需要补帧,如果所述结果值减1后大于等于0,则补充空视频帧,补充的空视频帧数为结果值减1个;所述相邻两视频帧标准差值为1000/目标帧率,所述目标帧率为:需达到的每秒的视频帧数。
所述判断当前音频帧与上次合成的音频帧之间是否有数据丢失的过程为:计算当前音频帧与上次合成的音频帧的音频帧时间戳差值,然后用这个差值除以一个音频帧持续时间,得到的结果值取整数,如果所述结果值减1后小于0则不需要补帧,如果所述结果值减1后大于等于0,则补充空音频帧,补充的空音频帧数为结果值减1个。所述一个音频帧持续时间是指一个音频帧数据解码出的未压缩的数据能播放的时间。
所述重新同步的操作过程为:根据当前媒体文件中已录制的部分,计算音频录制时间、视频录制时间以及音频录制时间和视频录制时间之间的差值,并根据所述差值对音频或视频进行补帧操作,使得已录制部分的音频或视频时间差值小于一个音频帧持续时间,经过重新同步后清空音频/视频先入先出缓冲区中的音频/视频数据。
所述对视频帧/音频帧进行补帧时补入空视频帧/空音频帧,所补入的空视频帧/空音频帧的数量为所丢失的视频帧数。
本发明方法的有益效果为:
1、本发明适用于多种移动电视标准节目的录制,例如移动MP4、手机,车载、GPS导航设备等带有数字移动电视播放的设备上;同时增强了录制文件的可播放性,通过将移动电视节目录制为普通视频格式的媒体文件,可方便的将录制节目拷贝到其他不具有相同移动电视功能的手持播放设备上播放;
2、录制的文件拷贝到PC上播放不需要额外安装特定的播放软件;
3、录制文件中的数据是经过纠错的,避免播放器由于容错能力差而导致崩溃;
4、使用本发明在移动电视弱信号条件下录制的文件在播放时音视频也能很好的同步。
附图说明
图1是数字移动电视的播放流程示意图;
图2是现有数字移动电视节目的录制流程示意图;
图3是本发明用于移动电视的录制方法的一具体实施方式的流程图;
图4是本发明方法的对带时间戳的音频/视频数据码流进行合成的流程图。
具体实施方式
图3至图4示出了本发明的用于移动电视的录制方法的流程图。本发明根据数字移动电视播放的流程,将分离的音视频根据时间戳重新按时间顺序组织成常见的媒体格式,如AVI、MP4等,但不限于这两种。种并且根据播放时的时间信息进行同步存储,这样录制的文件也能同步播放,使得录制的文件在没有移动电视的手持设备和PC上都能正常播放。本方法中移动电视标准包含CMMB、ISDB-T但不限于这两种。
本发明的实施流程如图3所示,在播放流程的基础上对音视频解码装置进行了改进,增加了一个音视频合成装置。
移动电视的播放与普通媒体文件播放不同,移动电视的数据是通过无线的方式接收的,这样接收的数据根据无线信号的强弱误码的情况也不同,当信号好的时候可能误码较少,直接将带时间戳的音视频码流进行合成也可以录出正常的媒体文件,但当信号差的时候,误码随之增加,这样如果直接将带时间戳的音视频码流进行合成媒体文件,由于错误较多的码流进入解码器会导致解码器无法处理,这样就不能保证录制的文件的正常播放。因此,本发明中对音视频解码装置进行了改进,使之可以输出纠错后的音视频码流。经过实验,对于视频误码,PC上的解码器处理较好,即使误码较多也没有出现程序出错或崩溃的情况,而对于音频误码较多的情况,PC上的播放软件会出现程序崩溃,因此对于视频解码装置,为了提高效率也可以不改进,如图4所示,直接使用解码前的数据进行录制。从而本发明的具体流程包括以下步骤:
(1)、通过移动电视接收设备接收到传输数据流;
(2)、由传输流分析装置从传输数据流中分离出一个节目中带时间戳的音视频流;
(3)、使用音频解码装置和视频解码装置分别解码出音视频流中带时间戳的音频数据码流和视频数据码流;
(4)、对带时间戳的音频数据码流和视频数据码流进行合成并生成目标媒体文件。
其中第(4)步骤中带时间戳的音频数据码流进行合成之前,可以对其进行通用的纠错处理后再进行合成;带时间戳的视频数据码流进行合成之前,可以对其进行通用的纠错处理后再进行媒体文件的合成。
在音视频数据能准确无误的获取的情况下,也可以直接使用带时间戳的音频数据码流和视频数据码流进行合成。为得到最好的录制结果,本具体实施方式中都采用纠错处理后的音频数据码流和视频数据码流,分别称为音频纠错码流和视频纠错码流。
接下来,对上述带时间戳的音频纠据码流和视频纠错码流进行合成的过程包括以下步骤:
(a)将音频纠错码流/视频纠错码流以视频帧/音频帧为单位按时间顺序对应放入音频先入先出缓冲区/视频先入先出缓冲区中,每帧音频纠错码流/视频纠错码流都带有时间戳信息;
(b)在视频先入先出缓冲区中查找第一个视频关键帧作为合成过程的起始点,并将所述视频关键帧之前的所有视频帧丢弃,记录所述视频关键帧的时间戳信息,同时,将所述时间戳信息之前的音频帧全部丢弃;
(c)从起始点开始,判断视频先入先出缓冲区中是否存在视频帧,没有视频帧则进入步骤(d),有视频帧则从视频先入先出缓冲区中取出一个视频帧,判断当前视频帧是否为重新同步后的第一个视频帧,是则直接将当前视频合成到媒体文件中;否则计算当前视频帧与上次合成的视频帧的视频帧时间戳差值,并检测视频帧时间戳差值是否异常,如果异常则进行重新同步操作;如果没有异常则判断当前视频帧与上次合成的视频帧之间是否有数据丢失,没有数据丢失则将当前视频帧加入到合成的媒体文件中,否则对视频帧进行补帧并加入到合成的媒体文件中,补充的帧为空视频帧。其中时间戳以毫秒为单位;
(d)判断音频先入先出缓冲区中是否存在音频帧,如果没有音频帧则进入步骤(e),如果有音频帧则从音频先入先出缓冲区中取出一个音频帧,判断当前音频帧是否为重新同步后的第一个音频帧,是则直接将当前音频帧合成到媒体文件中;否则计算当前音频帧与上次合成的音频帧的音频帧时间戳差值,并检测音频帧时间戳差值是否异常,如果异常则进行重新同步操作;如果没有异常则判断当前音频帧与上次合成的音频帧之间是否有数据丢失,没有数据丢失则将当前音频帧加入到合成的媒体文件中,否则对音频帧进行补帧并加入到合成的媒体文件中,补充的帧为空音频帧。其中时间戳以毫秒为单位;
(e)判断视频先入先出缓冲区中是否有视频数据,有则进入步骤(c),否则判断是否停止录制,如果停止录制则结束合成过程;否则进入步骤(a)。
上述检测视频帧时间戳差值/音频帧时间戳差值是否异常的过程为:判断视频帧时间戳差值/音频帧时间戳差值是否小于0或者大于给定数值,为真则当前视频帧/音频帧为异常。
判断当前视频帧与上次合成的视频帧之间是否有数据丢失的过程为:计算当前视频帧与上次合成的视频帧的视频帧时间戳差值,然后用这个差值除以相邻两视频帧标准差值,得到的结果值取整数,如果所述结果值减1后小于0则不需要补帧,如果所述结果值减1后大于等于0,则补充空视频帧,补充的空视频帧数为结果值减1个;相邻两视频帧标准差值为1000/目标帧率,目标帧率为:需达到的每秒的视频帧数。
判断当前音频帧与上次合成的音频帧之间是否有数据丢失的过程为:计算当前音频帧与上次合成的音频帧的音频帧时间戳差值,然后用这个差值除以一个音频帧持续时间,得到的结果值取整数,如果所述结果值减1后小于0则不需要补帧,如果结果值减1后大于等于0,则补充空音频帧,补充的空音频帧数为结果值减1个。所述一个音频帧持续时间是指一个音频帧数据解码出的未压缩的数据能播放的时间。
重新同步的操作过程为:根据当前媒体文件中已录制的部分,计算音频录制时间、视频录制时间以及音频录制时间和视频录制时间之间的差值,并根据差值对音频或视频进行补帧操作,使得已录制部分的音频或视频时间差值小于一个音频帧持续时间,经过重新同步后清空音频/视频先入先出缓冲区中的音频/视频数据。
本发明适用于多种移动电视标准节目的录制,例如移动MP4、手机,车载、GPS导航设备等带有数字移动电视播放的设备上;同时增强了录制文件的可播放性,通过将移动电视节目录制为普通视频格式的媒体文件,可方便的将录制节目拷贝到其他不具有相同移动电视功能的手持播放设备上播放。同时,本发明中所使用的判断视频帧或者音频帧是否异常、判断数据丢失的过程、数据丢失中所丢失的视频帧和音频帧的数量计算方法以及为丢失的数据进行补帧的操作都可在实际的实施过程中做出相应修改,且关于补帧的数量的计算有多种方法,目的就是要将丢失的音频帧补充为无声的帧数据,保证音视频同步。因此,在不脱离本发明构思的基础上所作出的修改都属于本发明的保护范围。