一种视频发布方法、装置、计算机设备及存储介质与流程

文档序号:23835842发布日期:2021-02-03 19:22阅读:67来源:国知局
一种视频发布方法、装置、计算机设备及存储介质与流程

[0001]
本发明实施例涉及图像处理技术,尤其涉及一种视频发布方法、装置、计算机设备及存储介质。


背景技术:

[0002]
通常情况下,在上传视频文件之前,需要通过编码方式将原始视频格式的视频文件转换为另一种视频格式的视频文件。
[0003]
目前主流的编码方式包括硬编码方式和软编码方式。其中,硬编码方式是使用非cpu进行编码的编码方式。软编码方式是使用cpu进行编码的编码方式。两种编码方式分别具有各自的优势。例如,硬编码方式具有编码速度较快的优势。软编码方式具有在保持画质基本不变的情况下,尽可能节省视频码率,降低文件数据量的优势。
[0004]
然而,上述编码方式存在视频上传时间较长,或者视频生成时间较长的问题,导致视频发布时间较长,用户体验不佳。


技术实现要素:

[0005]
本发明实施例提供一种视频发布方法、装置、计算机设备及存储介质,可以缩短视频发布时间。
[0006]
第一方面,本发明实施例提供了一种视频发布方法,包括:
[0007]
获取待发布视频的图像属性信息,根据所述图像属性信息从各备选编码参数的编码信息中确定目标编码信息;
[0008]
根据当前网络状态信息和所述目标编码信息,预测采用各备选编码参数编码所述待发布视频得到的编码文件的发布时间;
[0009]
根据所述发布时间从所述备选编码参数中确定目标编码参数,采用所述目标编码参数对所述待发布视频进行编码得到编码文件,上传所述编码文件。
[0010]
第二方面,本发明实施例还提供了一种视频发布装置,包括:
[0011]
信息获取模块,用于获取待发布视频的图像属性信息,根据所述图像属性信息从各备选编码参数的编码信息中确定目标编码信息;
[0012]
时间预测模块,用于根据当前网络状态信息和所述目标编码信息,预测采用各备选编码参数编码所述待发布视频得到的编码文件的发布时间;
[0013]
视频发布模块,用于根据所述发布时间从所述备选编码参数中确定目标编码参数,采用所述目标编码参数对所述待发布视频进行编码得到编码文件,上传所述编码文件。
[0014]
第三方面,本发明实施例还提供了一种计算机设备,该计算机设备包括:
[0015]
一个或多个处理器;
[0016]
存储器,用于存储一个或多个程序;
[0017]
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明任意实施例所述的视频发布方法。
[0018]
第四方面,本发明实施例还提供了一种计算机存储介质,其上存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现本发明任意实施例所述的视频发布方法。
[0019]
本发明实施例提供一种视频发布方法、装置、计算机设备及存储介质,通过获取各备选编码参数的编码信息中与待发布视频的图像属性信息匹配的目标编码信息,根据当前网络状态信息和目标编码信息,预测采用各备选编码参数编码该待发布视频得到的编码文件的发布时间,根据发布时间从备选编码参数中确定目标编码参数,采用目标编码参数对待发布视频进行编码得到编码文件并上传,可以实现根据网络状态和图像属性信息灵活地选择编码参数,采用选中的目标编码参数对待发布视频进行编码,达到在保证画面质量的基础上缩短视频发布时间的效果,避免出现因视频上传时间较长、或者视频生成时间较长而延长视频发布时间的问题。
附图说明
[0020]
图1为本发明实施例提供的一种视频发布方法的流程图;
[0021]
图2为本发明实施例提供的另一种视频发布方法的流程图;
[0022]
图3为本发明实施例提供的一种视频发布方法中信息表生成流程示意图;
[0023]
图4为本发明实施例提供的又一种视频发布方法的流程图;
[0024]
图5为本发明实施例提供的又一种视频发布方法的流程图;
[0025]
图6为本发明实施例提供的一种视频发布装置的结构框图;
[0026]
图7为本发明实施例提供的一种计算机设备的结构框图。
具体实施方式
[0027]
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
[0028]
图1为本发明实施例提供的一种视频发布方法的流程图,该方法可以由视频发布装置来执行,该装置可以由软件和/或硬件实现,并通常配置于计算机设备中。如图1所示,该方法包括:
[0029]
步骤110、获取待发布视频的图像属性信息,根据所述图像属性信息从各备选编码参数的编码信息中确定目标编码信息。
[0030]
本发明实施例中,计算机设备可以是具有网络模块的终端设备。例如,计算机设备可以是智能手机、平板电脑及笔记本电脑等终端设备。上述计算机设备上部署有客户端,通过客户端实现视频浏览、视频制备及视频发布的功能。该客户端可以从服务器获取视频资源,也可以向服务器上传视频资源。
[0031]
需要说明的是,待发布视频是用户制备的并即将上传服务器的视频。备选编码参数是客户端中预设的几组编码参数。例如,备选编码参数可以是设定视频编码方式中的预置参数(preset参数),可以包括下述类型的编码速度由快到慢的几组参数:“ultrafast”,“superfast”,“veryfast”,“faster”,“fast”,“medium”及“slow”等。需要说明的是,备选编码参数的类型并不限于上述示例列举的几种,还可以包括“slower”、“veryslow”等,本发明
实施例并不作具体限定。设定视频编码方式可以是x264或x265等编码方式,本发明实施例并不作具体限定。
[0032]
编码信息是采用各备选编码参数编码测试视频得到的相关信息。具体地,编码信息可以包括图像属性信息、备选编码参数类型、编码时间和视频码率等。其中,图像属性信息可以是测试视频的分辨率和/或画面复杂度。可选地,编码信息可以包括分辨率、视频名称、画面复杂度、备选编码参数类型、备选编码参数对测试视频编码得到的编码时间和视频码率。或者,编码信息可以包括分辨率、视频名称、备选编码参数类型、备选编码参数对测试视频编码得到的编码时间和视频码率。需要说明的是,编码信息并不限于上述列举的几项,还可以是其它信息,且信息维度越高预测越准确。测试视频可以内置于客户端,也可以由服务器下发。
[0033]
需要说明的是,图像属性信息是待发布视频的属性信息中与画面显示质量相关的信息。例如,图像属性信息可以包括画面复杂度和/或分辨率等。
[0034]
当图像属性信息是分辨率时,从待发布视频的属性信息中获取分辨率。由于用户在制备视频时已经设置了待发布视频的分辨率,因此,可以直接从待发布视频的属性信息中获取分辨率。
[0035]
当图像属性信息是画面复杂度时,获取待发布视频中的设定数量的视频帧,采用预设压缩率对应的备选编码参数对视频帧进行编码。根据各视频帧的编码前后的图像数据计算各个视频帧的峰值信噪比;根据设定数量的视频帧的峰值信噪比,确定待发布视频的参考峰值信噪比;基于各备选编码参数的编码信息中的画面复杂度的取值范围,调整参考峰值信噪比的取值范围,得到待发布视频的画面复杂度。
[0036]
例如,随机从待发布视频中选择10帧视频帧,对所选择的视频帧使用x264编码方式,采用压缩率crf=20的备选编码参数进行编码,得到10帧压缩图像。基于各视频帧的编码前的图像和对应的压缩图像计算各视频帧的峰值信噪比psnr。计算各视频帧的psnr的均值,将该均值作为待发布视频的峰值信噪比。为了使待发布视频的画面复杂度与各备选编码参数对应的画面复杂度的取值范围一致,对待发布视频的峰值信噪比进行映射处理。可选地,映射处理方法可以是将待发布视频的峰值信噪比除以各备选编码参数对应的画面复杂度的最大值,得到映射处理后的峰值信噪比。将映射处理后的峰值信噪比作为待发布视频的画面复杂度。需要说明的是,映射处理后的峰值信噪比越小表示画面复杂度越高。
[0037]
关联存储各测试视频的分辨率、画面复杂度,备选编码参数类型、采用各备选编码参数编码各测试视频后确定的编码时间和视频码率。例如,可以采用json文件的方式存储上述分辨率、画面复杂度、备选编码参数类型、编码时间和视频码率的关联关系。或者,采用信息表的方式存储上述分辨率、画面复杂度、备选编码参数类型、编码时间和视频码率的关联关系。需要说明的是,本发明实施例对于分辨率、画面复杂度、备选编码参数类型、编码时间和视频码率的关联关系的具体存储方式并不作具体限定。
[0038]
示例性地,获取待发布视频的分辨率和/或画面复杂度,作为待发布视频的图像属性信息,根据该图像属性信息查询各备选编码参数的编码信息,得到各备选编码参数的编码信息中的目标编码信息。具体地,获取待发布视频的分辨率,根据分辨率查询各备选编码参数的编码信息,得到编码信息中与分辨率匹配的各备选编码参数的目标编码信息。需要说明的是,目标编码信息包括各备选编码参数类型对应的编码时间和视频码率,其中,编码
时间基于采用各备选编码参数对与待发布视频具有相同分辨率(画面复杂度可能相同或不同)的测试视频进行编码确定。视频码率基于采用各备选编码参数对与待发布视频具有相同分辨率(画面复杂度可能相同或不同)的测试视频进行编码确定。
[0039]
可选地,可以获取待发布视频的画面复杂度,根据画面复杂度查询各备选编码参数的编码信息,得到各备选编码参数的编码信息中的目标编码信息,此过程与基于分辨率查询编码信息的过程相似,此处不再赘述。
[0040]
为了减少后续发布时间预测的数据量,可以基于分辨率和画面复杂度两个维度来查询各备选编码参数的编码信息。具体地,根据待发布视频的画面复杂度和分辨率查询各备选编码参数的编码信息,得到与画面复杂度和分辨率的偏差均小于设定阈值的目标画面复杂度和目标分辨率;获取编码信息中与目标画面复杂度和目标分辨率对应的目标编码信息。由于编码信息中包含分辨率、画面复杂度、备选编码参数类型、编码时间和视频码率的关联关系,因此,可以基于目标分辨率和目标画面复杂度准确定位到各备选编码参数类型及对应的编码时间和视频码率。
[0041]
步骤120、根据当前网络状态信息和所述目标编码信息,预测采用各备选编码参数编码所述待发布视频得到的编码文件的发布时间。
[0042]
需要说明的是,当前网络状态信息是表示客户端所处网络的数据传输状态的信息。例如,网络状态信息可以是网速。具体地,网络状态信息可以是数据上传速度和/或者数据下载速度等。
[0043]
本发明实施例中,发布时间可以包括视频编码文件生成时间和编码文件上传时间。预测采用备选编码参数编码待发布视频得到的编码文件的发布时间具体包括:预测采用备选编码参数编码待发布视频的编码时间,以及,预测采用备选编码参数编码待发布视频得到的编码文件的上传时间。根据各备选编码参数对应的编码时间和上传时间,计算采用各备选编码参数编码待发布视频得到的编码文件的发布时间。
[0044]
示例性地,预测采用备选编码参数编码待发布视频的编码时间可以包括:将各备选编码参数对应的目标编码信息中包括的编码时间,作为采用各备选编码参数编码待发布视频的编码时间。
[0045]
预测采用备选编码参数编码待发布视频得到的编码文件的上传时间可以包括:根据当前网络状态信息和各备选编码参数对应的视频码率,预测采用各备选编码参数编码待发布视频得到的编码文件的上传时间。具体地,根据各备选编码参数对应的视频码率和待发布视频的时长,确定采用各备选编码参数编码待发布视频得到的编码文件的数据量(例如编码文件的文件大小)。根据数据量和当前网络状态信息,预测采用各备选编码参数编码待发布视频得到的编码文件的上传时间。由于视频码率是视频传输时每秒传输的数据位数,可以计算视频码率和视频时长的乘法运算结果,将乘法运算结果作为文件大小,即编码文件的数据量。由于网络状态信息可以是网速,即每秒能够传送的数据量,因此,计算数据量和当前网速的除法运算结果,将除法运算结果作为各备选编码参数编码待发布视频得到的编码文件的上传时间。
[0046]
计算各备选编码参数对应的编码时间和上传时间的时间和,将该时间和作为采用各备选编码参数编码待发布视频得到的编码文件的发布时间。
[0047]
步骤130、根据所述发布时间从所述备选编码参数中确定目标编码参数,采用所述
目标编码参数对所述待发布视频进行编码得到编码文件,上传所述编码文件。
[0048]
需要说明的是,目标编码参数是实际用来编码待发布视频的编码参数。
[0049]
具体地,根据发布时间对备选编码参数进行排序,根据排序结果从备选参数中选择满足预设要求的目标编码参数。其中,预设要求可以根据实际应用场景自行设置。例如,预设要求可以是发布时间最短。或者,预设要求还可以是用户指定等。可以选择发布时间最小的多个时间,每个时间对应一个选项,在客户端界面展示上述选项,供用户选择采用何种速度上传视频,加强了人机互动,增加了视频发布的趣味性。例如,假设有两个发布时间,则最小的一个发布时间对应急速上传选项,另一个发布时间对应普通速度上传选项。也可以有三个选项,例如:急速上传选项、普通速度上传选项和慢速上传选项,分别对应发布时间最小的三个时间。本发明实施例对选项数量并不作具体限定。
[0050]
可选地,为了尽量减少视频发布时间,则可以比较各备选编码参数对应的发布时间,基于比较结果从各备选编码参数中选择发布时间最短的一个备选编码参数,作为目标编码参数。
[0051]
采用选定的目标编码参数对待发布视频进行编码,可以得到待发布视频的编码文件,客户端将编码文件上传服务器,完成待发布视频的发布操作。
[0052]
本实施例的技术方案,通过获取各备选编码参数的编码信息中与待发布视频的图像属性信息匹配的目标编码信息,根据当前网络状态信息和目标编码信息,预测采用各备选编码参数编码该待发布视频得到的编码文件的发布时间,根据发布时间从备选编码参数中选择目标编码参数,采用目标编码参数对待发布视频进行编码得到编码文件并上传,可以实现根据网络状态和图像属性信息灵活地选择编码参数,采用选中的目标编码参数对待发布视频进行编码,达到在保证画面质量的基础上缩短视频发布时间,避免出现因视频上传时间较长、或者视频生成时间较长而延长视频发布时间的问题。
[0053]
图2为本发明实施例提供的另一种视频发布方法的流程图,本实施例在上述实施例的基础上,在获取待发布视频的图像属性信息步骤之前,对生成各备选编码参数的信息表的步骤进行进一步说明。如图2所示,该方法包括:
[0054]
步骤210、采用各备选编码参数对测试视频进行编码。
[0055]
具体地,客户端包括几组预先配置的编码参数,例如,备选编码参数可以包括下述几种类型的编码参数:“ultrafast”,“superfast”,“veryfast”,“faster”,“fast”,“medium”及“slow”等。
[0056]
测试视频可以是在用户首次使用客户端并且客户端的使用状态满足设定条件时,服务器下发给客户端的不同分辨率的视频文件。其中,设定条件可以是检测到客户端首页的显示时间超过设定时间长度,且在此时间段内未检测到客户端执行其它操作。图3为本发明实施例提供的一种视频发布方法中信息表生成流程示意图。如图3所示,当客户端310的使用状态满足设定条件的情况下,服务器320下发几组不同分辨率的测试视频给客户端310。其中,每组测试视频包括分辨率不同但内容相同的测试视频。采用各备选参数对测试视频进行编码,生成包含备选编码参数类型、分辨率、画面复杂度、编码时间和视频码率的信息表330。例如,测试视频的分辨率包括400x720,540x960,720x1280(分辨率并不限于上述列举的,可以扩充),即存在分辨率分别是400x720,540x960,720x1280的视频1,分辨率分别是400x720,540x960,720x1280的视频2,
……
,分辨率分别是400x720,540x960,720x1280
的视频m,m是正整数。
[0057]
可选地,如果服务器监测到客户端的使用状态满足设定条件,且当前客户端所处的网速超过设定阈值时,向客户端下发几组不同分辨率的测试视频。可选地,如果在下发测试视频的过程中,服务器监测到客户端请求播放视频的请求信息,则记录当前下发进度,并暂停下发测试视频,转至执行请求播放视频的请求信息。由于客户端要执行播放视频的操作,对于已经下发的测试视频暂时不进行编码操作。当客户端检测到当前使用状态满足设定条件的情况下,对已经接收到的部分测试视频进行编码。此外,当再次监测到客户端的使用状态再次满足设定条件的情况下,根据之前记录的下发进度继续下发测试视频。客户端在接收到剩余的测试视频之后,如果客户端的使用状态仍然满足设定条件,则采用备选编码参数对剩余的测试视频进行编码。可选地,还可以在计算机设备处于闲时的情况下,对已经接收到的部分测试视频进行编码。其中,计算机设备处于闲时可以是用户未使用计算机设备的时间段,或者,熄屏播放音乐等占用处理资源较少的功能运行的时间段等。
[0058]
可选地,客户端接收到测试视频先不进行编码操作,直至检测到服务器发送的下发完成消息。当测试视频下发完成后,服务器会发送下发完成消息给客户端。客户端在检测到下发完成消息后,如果客户端的使用状态满足设定条件,则采用预置的备选编码参数对测试视频进行编码。如果在对测试视频编码过程中,检测到客户端不再满足设定条件,则完成对当前编码中的测试视频的编码操作,记录下编码进度,以便于在下一次客户端的使用状态满足设定条件时,根据编码进度继续对剩余的测试视频进行编码操作。
[0059]
步骤220、确定在每个测试视频的编码过程中各视频帧的编码耗时,根据所述编码耗时计算对应测试视频的编码时间。
[0060]
具体地,在对每个测试视频编码的过程中,统计各视频帧的编码耗时,累加该测试视频的所有视频帧的编码耗时,得到该测试视频的编码时间。
[0061]
步骤230、根据各测试视频对应的编码文件的数据量和视频时长,计算各测试视频对应的视频码率。
[0062]
具体地,获取采用各备选编码参数编码各测试视频得到的编码文件的数据量,计算各测试视频的编码文件的数据量与视频时长的比值,得到各测试视频对应的视频码率。
[0063]
步骤240、关联存储每个测试视频的分辨率、画面复杂度、备选编码参数类型、编码时间和视频码率,得到信息表。
[0064]
具体地,根据各测试视频的属性信息确定每个测试视频的分辨率和画面复杂度,关联存储分辨率、画面复杂度、备选编码参数类型、编码时间和视频码率等信息,得到包含各备选编码参数的相关编码结果数据的信息表。
[0065]
可选地,还可以在上述信息表中关联存储视频名称。
[0066]
步骤250、获取待发布视频的图像属性信息,根据所述图像属性信息查询所述信息表,得到各备选编码参数的编码信息中的目标编码信息。
[0067]
示例性地,对于用户通过客户端创造短视频的场景,当客户端检测到上传按钮被点击时,触发视频发布事件。在视频发布事件被触发的情况下,客户端获取该视频发布事件对应的短视频的图像属性信息。例如,获取短视频的分辨率。以及,随机选择该短视频中的多个视频帧,基于多个视频帧计算待发布视频的画面复杂度。由于计算待发布视频的画面复杂度的方式已于上述实施例详细说明,此处不再赘述。
[0068]
在获取待发布视频的分辨率和画面复杂度之后,分别根据分辨率和画面复杂度查询信息表,得到信息表中与该分辨率和画面复杂度的偏差均小于设定阈值的目标分辨率和目标画面复杂度。其中,设定阈值可以是人为设置的,用于确定信息表中与待发布视频的分辨率最接近的目标分辨率,并且,还用于确定信息表中与待发布视频的画面复杂度最接近的目标画面复杂度。然后,根据目标分辨率和目标画面复杂度从信息表中选择各备选编码参数对应的目标编码时间和目标视频码率。
[0069]
步骤260、根据当前网络状态信息和所述目标编码信息,预测采用各备选编码参数编码所述待发布视频得到的编码文件的发布时间。
[0070]
步骤270、根据所述发布时间从所述备选编码参数中确定目标编码参数,采用所述目标编码参数对所述待发布视频进行编码得到编码文件,上传所述编码文件。
[0071]
本实施例的技术方案,预先通过客户端内置的备选编码参数对测试视频进行编码,得到各测试视频采用各备选编码参数编码的编码时间和视频码率,关联存储各测试视频的分辨率、画面复杂度、备选编码参数类型、编码时间和视频码率,得到信息表。从而,可以在实际视频发布时,根据待发布视频的图像属性信息从信息表中匹配各备选编码参数对应的编码时间和视频码率,然后,根据视频码率和当前网络状态预测各备选编码参数对应的上传时间,根据各备选编码参数对应的编码时间和上传时间确定发布时间,可以在对待发布视频实际进行编码前预测采用各种备选编码参数编码得到的编码文件的发布时间,从而,可以快速的从备选编码参数中选择发布时间最小的目标编码参数,采用目标编码参数对待发布时间进行编码得到编码文件,上传编码文件,可以降低视频发布耗时,进而,可以提升用户体验,激发用户的视频创造积极性,提升了客户端的用户黏度。
[0072]
图4为本发明实施例提供的又一种视频发布方法的流程图,本实施例在上述实施例的基础上,在采用所述目标编码参数对所述待发布视频进行编码得到编码文件步骤之后,附加了更新信息表的步骤。如图4所示,该方法包括:
[0073]
步骤401、采用各备选编码参数对测试视频进行编码。
[0074]
步骤402、确定在每个测试视频的编码过程中各视频帧的编码耗时,根据所述编码耗时计算对应测试视频的编码时间。
[0075]
步骤403、根据各测试视频对应的编码文件的数据量和视频时长,计算各测试视频对应的视频码率。
[0076]
步骤404、关联存储每个测试视频的分辨率、画面复杂度、备选编码参数类型、编码时间和视频码率,得到信息表。
[0077]
步骤405、获取待发布视频的图像属性信息,根据所述图像属性信息查询所述信息表,得到各备选编码参数的编码信息中的目标编码信息。
[0078]
步骤406、根据当前网络状态信息和所述目标编码信息,预测采用各备选编码参数编码所述待发布视频得到的编码文件的发布时间。
[0079]
步骤407、根据所述发布时间从所述备选编码参数中确定目标编码参数,采用所述目标编码参数对所述待发布视频进行编码得到编码文件。
[0080]
步骤408、获取采用所述目标编码参数对所述待发布视频进行编码的实际编码时间。
[0081]
具体地,在采用目标编码参数对待发布视频编码过程中,统计各视频帧的编码耗
时,计算待发布视频包括的所有视频帧的编码耗时的加法运算结果,将加法运算结果作为待发布视频的实际编码时间。
[0082]
步骤409、根据所述待发布视频对应的编码文件的数据量和视频时长,计算所述待发布视频对应的实际视频码率。
[0083]
具体地,获取采用目标编码参数对待发布视频编码得到的编码文件的数据量,计算该数据量与视频时长的除法运算结果,将该除法运算结果作为待发布视频的实际视频码率。
[0084]
步骤410、根据所述实际编码时间、所述待发布视频的分辨率、所述待发布视频的画面复杂度、实际视频码率和目标编码参数类型生成编码信息记录,将所述编码信息记录添加至所述信息表。
[0085]
具体地,基于实际编码时间、待发布视频的分辨率、画面复杂度、实际码率和目标编码参数类型等信息生成一条编码信息记录,将该编码信息记录添加至预先生成的信息表,以增加信息表的复杂度和准确度。
[0086]
本实施例的技术方案,通过在采用目标编码参数对待发布视频进行编码得到编码文件之后,获取实际编码时间和编码文件的数据量,根据该数据量和视频时长计算实际视频码率,基于实际编码时间、待发布视频的分辨率、画面复杂度、实际视频码率和目标编码参数类型生成编码记录,并将该新生成的编码记录添加到预先生成的信息表中,以增加信息表的复杂度和准确度,可以为下次视频发布的预测操作提供更准确的信息。
[0087]
图5为本发明实施例提供的又一种视频发布方法的流程图,本发明实施例是在上述实施例的基础上,以一种具体的应用场景为例说明本发明的视频发布方法。如图5所示,客户端510包括下述功能模块:探测模块511、编码模块512、决策模块513和网络模块514,客户端510与服务器520通信连接。其中,
[0088]
探测模块511,用于维护每组编码参数对应的视频分辨率、画面复杂度、编码时间、视频码率等信息(信息可以不止这些,且信息的维度越高,对采用何种编码参数的预测就越准确)。在用户初次使用客户端且用户闲时的情况下,服务器会下发几组分辨率的测试视频,探测模块511使用x264编码方式,采用各备选编码参数对测试视频进行编码,得到各备选编码参数对应的编码时间和视频码率。其中,用户闲时的含义是用户打开客户端,但是停留在客户端首页未进行其它操作的时间段。基于各测试视频的分辨率、画面复杂度、备选编码参数、编码时间和视频码率,初步建立一个包含各测试视频的分辨率、画面复杂度、备选编码参数、编码时间和视频码率的信息表。此外,当用户每次发布视频之后,编码模块512发送此次视频发布中视频的分辨率、画面复杂度、实际采用的编码参数、实际编码时间和实际视频码率给探测模块511。探测模块511根据编码模块512传送的分辨率、画面复杂度、实际采用的编码参数、实际编码时间和实际视频码率生成此次视频发布的编码信息记录,添加此次视频发布的编码信息记录到信息表中。
[0089]
编码模块512,用于预测待发布视频的画面复杂度,以及,采用决策模块513确定的目标编码参数对待发布视频进行编码。在用户发布视频时,编码模块512首先对该视频的画面复杂度进行预测,画面复杂度的预测方法已在上述实施例中记载,此处不再赘述。编码模块512将待发布视频的分辨率和画面复杂度发送到探测模块511。探测模块511根据分辨率和画面复杂度查询信息表,获取到与其最接近的各备选编码参数对应的编码时间和视频码
率,并将各备选编码参数对应的编码时间和视频码率发送给编码模块512。编码模块512接收各备选编码参数对应的编码时间和视频码率,根据待发布视频的视频时长和视频码率计算各备选编码参数对应的文件大小。编码模块512件各备选编码参数对应的编码时间和文件大小传送给决策模块513。另外,待获取决策模块513选择的目标编码参数之后,编码模块511采用目标编码参数对待发布视频进行编码,得到编码文件,发送编码文件到网络模块514。
[0090]
决策模块513,用于从备选编码参数中选择合适的目标编码参数。当接收到编码模块511发送的各备选编码参数下的编码时间和文件大小时,决策模块513会通知网络模块514获取当前的网络状态信息,接收网络模块514发送的网络状态信息。决策模块513根据该网络状态信息预估出当前上传视频可能的上传耗时t1,根据预估的上传耗时t1和编码时间t2,统计出总的发布时间t=t1+t2。决策模块513选择出最小发布时间对应的备选编码参数,即为目标编码参数。决策模块513通知编码模块512使用该目标编码参数进行真正地视频编码操作。
[0091]
网络模块514,用于当前网络状态的探测和视频编码文件的上传。网络模块514接收决策模块513发送的网络状态探测通知,基于网络状态探测通知对当前网络状态进行探测。网络模块514还获取编码模块512发送的编码文件,将编码文件上传服务器520。
[0092]
示例性地,视频发布方法包括如下步骤:
[0093]
s1、发送待发布视频给编码模块。
[0094]
s2、编码模块发送查询消息给探测模块,以查询每组备选编码参数下的编码时间和视频码率。
[0095]
s3、编码模块将各组备选编码参数下预测的编码时间和文件大小传给决策模块。
[0096]
s4、决策模块知网络模块获取当前的网络状态。
[0097]
s5、决策模块通知编码模块使用选定的编码参数。
[0098]
s6、编码模块将编码后的文件传给网络模块。
[0099]
s7、网络模块上传编码文件给服务器。
[0100]
s8、发送此次编码时间及对应分辨率、画面复杂度等信息给探测模块,以使探测模块更新上述信息到信息表中。
[0101]
具体地,客户端采用设定压缩率crf和最大码率相结合的模式,可以基本保证生成视频的质量不会有明显变化。其中,设定压缩率crf和最大码率相结合的含义是由人为设定压缩率,采用该设定压缩率对应的编码参数编码待发布视频得到的编码文件,其视频码率不能超过预设的最大码率。预先在客户端内配置几组编码参数作为备选编码参数,大致分为“ultrafast”,“superfast”,“veryfast”,“faster”,“fast”,“medium”及“slow”几组。本发明实施例中,备选编码参数并不限于上述几组,还可以进行扩充。探测模块在用户闲时,分别使用上述几组备选编码参数对测试视频进行编码,得到采用各备选编码参数编码各分辨率和画面复杂度的测试视频的编码时间和视频码率。测试视频的分辨率主要包括400x720,540x960,720x1280,其中,分辨率也并不限于上述列举的几种,分辨率可以扩充。测试视频可以不止分辨率一个维度,可以包括画面复杂度等,且维度增加有助于缩小备选编码参数中的目标编码参数的选择范围,提高了编码参数的预估准确度。将对应分辨率的测试视频的画面复杂度、各备选编码参数对应的编码时间、视频码率等信息生成信息表,并
保存到本地文件中。
[0102]
在用户进行视频发布时,编码模块会对用户要发布的待发布视频的画面复杂度进行预估。编码模块获取待发布视频的分辨率,将分辨率和画面复杂度发送给探测模块,并通过查询探测模块的信息表预估编码时间和视频码率等信息。例如,探测模块接收到分辨率和画面复杂度,基于分辨率和画面复杂度查询信息表,得到各备选编码参数对应的编码时间和视频码率,发送各备选编码参数对应的编码时间、视频码率给编码模块。编码模块基于各备选编码参数对应的视频码率和待发布视频的视频时长,计算待发布视频的编码文件的文件大小。编码模块将各备选编码参数对应的编码时间和文件大小传送给决策模块。当决策模块接收到各备选编码参数对应的编码时间和文件大小之后,通知网络模块获取当前的网络状态信息。网络模块会对用户当前的网络进行探测,并发送当前网络状态信息给决策模块。决策模块根据文件大小和当前的网络状态信息计算各备选编码参数对应的上传时间。决策模块根据编码时间和上传时间从备选编码参数中选择合适的目标编码参数。决策模块通知编码模块使用选定的目标编码参数对待发布视频进行编码。编码模块在接收到决策模块发送的通知后,采用通知中指示的目标编码参数对待发布视频进行编码。在编码完成后,发送编码文件给网络模块。网络模块将编码文件上传服务器。
[0103]
本发明实施例可以根据当前的网络状态自适应调整编码参数。当网速较快时,编码时间在整个视频发布时间中占比较大,使用编码复杂度较低的参数,节省编码时间;当网速较慢时,上传时间在整个视频发布时间中占比较大,使用编码复杂度较高的参数,节省上传时间,实现选择合适的编码参数,在保持视频画质基本不变的情况下,尽量减小视频编码时间和上传时间的总时间。
[0104]
图6为本发明实施例提供的一种视频发布装置的结构框图。该装置可由软件和/或硬件实现,一般可集成在计算机设备中,可通过执行本发明提供的视频发布方法来减小视频发布时间。如图6所示,该装置包括:
[0105]
信息获取模块610,用于获取待发布视频的图像属性信息,根据所述图像属性信息从各备选编码参数的编码信息中确定目标编码信息;
[0106]
时间预测模块620,用于根据当前网络状态信息和所述目标编码信息,预测采用各备选编码参数编码所述待发布视频得到的编码文件的发布时间;
[0107]
视频发布模块630,用于根据所述发布时间从所述备选编码参数中确定目标编码参数,采用所述目标编码参数对所述待发布视频进行编码得到编码文件,上传所述编码文件。
[0108]
本发明实施例提供的视频发布装置,通过获取各备选编码参数的编码信息中与待发布视频的图像属性信息匹配的目标编码信息,根据当前网络状态信息和目标编码信息,预测采用各备选编码参数编码待发布视频得到的编码文件的发布时间,根据发布时间从备选编码参数中选择满足预设要求的目标编码参数,采用目标编码参数对待发布视频进行编码得到编码文件并上传,可以实现根据网络状态和图像属性信息灵活地选择编码参数,采用被选中的目标编码参数对待发布视频进行编码,达到在保证画面质量的基础上缩短视频发布时间,避免出现因视频上传时间较长、或者视频生成时间较长而延长视频发布时间的问题。
[0109]
值得注意的是,上述视频发布装置的实施例中,所包括的各个单元和模块只是按
照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
[0110]
本发明实施例提供了一种计算机设备,该计算机设备中可集成本发明实施例提供的视频发布装置。计算机设备包括一个或多个处理器;存储器,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例提供的待推荐网络资源的确定方法。图7为本发明实施例提供的一种计算机设备的结构框图。图7中以一个处理器为例,计算机设备700包括处理器710和存储器720,处理器710和存储器720通过总线或者其它方式连接,图7中以通过总线连接为例。
[0111]
本发明实施例还提供一种计算机可读存储介质,其上存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现本发明任意实施例所述的视频发布方法。
[0112]
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1