视频文件转码方法和装置与流程
- 国知局
- 2024-09-11 14:26:19
本技术涉及视频,尤其涉及一种视频文件转码方法和装置。
背景技术:
1、目前视频文件的爆炸式增长,视频格式越来越多,而播放终端的多样化,为了兼容各种播放终端、节省存储空间以及用户的即时观看需求,转码点播成为迫切的需求。
2、为了提升视频点播的起播速度,业内方案通常会选择将原始视频文件的内容全部转码hls或dash等格式的视频文件。根据视频协议的差异,hls或dash格式是将视频分成一个个小的视频分片,每个视频分片中包含独立的描述信息,不管视频总时长多大,视频起播速度都可以令人满意。
3、但是,对于例如mp4格式的原始视频,所有的视频描述信息都是放在一个moov box中,点播原始视频,必须先获得moov box数据。视频文件越大,起播速度越慢。并且,服务器资源是受限的,所以,相关技术中直接将原始视频文件的全部内容转为hls或dash等格式的视频文件的方式只能以任务队列的方式执行,这就导致用户访问课程视频的时候,课程视频可能还没来得及进行格式转换,即起播速度慢。同时,还需要大量的存储空间来同时保存两种格式的视频,这不仅导致服务器的存储压力大,而且其存储的视频使用率其实很低,很容易造成存储资源的浪费。
技术实现思路
1、本技术实施例提供了一种视频文件转码方法和装置,能够根据用户播放需求动态转码,提高视频文件的转码速度和转码有效性,避免用户已点播视频而视频文件还未转码以及存储空间浪费的问题。所述技术方案如下:
2、第一方面,本技术实施例提供了一种视频文件转码方法,上述方法包括:
3、接收到客户端针对原始视频文件的首次点播请求后,向上述客户端发送上述原始视频文件对应的头部转码视频文件,以使上述客户端基于上述头部转码视频文件播放上述原始视频文件中前目标时长的第一视频片段;上述头部转码视频文件基于上述第一视频片段进行转码得到;
4、将上述原始视频文件中上述第一视频片段之后的第二视频片段进行转码,得到上述原始视频文件对应的主部转码视频文件;
5、接收到上述客户端针对上述原始视频文件的再次点播请求后,向上述客户端发送上述主部转码视频文件,以使上述客户端在播放完上述第一视频片段后基于上述主部转码视频文件继续播放上述第二视频片段。
6、本技术实施例中,一方面,只预先将原始视频文件对应前目标时长的第一视频片段进行转码得到对应的头部转码视频文件,相比于相关技术中直接将原始视频文件的全部内容转为hls或dash等格式的hls视频文件的方式而言,本技术不仅视频文件转码速度更快,而且占用的存储空间更少,还能在用户点播该原始视频时实现立即开始播放该原始视频前目标时长的第一视频片段,大大避免出现用户点播视频而服务端还没有转码的问题;另一方面,对于原始视频文件的点播,在不影响用户观看体验的情况下,还会在客户端基于头部转码视频文件播放原始视频文件中前目标时长的第一视频片段时,动态转码原始视频文件对应后续的hls视频内容(即主部转码视频文件),也即可以根据用户的实际播放需求动态转码第一视频片段后的视频片段,对用户未点播访问的内容则不转码,不仅大大节省了服务端的存储资源,避免存储空间的浪费;又一方面,在接收到客户端针对原始视频文件的再次点播请求后,向客户端发送该主部转码视频文件,以使客户端在播放完第一视频片段后基于主部转码视频文件继续播放第一视频片段之后的第二视频片段,从而让客户端可以流畅地播放原始视频文件,确保转码视频文件(例如但不限于hls视频文件)的使用率,提高了视频文件转码的有效性。
7、在一种可能的实现方式中,上述向上述客户端发送上述原始视频文件对应的头部转码视频文件之前,上述方法还包括:
8、获取上述原始视频文件;
9、将上述原始视频文件中上述第一视频片段进行转码,得到上述原始视频文件对应的头部转码视频文件;上述头部转码视频文件包括头部转码视频文件内容描述文本以及第一ts分片集;上述第一ts分片集包括上述第一视频片段对应的至少一个ts分片;
10、将上述原始视频文件以及上述原始视频文件对应的头部转码视频文件进行关联存储。
11、本技术实施例中,相比于相关技术中直接将原始视频文件的全部内容转码为hls或dash等格式的视频文件并将转码前后的这两个视频文件同时存储的方式而言,本技术不仅提高了视频文件转码的速度,而且减少了视频文件所需占用的存储空间,还能在用户点播该原始视频时通过关联存储的原始视频文件以及其对应的头部转码视频文件实现立即开始播放该原始视频的第一视频片段,确保用户视频点播的播放效率。
12、在一种可能的实现方式中,上述接收到客户端针对原始视频文件的首次点播请求后,向上述客户端发送上述原始视频文件对应的头部转码视频文件,包括:
13、接收到客户端针对原始视频文件的首次点播请求后,判断上述原始视频文件是否存在对应的完整转码视频文件;
14、若否,则向上述客户端发送上述原始视频文件对应的头部转码视频文件。
15、在一种可能的实现方式中,上述判断上述原始视频文件是否存在对应的完整转码视频文件之后,上述方法还包括:
16、若是,则向上述客户端发送上述完整转码视频文件,以使上述客户端基于上述完整转码视频文件播放上述原始视频文件对应的完整视频;上述完整转码视频文件基于上述头部转码视频文件和上述主部转码视频文件合并得到。
17、在一种可能的实现方式中,上述将上述原始视频文件中上述第一视频片段之后的第二视频片段进行转码,得到上述原始视频文件对应的主部转码视频文件之后,上述方法还包括:
18、将上述头部转码视频文件和上述主部转码视频文件进行合并,得到上述原始视频文件对应的完整转码视频文件;
19、接收到另一客户端针对上述原始视频文件的点播请求后,向上述另一客户端发送上述完整转码视频文件,以使上述另一客户端基于上述完整转码视频文件播放上述原始视频文件对应的完整视频。
20、在一种可能的实现方式中,上述第二视频片段为上述原始视频文件中上述第一视频片段之后的全部剩余视频片段;上述主部转码视频文件包括主部转码视频文件内容描述文本以及第二ts分片集;上述第二ts分片集包括上述第二视频片段对应的至少一个ts分片。
21、在一种可能的实现方式中,上述第二视频片段为上述原始视频文件中上述第一视频片段之后第一时长内的第一剩余视频片段;上述主部转码视频文件包括上述第一剩余视频片段对应的第一主部转码视频片段描述信息以及第二ts分片子集;上述第二ts分片子集包括上述第一剩余视频片段对应的至少一个ts分片;
22、上述向上述客户端发送上述主部转码视频文件,以使上述客户端在播放完上述第一视频片段后基于上述主部转码视频文件继续播放上述第二视频片段之后,上述方法还包括:
23、将上述第二视频片段更新为上述原始视频文件中上述第一剩余视频片段之后第二时长内的第二剩余视频片段,并再次执行上述将上述原始视频文件中上述第一视频片段之后的第二视频片段进行转码,得到上述原始视频文件对应的主部转码视频文件的步骤,直至预设时长内并未接收到上述客户端针对上述原始视频文件的再次点播请求后,暂停上述原始视频文件中后续视频片段的转码,或,直至上述原始视频文件中上述第一视频片段之后的全部剩余视频片段均转码结束后,确定上述原始视频文件已全部完成转码。
24、在一种可能的实现方式中,上述头部转码视频文件对应的头部转码视频文件内容描述文本中不包含结束标志;
25、上述第二视频片段为上述原始视频文件中上述第一视频片段之后的全部剩余视频片段时,上述主部转码视频文件对应的主部转码视频文件内容描述文本中包含结束标志。
26、在一种可能的实现方式中,上述客户端获取上述头部转码视频文件和上述主部转码视频文件的地址相同。
27、第二方面,本技术实施例提供了一种视频文件转码装置,包括:
28、第一发送模块,用于接收到客户端针对原始视频文件的首次点播请求后,向上述客户端发送上述原始视频文件对应的头部转码视频文件,以使上述客户端基于上述头部转码视频文件播放上述原始视频文件中前目标时长的第一视频片段;上述头部转码视频文件基于上述第一视频片段进行转码得到;
29、第一转码模块,用于将上述原始视频文件中上述第一视频片段之后的第二视频片段进行转码,得到上述原始视频文件对应的主部转码视频文件;
30、第二发送模块,用于接收到上述客户端针对上述原始视频文件的再次点播请求后,向上述客户端发送上述主部转码视频文件,以使上述客户端在播放完上述第一视频片段后基于上述主部转码视频文件继续播放上述第二视频片段。
31、在一种可能的实现方式中,上述视频文件转码装置还包括:
32、获取模块,用于获取上述原始视频文件;
33、第二转码模块,用于将上述原始视频文件中上述第一视频片段进行转码,得到上述原始视频文件对应的头部转码视频文件;上述头部转码视频文件包括头部转码视频文件内容描述文本以及第一ts分片集;上述第一ts分片集包括上述第一视频片段对应的至少一个ts分片;
34、存储模块,用于将上述原始视频文件以及上述原始视频文件对应的头部转码视频文件进行关联存储。
35、在一种可能的实现方式中,上述第一发送模块包括:
36、判断单元,用于接收到客户端针对原始视频文件的首次点播请求后,判断上述原始视频文件是否存在对应的完整转码视频文件;
37、发送单元,用于若否,则向上述客户端发送上述原始视频文件对应的头部转码视频文件。
38、在一种可能的实现方式中,上述视频文件转码装置还包括:
39、第三发送模块,用于若上述原始视频文件存在对应的完整转码视频文件,则向上述客户端发送上述完整转码视频文件,以使上述客户端基于上述完整转码视频文件播放上述原始视频文件对应的完整视频;上述完整转码视频文件基于上述头部转码视频文件和上述主部转码视频文件合并得到。
40、在一种可能的实现方式中,上述视频文件转码装置还包括:
41、合并模块,用于将上述头部转码视频文件和上述主部转码视频文件进行合并,得到上述原始视频文件对应的完整转码视频文件;
42、第四发送模块,用于接收到另一客户端针对上述原始视频文件的点播请求后,向上述另一客户端发送上述完整转码视频文件,以使上述另一客户端基于上述完整转码视频文件播放上述原始视频文件对应的完整视频。
43、在一种可能的实现方式中,上述第二视频片段为上述原始视频文件中上述第一视频片段之后的全部剩余视频片段;上述主部转码视频文件包括主部转码视频文件内容描述文本以及第二ts分片集;上述第二ts分片集包括上述第二视频片段对应的至少一个ts分片。
44、在一种可能的实现方式中,上述第二视频片段为上述原始视频文件中上述第一视频片段之后第一时长内的第一剩余视频片段;上述主部转码视频文件包括上述第一剩余视频片段对应的第一主部转码视频片段描述信息以及第二ts分片子集;上述第二ts分片子集包括上述第一剩余视频片段对应的至少一个ts分片;
45、上述视频文件转码装置还包括:
46、更新模块,用于将上述第二视频片段更新为上述原始视频文件中上述第一剩余视频片段之后第二时长内的第二剩余视频片段,并再次执行上述将上述原始视频文件中上述第一视频片段之后的第二视频片段进行转码,得到上述原始视频文件对应的主部转码视频文件的步骤,直至预设时长内并未接收到上述客户端针对上述原始视频文件的再次点播请求后,暂停上述原始视频文件中后续视频片段的转码,或,直至上述原始视频文件中上述第一视频片段之后的全部剩余视频片段均转码结束后,确定上述原始视频文件已全部完成转码。
47、在一种可能的实现方式中,上述头部转码视频文件对应的头部转码视频文件内容描述文本中不包含结束标志;
48、上述第二视频片段为上述原始视频文件中上述第一视频片段之后的全部剩余视频片段时,上述主部转码视频文件对应的主部转码视频文件内容描述文本中包含结束标志。
49、在一种可能的实现方式中,上述客户端获取上述头部转码视频文件和上述主部转码视频文件的地址相同。
50、第三方面,本技术实施例提供了一种电子设备,包括:处理器和存储器;其中,所述存储器存储有计算机程序,所述计算机程序适于由处理器加载并执行本技术实施例第一方面或第一方面的任意一种可能的实现方式提供的方法步骤。
51、第四方面,本技术实施例提供了一种计算机存储介质,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行本技术实施例第一方面或第一方面的任意一种可能的实现方式提供的方法步骤。
52、可以理解的,上述第二方面提供的视频文件转码装置、第三方面提供的电子设备以及第四方面提供的计算机存储介质,均用于执行第一方面或第一方面的任意一种实现方式所提供的视频文件转码方法,因此,其所能达到的有益效果可参考第一方面或第一方面的任意一种实现方式所提供的视频文件转码方法中的有益效果,此处不再赘述。
53、上述说明仅是本技术技术方案的概述,为了能够更清楚了解本技术的技术手段而可依照说明书的内容予以实施,并且为了让本技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本技术的具体实施方式。
本文地址:https://www.jishuxx.com/zhuanli/20240911/290799.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表