一种对视频文件进行在线转码的方法和装置的制造方法_3

文档序号:9914793阅读:来源:国知局
值;将第三比值与预设的帧率映射权重相乘,得到帧率映射比值;将第四比值与预设的码率映射权重相乘,得到码率映射比值;将分辨率映射比值、编解码映射比值、帧率映射比值和码率映射比值相乘,得到视频帧映射比值;将所述各视频帧的原数据量除以所述视频帧映射比值,得到所述各视频帧进行转码的目标数据量。
[0076]在实施中,服务器中可以预先存储多个视频参数,并对应每个视频参数存储该视频参数的映射权重,映射权重的数值可以在对大量视频文件进行转码的过程中,通过统计和分析得到。服务器可以按照上述方法分别计算出各个视频参数在待转码视频文件中的数值与该视频参数预先设置的进行转码的目标数值的比值,然后用计算出的比值乘以该视频参数对应的映射权重,进而计算出该视频参数的映射比值,从而可以根据各视频参数的映射比值,确定视频帧映射比值,计算各视频帧进行转码的目标数据量。具体地,服务器可以计算出上述第一比值,如1.6384,然后可以获取分辨率映射权重,如0.8,计算分辨率映射比值,即1.6384*0.8 ^ 1.31 ;服务器可以计算出上述第二比值,如2.1,然后可以获取编解码映射权重,如1.5,计算编解码映射比值,即2.1*1.5 = 3.15 ;服务器可以计算出上述第三比值,如1,然后可以获取帧率映射权重,如1.1,计算帧率映射比值,即1*1.1 = 1.1 ;月艮务器可以计算出上述第四比值,如2,然后可以获取码率映射权重,如0.9,计算码率映射比值,即2*0.9= 1.8 ;服务器可以计算视频帧映射比值,即1.31*3.15*1.1*1.8 = 8.17,然后服务器可以获取某视频帧的原数据量,如lk,计算该视频帧转码的目标数据量,即lk/8.17
=122ο
[0077]步骤102,根据视频参数的目标参数值和各视频帧对应的目标数据量,生成转码视频文件的文件头,向终端发送文件头。
[0078]在实施中,服务器计算出各视频帧转码的目标数据量后,可以计算出各视频帧在转码后的视频文件中的起始位置,起始位置是视频帧在视频文件中偏移的字节数,例如,月艮务器计算出第一视频帧转码的目标数据量为1000,第二视频帧转码的目标数据量为200,第三视频帧转码的目标数据量为185,如果第一视频帧的起始位置为5000,则第二视频帧的起始位置为5000+1000 = 6000,第三视频帧的起始位置为6000+200 = 6200,依次类推。服务器可以根据各视频帧对应的目标数据量、各视频帧在转码后的视频文件中的起始位置以及各视频帧的播放时间生成转码后的帧列表,如图2所示,然后可以根据该帧列表以及视频参数的目标参数值生成转码视频文件的文件头,向终端发送文件头,终端则会接收到该文件头,以便后续使用。另外,服务器在本地也可以存储该文件头。
[0079]步骤103,根据各视频帧对应的目标数据量,按照播放时序,将各视频帧转码为数据量不大于对应的目标数据量的视频帧,生成转码视频文件中对应的数据内容。
[0080]在实施中,服务器生成转码视频文件的文件头后,可以按照播放时序,对各视频帧进行转码,服务器可以获取待转码的视频帧对应的目标数据量,然后将该视频帧转码为数据量不大于对应的目标数据量的视频帧,服务器还可以确定转码后的视频帧的数据量与该视频帧对应的目标数据量所差的数据量,在转码后的视频帧后填入该数据量的无效数据,生成转码视频文件中对应的数据内容,发送给所述终端。例如,服务器在对某视频帧进行转码时,可以获取该视频帧对应的目标数据量200,然后将该视频帧转码为数据量为180的视频帧,服务器可以确定转码后视频帧的数据量与目标数据量所差的数据量为20,然后可以在转码后的视频帧后填入数据量为20的无效数据,如O。
[0081]可选的,为了防止转码后的视频帧的数据量大于对应的目标数据量,相应的,步骤103的处理过程可以如下:按照播放时序,对待转码视频文件的视频帧进行转码,将转码后的视频帧的数据量与对应的目标数据量进行对比,如果转码后的视频帧的数据量不大于对应的目标数据量,则根据转码后的视频帧生成转码视频文件中对应的数据内容;如果转码后的视频帧的数据量大于对应的目标数据量,则调整目标参数值对相应的视频帧重新进行转码,直到转码后的视频帧的数据量小于对应的目标数据量,根据转码后的视频帧生成转码视频文件中对应的数据内容。
[0082]在实施中,服务器对待转码视频文件中的视频帧进行转码后,可以将转码后的视频帧的数据量与该视频帧对应的目标数据量进行对比,判断转码后的视频帧的数据量是否超过该视频帧对应的目标数据量。如果转码后的视频帧的数据量小于或等于对应的目标数据量,则服务器可以根据上述方法生成转码视频文件中对应的数据内容;如果转码后的视频帧的数据量大于对应的目标数据量,则服务器可以计算该视频帧对应的目标数据量的比值与转码后的视频帧的数据量,然后可以将视频参数中,一个或多个视频参数(如码率或编码级别)的目标参数值乘以该比值,得到对应该视频帧的调整后的目标参数值,进而可以对该视频帧重新进行转码,直到转码后的视频帧的数据量小于对应的目标数据量,然后可以按照上述方法,生成转码视频文件中对应的数据内容。例如,服务器对某视频帧的原数据量进行计算后,得到该视频帧的目标数据量为80,对该视频帧进行转码后,该视频帧的数据量为100,则服务器可以计算出该视频帧的目标数据量与转码后的数据量的比值,SP80/100 = 0.8,然后获取码率的目标参数值100,计算对应该视频帧的调整后的目标参数值,即100*0.8 = 80,则服务器可以根据目标参数值为80的码率,对该视频帧进行重新转码。
[0083]步骤104,每当满足预设的发送条件时,向终端发送已生成的数据内容。
[0084]在实施中,服务器中可以预先设置发送条件,例如,当服务器转码后得到的数据量大于预设数据量阈值时,服务器可以向终端发送已生成的数据内容,具体地,服务器开始转码后,可以计算生成的转码视频文件中对应的数据内容的数据量,当该数据量超过预设数据量阈值时,服务器可以将已生成的数据内容发送给终端,然后服务器可以重新开始计算,每当服务器生成的转码视频文件中对应的数据内容的数据量达到预设数据量阈值时,服务器可以将已生成的数据内容发送给终端;服务器也可以在每达到预设发送周期时,向终端发送已生成的数据内容。终端接收到服务器发送的数据内容后,可以根据文件头中的帧列表,确定各视频帧的起始位置等信息,从而对视频文件进行播放。
[0085]可选的,预设的发送条件可以为视频帧阈值,相应的,步骤104的处理过程可以如下:每当转码的视频帧的数量达到预设的视频帧阈值时,向终端发送生成的数据内容。
[0086]在实施中,服务器中可以预先设置视频帧阈值,则服务器对视频帧开始转码后,可以统计已转码的视频帧的帧数,每当服务器已转码的视频帧的帧数达到视频帧阈值时,月艮务器可以向终端发送生成的数据内容。例如,服务器可以预先设置视频帧阈值为15帧,则每当服务器转码的视频帧达到15个时,服务器可以向终端发送已生成的数据内容。
[0087]本发明实施例中,根据待转码视频文件中预设的视频参数的参数值和各视频帧的原数据量,以及对应视频参数预先设置的进行转码的目标参数值,确定各视频帧进行转码的目标数据量,根据视频参数的目标参数值和各视频帧对应的目标数据量,生成转码视频文件的文件头,向终端发送文件头,根据各视频帧对应的目标数据量,按照播放时序,将各视频帧转码为数据量不大于对应的目标数据量的视频帧,生成转码视频文件中对应的数据内容,当满足预设的发送条件时,向终端发送已生成的数据内容,基于这种转码方式,文件头无需在对整个视频文件进行转码后生成,而可以在对视频文件进行转码之前预先生成,从而,可以实现对非流式视频文件进行在线转码。
[0088]实施例三
[0089]基于相同的技术构思,本发明实施例还提供了一种对视频文件进行在线转码的装置,如图2所示,该装置包括:
[0090]确定模块310,用于根据待转码视频文件中预设的视频参数的参数值和各视频帧的原数据量,以及对应所述视频参数预先设置的进行转码的目标参数值,确定所述各视频帧进行转码的目标数据量;
[0091]生成模块320,用于根据所述视频参数的目标参数值和所述各视频帧对应的目标数据量,生成转码视频文件的文件头,向终端发送所述文件头;
[0092]转码模块330,用于根据所述各视频帧对应的目标数据量,按照播放时序,将所述各视频帧转码为数据量不大于对应的目标数据量的视频帧,生成所述转码视频文件中对应的数据内容;
[0093]发送模块340,用于每当满足预设的发送条件时,向所述终端发送已生成的数据内容。
[
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1