一种音视频转码播放方法与流程
未命名
07-12
阅读:91
评论:0
1.本发明涉及网络技术领域,尤其涉及一种音视频转码播放方法。
背景技术:
2.云存储是一种网上在线存储的模式,即把数据、文件等存放在通常由第三方托管的服务器上,用户可以在任何时间、任何地方,透过任何可连网的装置连接到云上方便地进行访问。
3.随着计算机技术的发展,各种音频、音视频或者音视频的多媒体信息越来越多,基本都通过云的方式进行存储、传输,当终端在访问的时候,通过网络来进行访问并播放,由于终端以及应用场景的多样性,导致各种音频、音视频或者音视频的存储方式、编码格式等等也是多种多样,因此都需要对这些音频、音视频或者音视频进行转码,才能播放。
4.现有技术中,一种解决方案是提前离线在云端进行转码成各种可能需要播放的格式,并进行存储,用以适配不同的终端,这种方式可以直接支持播放,但这种方式需要消耗大量的转码服务器和存储空间,导致计算成本和存储成本急剧上升。而且目前大部分的视频转码都是通过异步处理的方式来实现,使得音视频内容从生成到分发到终端用户的业务流量复杂且时间长。
5.此外,上述的的音视频处理(存储、传输以及转码)通常的做法,都是要先异步转码好之后,下载、播放转码后的文件才能确认转码效果。确认转码效果之后再用转码后的文件去做分发、访问,从而增加了内容生成、分发业务流程的复杂性,使用本发明,转码处理触发、转码效果查看、转码后文件的分发,使用同一个访问链接即可,大大简化了音视频内容生成、分发的业务流程。
技术实现要素:
6.本发明为解决现有技术中存在的技术问题,提供一种音视频转码播放方法,应用于服务端,包括以下步骤:
7.接收客户端的播放请求,触发转码处理,所述转码处理为将源音视频转码为m3u8封装格式的音视频文件以及将所述音视频文件转码拆分为m3u8索引文件和多个ts文件的转码子任务;
8.将转码后的音视频实时发送至客户端。
9.进一步地,m3u8索引文件的生成不需要对源音视频文件做实际的编解码处理,而是基于源音视频文件的meta信息、关键帧信息以及实际的转码设置,计算各ts文件的切片位置、生成完整的ts索引列表。
10.进一步地,所述拆分综合关键帧、转码速度和播放时长,对于第一个ts文件,默认按原始视频关键帧间隔切,当关键帧太长,超过预设时间,则结合切片速度和播放时长,从间隔1、2、4、8、...中选择一个合适的间隔作为第一个ts文件的切片时长。
11.进一步地,m3u8索引文件生成和第一个ts文件转码同步处理,第一个ts文件转码
处理完后响应客户端请求返回完整的m3u8索引文件,并在客户端随后请求播放第一个ts文件时直接返回已转码的第一个ts文件。
12.进一步地,若接收到客户端跳转或者拖拽至音视频某个时段的播放指令,则触发该时段所指的ts文件的转码处理,并持久化保存下来,当下次访问到该ts文件,则不再触发该ts文件的转码处理。
13.进一步的,还包括任务处理步骤:
14.对源文件内容进行hash处理得到hash值;
15.根据源文件名、hash值以及转码处理命令,计算得到一个任务的唯一标识,用以标识已经进行处理的ts文件,防止高并发或是恶意攻击的情况下重复创建多个任务,避免转码处理资源浪费。
16.本技术还提供一种音视频转码播放方法,应用于服务端和客户端,包括如下步骤:
17.客户端发起播放请求;
18.服务端根据播放请求,触发对播放视频的转码处理,所述转码处理为将源音视频转码为m3u8封装格式的音视频文件以及将所述音视频文件转码拆分为m3u8索引文件和多个ts文件的转码子任务,并将转码后的音视频实时发送至客户端。
19.进一步地,m3u8索引文件的生成不需要对源音视频文件做实际的编解码处理,而是基于源音视频文件的meta信息、关键帧信息以及实际的转码设置,计算各ts文件的切片位置、生成完整的ts索引列表。
20.进一步地,所述拆分综合关键帧、转码速度和播放时长,对于第一个ts文件,默认按原始视频关键帧间隔切,当关键帧太长,超过预设时间,则结合切片速度和播放时长,从间隔1、2、4、8、...中选择一个合适的间隔作为第一个ts文件的切片时长。
21.本发明还提供一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如所述的音视频转码播放方法。
22.本发明还提供一种电子设备,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行如所述的音视频转码播放方法。
23.本发明公开的方法中所述模块,在实际应用中,即可以在一台目标服务器上部署多个模块,也可以每一模块独立部署在不同的目标服务器上,特别的,根据需要,为了提供更强大的计算处理能力,也可以根据需要将模块部署到集群目标服务器上。
24.由此可见,本发明采取的技术方案,转码处理触发、转码效果查看、转码后文件的分发,使用同一个访问链接即可,大大简化了音视频内容生成、分发的业务流程,具体表现为:
25.1、无需提前做好处理、在访问文件/使用文件时触发处理、获取转码后的音视频文件,简化业务处理流程。
26.2、转码处理通过访问链接触发后会在同一个请求里获取到转码后的文件,可以实时查看到转码效果,以往的转码需要提交转码任务后、等待转码完成、再下载结果文件查看转码效果。
27.3、首帧秒级的转码播放体验。
28.为了对本发明有更清楚全面的了解,下面结合附图,对本发明的具体实施方式进行详细描述。
附图说明
29.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
30.图1为本技术实施例的一种音视频转码播放方法的流程示意图。
具体实施方式
31.本技术中所述的音视频,泛指:单独的音频文件、单独的视频文件、音视频都有的文件,也包括各种形式的多媒体文件。
32.请参阅图1,图1为本技术实施例的一种音视频转码播放方法的流程示意图。本技术基于上述基于源文件存在的技术缺陷,提出了一种新的音视频转码播放方法及系统,其技术方案为:
33.接收客户端的播放请求,触发转码处理,所述转码处理为将源音视频转码为m3u8封装格式的音视频文件以及将所述音视频文件转码拆分为多个ts文件的转码子任务;
34.将转码后的音视频实时发送至客户端。
35.本技术将源音视频转码为m3u8封装格式的音视频文件,可以将一个大音视频转码任务拆分为m3u8索引文件和n个小音视频转码任务,从而可以缩短转码时长、结合并行处理机制,达到实时转码的效果,更友好的支持客户端播放以及查看转码效果。
36.所述的m3u8索引文件的生成不需要对源音视频文件做实际的编解码处理,而是基于源音视频文件的meta信息、关键帧信息以及实际的转码设置,计算各ts切片位置、生成完整的ts索引列表。下面以一个例子并结合各种优选的实施方式进一步说明本技术的技术方案。
37.一个源视频文件为aaa.mp4存储在服务端,其可以播放的时长30分钟,当客户端发起请求播放该源视频文件时,触发了转码处理,则使用转码播放链接http://aaaa.com/aaa-1.m3u8请求服务端。
38.服务端接到播放请求,获取aaa.mp4文件的meta并扫描关键帧,生成m3u8索引文件(暨ts文件播放索引),其简单示意如下:
39.#extm3u
40.#ext-x-version:3
41.#ext-x-targetduration:1800
42.#ext-x-med ia-sequence:0
43.#ext inf:1.000000,《ts1链接》
44.#ext inf:1.000000,《ts2链接》
45.#ext inf:2.000000,《ts3链接》
46.#ext inf:2.000000,《ts4链接》
47.#ext inf:4.000000,《ts5链接》
48.#ext inf:10.000000,《ts6链接》
49....
50.#ext inf:10.000000,《ts184链接》
51.#ext-x-endlist
52.作为一种优选的实施方式,服务端接到客户端的转码播放请求后,m3u8索引文件的生成和第一个ts文件转码同步处理,第一个ts转码处理完后响应客户端请求返回m3u8索引文件,并在客户端随后请求播放第一个ts文件时直接返回已转码的ts文件,从而可以实现在客户端的首帧播放时间可达秒级的速度(即从最开始请求转码到能播放第一个已转码的ts文件),大大提升用户的播放体验。
53.如何将播放的音视频切片成合理的ts文件,对于播放的体验也具有重要的影响,作为一种优选的实施方式,当把所述音视频文件转码拆分为多个ts文件的转码子任务时,需要综合关键帧、转码速度和播放时长等因素,对于第一个ts文件,默认按原始视频关键帧间隔切,当关键帧太长,超过预设时间,则结合切片速度和播放时长,从间隔1、2、4、8、...中选择一个合适的间隔作为第一个ts文件的切片时长。
54.本技术实施例在触发第一个ts文件的转码处理,第一个ts文件转码完成后,服务端把完整的m3u8文件返回给客户端,并同时把m3u8索引文件和第一个ts文件持久化保存下来,其他序列的ts文件也是如此操作,从而ts文件的下次访问就不需要再触发转码处理。
55.在一般的使用场景中,客户端播放按照列表,从第一个ts文件开始播放,使用《ts1链接》请求服务端,顺序地进行转码处理以及播放后续的ts文件。
56.作为一种优选的实施方式,本技术还支持视频拖拽或者跳转(如用户突然点击后面某个时间点的视频开始播放)的操作,即时触发单个ts文件的转码。为此,本技术在m3u8索引文件里的ts文件的播放路径,设置有有触发条件的ts转码任务链接(ts文件不存在触发转码处理),当客户端拖拽、请求播放ts文件时会实时触发对应ts文件的转码处理,服务端会直接返回转码后的ts文件内容给客户端播放,并持久化保存下来、ts文件的下次访问就不会再触发转码处理。
57.比如终端用户在客户端拖拽视频播放位置至第75个ts文件,客户端使用《ts75链接》请求服务端,服务端接收到请求后,若ts75尚未完成转码,服务端开始执行对ts75的转码处理,完成后服务端就把ts75内容返回给客户端做播放,并把ts75文件内容保存下来。
58.后续其他终端用户2在客户端也播放ts75时,服务端会直接把保存好的ts75内容返回、而不会再触发转码处理。
59.此外,对于服务端应对多客户端的访问来说,还需要考虑重复访问的问题,本技术对源文件内容进行hash处理,把源文件名、hash值以及转码处理命令,拼接成一个字符串,然后进行base64编码,编码后得到的一串字符作为任务的唯一标识,用以标识已经进行处理的ts文件,当接到其他客户端访问该ts文件时,不再进行转码处理,从而可以防止高并发或是恶意攻击的情况下重复创建多个任务,避免转码处理资源浪费。
60.基于上述实施例,本技术还提供一种音视频转码播放方法,应用于服务端和客户端,包括如下步骤:
61.客户端发起播放请求;
62.服务端根据播放请求,触发对播放视频的转码处理,所述转码处理为将源音视频转码为m3u8封装格式的音视频文件以及将所述音视频文件转码拆分为m3u8索引文件和多个ts文件的转码子任务,并将转码后的音视频实时发送至客户端。
63.基于上述实施例的技术方案构成的播放系统,包括服务端和客户端,客户端用以向服务端发起播放请求;服务端用以根据播放请求,触发对播放视频的转码处理,所述转码处理为将源音视频转码为m3u8封装格式的音视频文件以及将所述音视频文件转码拆分为m3u8索引文件和多个ts文件的转码子任务,并将转码后的音视频实时发送至客户端。
64.本技术实施例还提供一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如所述的音视频转码播放方法。
65.本技术实施例还提供一种电子设备,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行如上述任一所述的音视频转码播放方法。
66.需要说明的是,本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过计算机程序来指令相关的硬件来完成,所述计算机程序可以存储于计算机可读存储介质中,所述存储介质可以包括但不限于:只读存储器(rom,read on ly memory)、随机存取存储器(ram,random access memory)、磁盘或光盘等。
67.对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
技术特征:
1.一种音视频转码播放方法,应用于服务端,其特征是,包括如下步骤:接收客户端的播放请求,触发转码处理,所述转码处理为将源音视频转码为m3u8封装格式的音视频文件以及将所述音视频文件转码拆分为m3u8索引文件和多个ts文件的转码子任务;将转码后的音视频实时发送至客户端。2.如权利要求1所述的音视频转码播放方法,其特征是,m3u8索引文件的生成不需要对源音视频文件做实际的编解码处理,而是基于源音视频文件的meta信息、关键帧信息以及实际的转码设置,计算各ts文件的切片位置、生成完整的ts索引列表。3.如权利要求2所述的音视频转码播放方法,其特征是,所述拆分综合关键帧、转码速度和播放时长,对于第一个ts文件,默认按原始视频关键帧间隔切,当关键帧太长,超过预设时间,则结合切片速度和播放时长,从间隔1、2、4、8、...中选择一个合适的间隔作为第一个ts文件的切片时长。4.如权利要求3所述的音视频转码方法,其特征是,m3u8索引文件生成和第一个ts文件转码同步处理,第一个ts文件转码处理完后响应客户端请求返回完整的m3u8索引文件,并在客户端随后请求播放第一个ts文件时直接返回已转码的第一个ts文件。5.如权利要求1所述的音视频转码播放方法,其特征是,若接收到客户端跳转或者拖拽至音视频某个时段的播放指令,则结合m3u8索引文件描述,触发相应时段所指的ts文件的转码处理,并持久化保存下来,当下次访问到该ts文件,则不再触发该ts文件的转码处理。6.如权利要求1所述的音视频转码播放方法,其特征是,还包括任务处理步骤:对源文件内容进行hash处理得到hash值;根据源文件名、hash值以及转码处理命令,计算得到一个任务的唯一标识,用以标识已经进行处理的ts文件,防止高并发或是恶意攻击的情况下重复创建多个任务,避免转码处理资源浪费。7.一种音视频转码播放方法,应用于服务端和客户端,其特征是,包括如下步骤:客户端发起播放请求;服务端根据播放请求,触发对播放视频的转码处理,所述转码处理为将源音视频转码为m3u8封装格式的音视频文件以及将所述音视频文件转码拆分为m3u8索引文件和多个ts文件的转码子任务,并将转码后的音视频实时发送至客户端。8.如权利要求7所述的音视频转码播放方法,其特征是,m3u8索引文件的生成不需要对源音视频文件做实际的编解码处理,而是基于源音视频文件的meta信息、关键帧信息以及实际的转码设置,计算各ts文件的切片位置、生成完整的ts索引列表。9.如权利要求7所述的音视频转码播放方法,其特征是,所述拆分综合关键帧、转码速度和播放时长,对于第一个ts文件,默认按原始视频关键帧间隔切,当关键帧太长,超过预设时间,则结合切片速度和播放时长,从间隔1、2、4、8、...中选择一个合适的间隔作为第一个ts文件的切片时长。10.一种存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1至9任一所述的音视频转码播放方法。11.一种电子设备,其特征在于,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间
通过总线通信,所述处理器执行所述机器可读指令,以执行如权利要1至9任一所述的音视频转码播放方法。
技术总结
本发明公开一种音视频转码播放方法,应用于服务端,包括如下步骤:接收客户端的播放请求,触发转码处理,所述转码处理为将源音视频转码为m3u8封装格式的音视频文件以及将所述音视频文件转码拆分为m3u8索引文件和多个TS文件的转码子任务;将转码后的音视频实时发送至客户端,本申请优化了从源文件到转码完成以及播放转码完文件的业务流程,实现了从源文件到转码播放同步进行,边转码边播放,大大提高了播放转码后文件内容的响应速度至秒开,无需等待源文件的完整转码。等待源文件的完整转码。等待源文件的完整转码。
技术研发人员:许式伟 朱玲 齐杰 江文龙 郭佳
受保护的技术使用者:上海七牛信息技术有限公司
技术研发日:2023.03.22
技术公布日:2023/7/7
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
