发明内容
本发明的目的是提供一种3DV视频封装、播放方法及其系统,要解决的技术问题是在播放显示立体视频时,正确显示立体效果图像,提高播放的效率。
本发明采用以下技术方案:一种3DV视频封装、播放方法,包括以下步骤:
一、3D视频播放系统的2D文件读取模块读取带3D内容的2D封装视频数据文件;
二、3D视频播放系统的2D文件解封模块对带3D内容的2D封装视频数据文件进行解封装,获得视频3D数据文件的信息,并将解封装后的2D文件拆分成视频流数据、音频流数据和字幕流数据;视频3D数据文件的信息为:数据包大小、数据包名称、视图类别、半宽识别、半高识别;
三、3D视频播放系统的3D文件重新封装模块将视频3D数据文件的信息形成单独的数据包,对视频流数据、音频流数据和字幕流数据进行数据转换,并将数据转换后的视频流数据、音频流数据和字幕流数据,重新封装成视频3D数据文件,将数据包作为视频3D数据文件的头文件;所述数据转换、重新封装,按以下步骤:3D文件重新封装模块从视频流数据中取得第一帧图像数据,从第一帧图像中取得时间戳;从音频流数据取得第一帧图像相应时间戳的音频数据;从存储模块的字幕流数据取得第一帧图像相应时间戳的字幕数据;按Mp4标准重新封装;
四、将数据包作为重新封装的视频3D数据文件的头文件,按3DV格式加入到重新封装后的视频流数据、音频流数据、字幕流数据文件的头文件中;将Mp4标准重新封装的数据转换后的视频流数据、音频流数据和字幕流数据、3DV格式的数据包,保存到3D视频播放系统存储模块的另一目录中,得到封装后的 视频3D数据文件;
五、播放重新封装后的视频3D数据文件,按以下步骤:3D视频解封装模块按3DV格式,从存储模块中读取封装后的视频3D数据文件,得到视频3D数据文件的信息;3D视频解封装模块按Mp4标准对封装后的视频3D数据文件进行解封装得到数据转换后的视频流数据、音频流数据和字幕流数据,分别存放在系统内的存储模块内再一目录下;播放模块对显示输出设备进行3D输出设置,具体为:3D显示、视图类别、半宽识别、半高识别;播放模块从存储模块的视频流数据中取得第一帧图像数据,从第一帧图像中取得图像时间戳;从音频流数据取得第一帧的音频数据和音频时间戳;从字幕流数据取得第一帧的字幕数据和字幕时间戳,对第一帧图像数据,音频数据,字幕数据,分别进行解码,按图像时间戳,字幕时间戳分别分时输出显示数据信号到显示输出设备,按音频时间戳输出音频数据信号到音频输出设备,逐一读取,解码、输出到显示输出设备、音频输出设备,直到最后一帧数据处理完毕,结束播放流程。
本发明的3DV视频播放系统的2D文件读取模块读取带3D内容的2D封装视频数据文件,从外部存储设备或计算机的硬盘中读取。
本发明的3DV视频播放系统的2D文件解封模块对带3D内容的2D封装视频数据文件进行解封装,获得视频3D数据文件的信息,将解封装后的2D文件拆分成视频流数据、音频流数据和字幕流数据,分别存放在3D视频播放系统的存储模块内一目录中。
本发明的3DV视频播放系统的2D文件解封模块对带3D内容的2D封装视频数据文件进行解封装,获得视频3D数据文件的信息,存储于2D文件解封模块中的3D文件的信息存储子模块中。
本发明的数据包为含有视频3D数据文件的信息的3DV格式的文件。
一种3DV视频封装方法,包括以下步骤:
一、3D视频播放系统的2D文件读取模块读取带3D内容的2D封装视频数据文件;
二、3D视频播放系统的2D文件解封模块对带3D内容的2D封装视频数据文件进行解封装,获得视频3D数据文件的信息,并将解封装后的2D文件拆分成视频流数据、音频流数据和字幕流数据,分别存放在3D视频播放系统的存储模块内一目录中;视频3D数据文件的信息为:数据包大小、数据包名称、视图类别、半宽识别、半高识别;
三、3D视频播放系统的3D文件重新封装模块将视频3D数据文件的信息形成单独的数据包,对视频流数据、音频流数据和字幕流数据进行数据转换,并将数据转换后的视频流数据、音频流数据和字幕流数据,重新封装成视频3D数据文件,将数据包作为视频3D数据文件的头文件;所述数据包为含有视频3D数据文件的信息的3DV格式的文件;所述数据转换、重新封装,按以下步骤:3D文件重新封装模块从视频流数据中取得第一帧图像数据,从第一帧图像中取得时间戳;从音频流数据取得第一帧图像相应时间戳的音频数据;从存储模块的字幕流数据取得第一帧图像相应时间戳的字幕数据;按Mp4标准重新封装;
四、将数据包作为重新封装的视频3D数据文件的头文件,按3DV格式加入到重新封装后的视频流数据、音频流数据、字幕流数据文件的头文件中;将Mp4标准重新封装的数据转换后的视频流数据、音频流数据和字幕流数据、3DV格式的数据包,保存到3D视频播放系统存储模块的另一目录中,得到封装后的视频3D数据文件。
一种3DV视频封装、播放系统,设有2D文件读取模块、2D文件解封模块、3D文件重新封装模块、存储模块、3D视频解封装模块和播放模块;
所述2D文件读取模块,用于读取带3D内容的2D封装视频数据文件;
所述2D文件解封模块,用于对带3D内容的2D封装视频数据文件进行解封装,将带3D内容的2D封装视频数据文件拆分成视频流数据、音频流数据和字幕流数据,获得视频3D数据文件的信息:数据包大小、数据包名称、视图类别、半宽识别、半高识别;
所述3D文件重新封装模块,用于将视频3D数据文件的信息形成单独的数据包,对视频流数据、音频流数据和字幕流数据进行数据转换,将数据转换后的视频流数据、音频流数据和字幕流数据按Mp4标准,重新封装成视频3D数据文件,将数据包作为视频3D数据文件的头文件;
所述存储模块,用于存储数据包,被拆分的视频流数据、音频流数据和字幕流数据,封装后的视频3D数据文件;
所述3D视频解封装模块,用于从存储模块中读取封装后的视频3D数据文件,得到的视频3D数据文件的信息,按Mp4标准进行解封装得到数据转换后的视频流数据、音频流数据和字幕流数据,分别存放在系统内的存储模块内再一目录下;
所述播放模块,用于对显示输出设备进行3D输出设置:3D显示、视图类别、半宽识别、半高识别;从存储模块的视频流数据中取得第一帧图像数据、图像时间戳;从音频流数据取得第一帧的音频数据和音频时间戳;从字幕流数据取得第一帧的字幕数据和字幕时间戳;对第一帧图像数据,音频数据,字幕数据,分别进行解码;按图像时间戳,字幕时间戳分别分时输出显示数据信号 到显示输出设备,按音频时间戳输出音频数据信号到音频输出设备。
本发明的2D文件读取模块读取带3D内容的2D封装视频数据文件,从外部存储设备或计算机的硬盘中读取。
本发明的数据包为含有视频3D数据文件的信息的3DV格式的文件。
一种3DV视频封装系统,设有2D文件读取模块、2D文件解封模块、3D文件重新封装模块、存储模块;
所述2D文件读取模块,用于从外部存储设备或计算机的硬盘中读取带3D内容的2D封装视频数据文件;
所述2D文件解封模块,用于对带3D内容的2D封装视频数据文件进行解封装,将带3D内容的2D封装视频数据文件拆分成视频流数据、音频流数据和字幕流数据,获得视频3D数据文件的信息:数据包大小、数据包名称、视图类别、半宽识别、半高识别;
所述3D文件重新封装模块,用于将视频3D数据文件的信息形成单独的数据包,对视频流数据、音频流数据和字幕流数据进行数据转换,将数据转换后的视频流数据、音频流数据和字幕流数据按Mp4标准,重新封装成视频3D数据文件,将数据包作为视频3D数据文件的头文件;
所述存储模块,用于存储数据包,被拆分的视频流数据、音频流数据和字幕流数据,封装后的视频3D数据文件。
本发明与现有技术相比,将带3D内容的2D封装视频数据文件拆分成视频流数据、音频流数据和字幕流数据,进行数据转换,并将解封的带3D内容的2D封装视频数据文件重新封装,将3D文件的信息数据包附加于重新封装的3D文件的头文件中,直接进行播放,不对视频文件进行二次压缩,使图像信息没 有损失,节省重新封装一次相当于复制一次的时间,还可以在播放时不必对视频进行解码,就能快速得到3D立体信息,减少人工设置的时间,提高播放的效率。
具体实施方式
下面结合附图和实施例对本发明作进一步详细说明。3DV视频信息包括视频是否为3D视频、3D视频的视图排列。
如图1所示,本发明的3DV视频封装、播放方法,包括封装和播放,包括以下步骤:
一、3D视频播放系统(系统)的2D文件读取模块读取带3D内容的2D封装视频数据文件(2D文件)。系统可从外部存储设备或计算机的硬盘中读取2D文件。
二、系统的2D文件解封模块对2D文件进行解封装,获得视频3D数据文件(3D文件)的信息,并将解封装后的2D文件拆分成视频流数据、音频流数据和字幕流数据,分别存放在系统的存储模块内一目录中。3D文件的信息也可存储于2D文件解封模块中的3D文件的信息存储子模块中。
三、系统的3D文件重新封装模块将存储模块(或2D文件解封模块中的3D文件的信息存储子模块)内的3D文件的信息形成单独的数据包,对视频流数据、音频流数据和字幕流数据进行数据转换,并将数据转换后的视频流数据、 音频流数据和字幕流数据,按Mp4[ISO/IEC 14496-14]标准重新封装成视频3D数据文件(3D文件),将数据包作为3D文件的头文件。数据包为含有3D文件的信息的3DV格式的文件。
数据转换、重新封装,包括以下步骤:
1、3D文件重新封装模块从存储模块的视频流数据中取得第一帧图像数据,即视频开始的第一帧图像的数据,并从第一帧图像中取得时间戳。时间戳与2D文件中的时间戳一样,方便在播放过程中视频、音频、字幕同步。
2、从存储模块的音频流数据取得第一帧图像相应时间戳的音频数据。
3、从存储模块的字幕流数据取得第一帧图像相应时间戳的字幕数据。
4、3D文件重新封装模块将包含图像和时间戳的第一帧图像数据,音频和时间戳的第一帧音频数据,字幕和时间戳的第一帧字幕数据,按Mp4[ISO/IEC14496-14]标准重新封装。
3D文件重新封装模块逐一读取,转换、存储,直到最后一帧数据转换、重新封装的处理完毕,结束数据转换、重新封装流程。
四、在系统的存储模块中存储数据包,将数据包作为重新封装的3D文件的头文件。如表1所示,将数据包的信息结构,按3DV格式存储,加入到重新封装后的视频流数据、音频流数据、字幕流数据文件的头文件中。将Mp4标准重新封装的数据转换后的视频流数据、音频流数据和字幕流数据,作为头文件的3DV格式的数据包,保存到系统存储模块的另一目录中,也可以存储到外部存储设备或计算机的硬盘中,得到封装后的视频3D数据文件。
五、播放重新封装后的3D文件,包括以下步骤:
1、3D视频解封装模块按3DV格式,从存储模块中读取封装后的视频3D数据文件,也可从外部存储设备或计算机的硬盘中读取封装后的视频3D数据文件,得到3D文件的信息:数据包大小、数据包名称、视图类别、是否半宽(半宽识别)、是否半高(半高识别),存放在存储模块中再一目录下。
3、3D视频解封装模块按Mp4标准对封装后的视频3D数据文件进行解封装得到数据转换后的视频流数据、音频流数据和字幕流数据,分别存放在系统内的存储模块内再一目录下。
4、播放模块对显示输出设备进行3D输出设置,具体为:(1)、3D显示(播放3DV文件需要用3D显示),(2)、视图类别,(3)、半宽识别,(4)、半高识别。
5、播放模块从存储模块的视频流数据中取得第一帧图像数据,即视频的开始的第一帧图像数据,从第一帧图像中取得图像时间戳。
6、从音频流数据取得第一帧的音频数据和音频时间戳。
7、从字幕流数据取得第一帧的字幕数据和字幕时间戳。
8、播放模块对第一帧图像数据,音频数据,字幕数据,分别进行解码。
9、播放模块解码完成后按图像时间戳,字幕时间戳分别分时输出显示数据信号到显示输出设备,按音频时间戳输出音频数据信号到音频输出设备。
播放模块逐一读取,解码、输出到显示输出设备、音频输出设备,直到最后一帧数据处理完毕,结束播放流程。
3D文件的信息为:数据包大小、数据包名称、视图类别、是否半宽(半宽识别)、是否半高(半高识别)和保留位。其中,
数据包大小为32位的数值型数据,占用4个字节,存储顺序为高位在前低位在后,如长度为24的数据包,十六进制值就为:00000018。
数据包名称为32位的字符型数据,占用4个字节,由于是字符,需按MP4的标准应顺序存储,所以数据包名称为pinf,十六进制值为:70696e 66。
视图类别为32位字符型数据,占用4个字节,值定义为:“PLR”、“PRL”、“PTD”、“PDT”、“IAB”、“IBA”,分别表标为:左右并列视图、右左并列视图、上下视图、下上视图、行交错视图左图在第一行、行交错视图右图在第一行。
半宽识别指视频目标文件的图像是否为左右各占显示屏的一半,半宽识别为16位数值型数据,占用2字节,“是”为0002,“否”为0001。
半高识别指视频目标文件的图像是否为上下各占显示屏的一半,半高识别为16位数值型数据,占用2字节,“是”为0002,“否”为0001。
保留位为64位数值型数据,占用8字节,保留位是为了以后升级所用。
如图2所示,本发明的3DV视频封装、播放系统(系统),设有2D文件读取模块、2D文件解封模块、3D文件重新封装模块、存储模块、3D视频解封装模块和播放模块。
2D文件读取模块,用于读取带3D内容的2D封装视频数据文件(2D文件),2D文件保存于外部存储设备或计算机的硬盘中,2D文件读取模块将其从外部存储设备或计算机的硬盘中导入至系统内。
2D文件解封模块,用于对2D文件进行解封装,将2D文件拆分成视频流数据、音频流数据和字幕流数据,并获得3D文件的信息。2D文件解封模块中设 有3D文件的信息存储子模块,用于存储3D文件的信息,3D文件的信息具体为:数据包的大小、名称、视图类别、半高识别、半宽识别信息。
3D文件重新封装模块,用于将3D文件的信息形成单独的数据包,将解封的2D文件重新封装。3D文件重新封装模块对视频流数据、音频流数据和字幕流数据进行数据转换,并将数据转换后的视频流数据、音频流数据和字幕流数据按Mp4标准,重新封装成视频3D数据文件(3D文件),将数据包作为3D文件的头文件。视频3D文件重新封装单元可以是外接3D视频封装系统。存储模块,用于存储数据包,被拆分的视频流数据、音频流数据和字幕流数据,封装后的视频3D数据文件。
存储模块,用于存储数据包,被拆分的视频流数据、音频流数据和字幕流数据,封装后的视频3D数据文件。
3D视频解封装模块用于按3DV格式,从存储模块中读取封装后的视频3D数据文件,得到3D文件的信息,按Mp4标准对3DV数据文件进行解封装得到数据转换后的视频流数据、音频流数据和字幕流数据,分别存放在系统内的存储模块内再一目录下。
播放模块用于对显示输出设备按3D文件的信息进行3D输出设置,设置内容为:(1)、3D显示(播放3DV文件需要用3D显示),(2)、视图类别,(3)、半宽识别,(4)、半高识别;从存储模块的视频流数据中取得第一帧图像数据,从第一帧图像中取得图像时间戳;从音频流数据取得第一帧的音频数据和音频时间戳;从字幕流数据取得第一帧的字幕数据和字幕时间戳;对第一帧图像数据,音频数据,字幕数据,分别进行解码;然后按图像时间戳,字幕时间戳分 别分时输出显示数据信号到显示输出设备,按音频时间戳输出音频数据信号到音频输出设备。
如图3所示,本实施例的3DV视频播放系统,可采用以下3DV封装播放装置(装置)实现,该装置设有CPU,CPU连接有存储装置、显示装置和喇叭。
本发明的3D视频封装播放系统,设置在CPU中。
存储装置设有硬盘和/或SD卡、随机存储器RAM。
显示装置为液晶LCD或发光二极管LED显示屏。
3DV视频播放装置工作过程为:带3D内容的2D封装视频数据文件(2D文件)从外部存储设备或计算机的硬盘中被存入装置的硬盘,CPU内的2D文件解封模块对2D文件进行解封装,获得3D文件的信息,将解封装后的2D文件拆分成视频流数据、音频流数据和字幕流数据,分别存放在硬盘内。CPU接到要求封装视频3D数据文件的指令后,CPU内的3D文件重新封装模块从硬盘中将2D文件调入至RAM中,3D文件重新封装模块对3D文件的信息形成3DV格式的数据包,将视频流数据、音频流数据和字幕流数据,进行数据转换、用Mp4标准重新封装,将3D文件的信息形成3DV格式的数据包作为头文件,保存于硬盘另一不同的区域,得到封装后的视频3D数据文件。CPU接到播放视频3D数据文件的指令后,CPU内的3D视频解封装模块从硬盘中将封装后的视频3D数据文件调入至RAM中,得到3D文件的信息,按Mp4标准对封装后的视频3D数据文件进行解封装,得到数据转换后的视频流数据、音频流数据和字幕流数据,分别存放在RAM内再一目录下。CPU内的播放模块按3D文件的信息,对显示输出设备进行3D输出设置,从RAM中对图像数据,音频数据,字幕数 据,分别进行解码,分别分时输出显示数据信号到显示输设备,按音频时间戳输出音频数据信号到音频输出设备。
本实施例中,CPU采用Intel core I3-2100,系统采用VC++6.0程序语言实现。
2D文件读取模块读取2D文件的命令:
2D文件解封模块将2D文件拆分成视频流数据、音频流数据和字幕流数据的命令:
3D文件重新封装模块将3D文件的信息形成数据包的命令:
3D文件重新封装模块将解封视频流数据、音频流数据和字幕流数据重新封装的命令:
3D文件重新封装模块将拆分的视频流数据、音频流数据、字幕流数据和数据包按Mp4标准打包,数据包作为重新封装的3D文件的头文件的命令:
存储单元存储具有数据包的封装后的视频3D数据文件的命令:
本发明将数据包的信息结构,按3DV格式存储,加入到重新封装后的视频流数据、音频流数据、字幕流数据文件的头文件中,在封装结构上加入3D文件的信息,让视频数据带有3D立体信息,不用对视频进行二次压缩,使图像信息没有损失,节约了重新封装一次只相当于复制一次的时间,在播放时不对视频数据进行解码就能快速得到3D立体信息,减少播放的程序,提高了播放的效率。
表1数据包的信息结构