移动端为用户视频嵌套场景的方法_2

文档序号:9915002阅读:来源:国知局
像连续处理,或是数字摄影系统中,Y’为颜色的亮度(Iuma)成分、而CB和CR则为蓝色和红色的浓度偏移量成份。YCbCr文件可以是YUV文件,也可以是其他格式的视频文件。
[0026]本实施例用户视频是已有的视频或是实时录制的视频,在导入或录制时就保存为相应的YCbCr文件和音频文件,在步骤(3)中,选取用户视频时直接读取YCbCr文件获取帧数据,选取素材视频时需要读取视频的帧再解码获取YCbCr数据。当用户根据需要裁剪所需要导入视频的某个片段,该片段导入时也并非是根据时间戳在时间上裁剪然后生成视频,而是生成未编码的用户所选取片段的存储YCbCr文件和音频文件。该处所获取的YCbCr和音频文件是根据用户的选择的视频和对该视频用户选择的起始和终止时间解码得来,为了省去YCbCr文件和素材解码所得的帧格式不统一来回转换的时间,在该处会对用户导入视频片段进行相应的处理,例如:缩放,裁剪,补黑边等操作,统一格式后,将其存储。这样设计,可以省去用户在确认生成视频时解码原视频的步骤,减少用户等待时间,提升用户体验,但是由于是未编码的YCbCr数据,所以中间文件较大。当用户通过本app录制视频,所生成的其实并非是视频格式的视频,也是相应的存储YCbCr文件和音频文件,该YCbCr文件和音频文件的具体参数是事先定义好的统一的,方便融合每段视频。
[0027]当然用户视频在导入或录制时也可以是视频流格式,在步骤(3)中,选取用户视频和素材视频时均需要读取视频的帧再解码获取YCbCr数据。增加了解码的系统消耗,但有效减小了中间文件所占用的存储空间。
[0028]本实施例在融合过程中用户可以分段浏览的素材视频和用户视频融合过后的效果,并且能在融合过程中删除某段视频重新录制或者导入,方便用户确认需要填充视频所处的场景。
[0029]本实施例所述音频文件的统一格式是采样率为44100HZ、单通道、16位的采样深度。这样在进行拼接的时候并不需要把每个音频流都要接出pcm在进行拼接,大大加快了合成速度,减少用户等待时间(假如需要使用某些音频特效,比如变声或者加背景音乐,则需要解码后处理再编码为音频流)。
[0030]本实施例在手机APP端使用时,参照图1,其具体步骤如下:
1、登录APP,进入特效的编辑界面。用户可以选择使用哪个视频素材模板,选择进入对应的场景界面,界面中采用类似于填空题的方式罗列每段素材视频和待填入的视频的位置。用户通过点击有+号的图标选择是要导入视频还是拍色,同时也可以删除已经导入或拍摄完成的视频片段。整个素材视频虽然在根据用户编辑生成视频后是被原视频分割开的,但是其实素材视频的所有“片段”都是连续的的一个视频,只是需要填充的部分的起始点会填写到一个相应的配置文件中。事先会根据素材视频模板的特点,确定视频模板中配置文件的内容,纪录素材模板需要用户插入的视频片段的插入点(表示方式为帧下标或者pts,其中PTS主要用于度量解码后的视频帧什么时候被显示出来。是用来在视频流中表示帧显示时间点的度量单位。由于统一了帧率,也可以根据帧的计数下标来充当pts)。
[0031]2、用户进入录制视频界面,可以通过摄像头录制视频,可以通过导入本地视频后拖动选择框截取用户需要视频片段,用来填充素材视频之间所需要填充的部分,在此期间用户可以浏览分段的素材视频和整个的融合过后的效果,方便用户确认需要填充视频所处的场景,这个过程中用户也可以删除某段视频重新录制或者导入。
[0032]3、用户填充完毕所有的需要填充的片段之后,点击确认按钮,生成刚才所编辑的视频。
[0033]本实施例当用户确认要合成视频后,参见图2,其视频的融合技术实现具体方案如下:
I )根据素颜视频的特点,通过配置文件的记录,确定需要插入用户录制或者导入视频的位置。插入视频的起始点(时间戳)是根据视频的特点事先填写到配置文件中的,用户在下载素材视频时,配置文件会配套的存储在手机,通过我们所设计的协议解析,确定每段需要插入的起始点,并获取该时间戳中视频帧所对应的视频的特效处理(如淡入画面,左右切换,滤镜处理等)。
[0034]2 )根据用户的编辑和素材视频的特点,按照一定顺序,解码视频或读取YCbCr数据。通过分析配置文件,和用户的编辑,确定用户要生成视频的播放顺序,通过播放顺序解码对应的视频(当该时间戳所对应的用户视频时,因为在用户录制视频或导入视频时生成的YCbCr帧的总和文件,所以并不需要解码,直接根据帧的大小读取帧的内容)。获取该时间戳所对应的帧并进行该帧所对应的特效处理之后存入内存。
[0035]3 )在解码视频的同编码,生成视频流。上个步骤中拿到帧之后(由于是根据配置文件和用户编辑来解码(或者读取YCbCr文件),所以拿到的帧就是生成视频在该时间戳所对应的帧),直接编码。
[0036]4 )重复2)3)步骤,生成视频流。该视频流在等待音频流生成后用于最后的视频封装。
[0037]5 )根据原视频特点和用户的编辑,确定音频的片段和顺序。与视频的片段融合类似,通过解析配置文件(并非是通过对应的视频片断确定音频片段,而定该时间戳所对应的音频,同时是通过配置文件的解析来确认,因为有可能原视频所对应的并非是原音频),并通过配置文件解析确定该音频所需要的音频特效处理(例如,融合背景音乐、音调、音量的调整等)。
[0038]6 )根据已解析的内容解码音频,并做出相应的特效处理,之后存储该时间戳待编码的pcm波形到内存,假如没有特效处理,就直接将音频流文件拼接。
[0039]7 )假如需要解码成pcm,解码的同时进行编码。与视频流的编辑类似,将上一步骤所得到的pcm编码成音频,假如不需要解码直接拼接。
[0040]8 )重复6)7)步骤,生成音频流。
[0041]9 )音视频流的复用封装,生成视频格式。
[0042]实施例二
参照图3、图4,本实施例述素材视频和用户视频融合的方式是素材视频和用户视频之间进行画面嵌套。该方法是通过将用户视频已画中画的形式放置在素材视频特定区域,实现场景嵌套的目的。简单的说,该处理方法所得的视频,是将用户的视频覆盖到素材视频的某一区域,到达与素材视频融合到一起的方法。
[0043]移动端为用户视频嵌套场景的方法的具体步骤如下:
(1)在配置文件中根据素材视频特点配置素材视频中需要被覆盖遮挡的区域和需要潜入用户视频的起始和终止时间点;
(2)确定要融合的素材视频和用户视频;
(3)解码素材视频,根据配置文件的规定,在需要在素材帧区域内覆盖用户视频时读取用户视频时生成YCbCr文件的YCbCr数据(或者解码用户视频获取YCbCr数据),经过特定的特效处理之后(例如:缩放、旋转、滤镜等),将两者YCbCr数据根据特定算法融合,再进行编码该YCbCr数据。音频也根据配置文件的规定,读取该时间点所需要的音频包(如果需要解码成pcm,进行部分处理的,就解码音频,通过特定处理后再编码成音频流)输出到音频流中;
(4)重复步骤(3),生成音视频流并复用封装成视频格式。本发明是通过让用户录制或者选取合适视频,使用户视频与提供的素材视频模板相融合的视频处理方式。素材视频模板,是需要挑选一些具有某些风格,并且在视频画面内容中有合适区域用于覆盖的。
[0044]本实施例用户视频是已有的视频或是实时录制的视频,在导入或录制时就保存为相应的YCbCr文件和音频文件。当用户根据需要裁剪所需要导入视频的某个片段,该片段导入时也并非是根据时间戳在时间上裁剪然后生成视频,而是生成未编码的用户所选取片段的存储YCbCr文件和音频文件。该处所获取的YCbCr和音频文件是根据用户的选择的视频和对该视频用户选择的起始和终止时间解码得来,为了省去YCbCr文件和素材解码所得的帧格式不统一来回转换的时间,在该处会对用户导入视频片段进行相应的处理,例如:缩放,裁剪,补黑边等操作,统一格式后,将其存储。这样设计,可以省去用户在确认生成视频时解码原视频的步骤,减少用户等待时间,提升用户体验。当用户通过本app录制视频,所生成的其实并非是视频格式的视频,也是相应的存储YCbCr文件和音频文件,该YCbCr文件和音频文件的具体参数是事先定义好的统一的,方便拼接每段视频。
[0045]当然用户视频在导入或录制时也可以是视频流格式,在步骤(3)中,选取用户视频和素材视频时均需要读取视频的帧再解码获取YCbCr数据。增加了解码的系统消耗,但有效减小了中间文件所占用的存储空间。
[0046]本实施例所述音频文件的格式是统一的
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1