CN117793362A - 流式转码方法和装置 - Google Patents
流式转码方法和装置 Download PDFInfo
- Publication number
- CN117793362A CN117793362A CN202311816234.9A CN202311816234A CN117793362A CN 117793362 A CN117793362 A CN 117793362A CN 202311816234 A CN202311816234 A CN 202311816234A CN 117793362 A CN117793362 A CN 117793362A
- Authority
- CN
- China
- Prior art keywords
- transcoding
- slice
- target
- slices
- video
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 71
- 230000008569 process Effects 0.000 claims abstract description 19
- 238000003860 storage Methods 0.000 claims description 22
- 238000004422 calculation algorithm Methods 0.000 claims description 17
- 238000009795 derivation Methods 0.000 claims description 4
- 238000004364 calculation method Methods 0.000 abstract description 6
- 238000010586 diagram Methods 0.000 description 11
- 230000005540 biological transmission Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000001960 triggered effect Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
Landscapes
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本申请实施例提供了一种流式转码方法,应用于服务器,该流式转码方法包括:获取目标客户端通过流式传输提供的目标视频的切片,其中,所述目标客户端用于:在对所述目标视频的切片过程中,每生成一个切片,则将所生成的切片实时上传至服务器;每获取到一个切片,则根据预设转码格式对获取到的切片进行转码;在所述目标视频的多个切片转码成功的情况下,合并转码后的多个切片,以获取目标转码视频。本申请实施例的技术方案可以通过切片处理和流式传输实现流式转码,使视频上传和转码计算能够做到重叠、并发执行,有效减少了总耗时,从而提高了整体效率。
Description
技术领域
本申请实施例涉及数据处理技术领域,尤其涉及一种流式转码方法、装置、计算机设备、计算机可读存储介质。
背景技术
随着互联网技术的发展,用户能够通过网络进行内容分享。例如,用户可以将想要分享的视频上传到服务器。其他用户可以通过终端设备向服务器请求视频资源,下载并观看视频。为适应不同观看设备的解码能力和网络环境,服务器可以对用户上传的视频进行转码,生成多种格式的视频资源。
然而,受视频上传、转码计算等环节的影响,视频的转码处理速度慢、耗时长,从而导致用户体验下降。
需要说明的是,上述内容并不必然是现有技术,也不用于限制本申请的专利保护范围。
发明内容
本申请实施例提供一种流式转码方法、装置、计算机设备、计算机可读存储介质,以解决或缓解上面提出的一项或更多项技术问题。
本申请实施例的一个方面提供了一种流式转码方法,应用于服务器,所述方法包括:
获取目标客户端通过流式传输提供的目标视频的切片,其中,所述目标客户端用于:在对所述目标视频的切片过程中,每生成一个切片,则将所生成的切片实时上传至服务器;
每获取到一个切片,则根据预设转码格式对获取到的切片进行转码;
在所述目标视频的多个切片转码成功的情况下,合并转码后的多个切片,以获取目标转码视频。
可选地,所述合并转码后的多个切片,以获取目标转码视频,包括:
获取所述目标客户端提供的播放列表,所述播放列表用于指示所述目标视频的多个切片以及多个切片之间的顺序关系,所述播放列表根据所述目标客户端的切片操作实时更新;
根据所述播放列表,合并转码后的多个切片,以获取所述预设转码格式的目标转码视频。
可选地,所述预设转码格式包括一个或多个转码格式;所述根据预设转码格式对获取到的切片进行转码,包括:
在所述预设转码格式包括多个转码格式的情况下,根据预设规则确定每个转码格式对应的转码优先级;
根据多个转码格式各自对应的转码优先级,确定转码顺序;
根据所述转码顺序对获取到的切片进行对应多个转码格式的转码,以获取多个转码格式的切片。
本申请实施例的另一个方面还提供了一种流式转码方法,应用于客户端,所述方法包括:
响应于针对目标视频的处理请求,对所述目标视频进行切片处理;
每生成一个切片,则将所生成的切片实时上传至服务器,以使服务器每获取到一个切片,则根据预设转码格式对获取到的切片进行转码,并在所述目标视频的多个切片转码成功的情况下,合并转码后的多个切片,以生成目标转码视频。
可选地,切片通过预设剪辑工具实时导出,其中,所述实时导出包括每生成一个切片,则实时导出所生成的切片。
可选地,切片的描述信息被记录在播放列表中;所述流式转码方法还包括:
每生成一个切片,则实时更新所述播放列表,以新增记录所生成的切片的描述信息;及
将更新后的播放列表上传至服务器,以使服务器基于更新后的播放列表进行切片合并操作;
其中,切片的描述信息用于描述对应的切片以及指示该对应的切片在多个切片中的顺序。
可选地,所述流式转码还包括:
根据预设规则,调整目标切片算法;
根据所述目标切片算法,对所述目标视频进行切片处理。
可选地,所述根据目标切片算法,对所述目标视频进行切片处理,包括:
根据目标视频的视频内容,将所述目标视频分为多个视频段;
对所述多个视频段并行切片。
可选地,所述流式转码还包括:
确定并发度,所述并发度用于指示同一时刻下切片的最大上传数量;
在满足所述并发度的情况下,向服务器发送切片。
本申请实施例的另一个方面提供了一种流式转码装置,应用于服务器,所述装置包括:
获取模块,用于获取目标客户端通过流式传输提供的目标视频的切片,其中,所述目标客户端用于:在对所述目标视频的切片过程中,每生成一个切片,则将所生成的切片实时上传至服务器;
转码模块,用于每获取到一个切片,则根据预设转码格式对获取到的切片进行转码;
合并模块,用于在所述目标视频的多个切片转码成功的情况下,合并转码后的多个切片,以获取目标转码视频。
本申请实施例的另一个方面提供了一种流式转码装置,应用于客户端,所述装置包括:
切片模块,用于响应于针对目标视频的处理请求,对所述目标视频进行切片处理;
上传模块,用于每生成一个切片,则将所生成的切片实时上传至服务器,以使服务器每获取到一个切片,则根据预设转码格式对获取到的切片进行转码,并在所述目标视频的多个切片转码成功的情况下,合并转码后的多个切片,以生成目标转码视频。
本申请实施例的另一个方面提供了一种计算机设备,包括:
至少一个处理器;及
与所述至少一个处理器通信连接的存储器;
其中:所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上所述的方法。
本申请实施例的另一个方面提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机指令,所述计算机指令被处理器执行时实现如上所述的方法。
本申请实施例采用上述技术方案可以包括如下优势:
由目标客户端对目标视频进行切片,并通过流式传输的方式将生成的切片上传到服务器。即,目标客户端每生成一个切片,就将生成的切片实时上传到服务器。相应地,服务器每接收到一个切片,就直接触发针对该切片的转码。在目标视频的所有切片均上传并转码完成后,合并转码后的多个切片,可以得到目标转码视频。可知,本申请实施例通过切片处理和流式传输可实现流式转码,使视频上传和转码计算能够做到重叠、并发执行,有效减少了总耗时,从而提高了整体效率。
附图说明
附图示例性地示出了实施例并且构成说明书的一部分,与说明书的文字描述一起用于讲解实施例的示例性实施方式。所示出的实施例仅出于例示的目的,并不限制权利要求的范围。在所有附图中,相同的附图标记指代类似但不一定相同的要素。
图1示意性示出了根据本申请实施例一的流式转码方法的运行环境图;
图2示意性示出了根据本申请实施例一的流式转码方法的流程图;
图3示意性示出了根据本申请实施例一的流式转码方法的新增流程图;
图4示意性示出了图2中步骤S204的子步骤;
图5示意性示出了根据本申请实施例二的流式转码方法的流程图;
图6示意性示出了根据本申请实施例二的流式转码方法的流程图;
图7是根据本申请实施例的流式转码方法的应用示例图;
图8是根据本申请实施例的流式转码方法的应用示例图;
图9是根据本申请实施例的流式转码方法的应用示例图;
图10示意性示出了根据本申请实施例三的流式转码装置的框图;
图11示意性示出了根据本申请实施例三的流式转码装置的框图;及
图12示意性示出了根据本申请实施例三中的计算机设备的硬件架构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,在本申请实施例中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
在本申请的描述中,需要理解的是,步骤前的数字标号并不标识执行步骤的前后顺序,仅用于方便描述本申请及区别每一步骤,因此不能理解为对本申请的限制。
首先,提供本申请涉及的术语解释:
稿件:用户制作或转载的音频和/或视频文件,可通过上传至平台进行分发,以供观众观看。
转码:用于将文件或媒体内容从一种格式转换为另一种格式,以便适应不同的系统、设备或需求。以视频转码为例,将视频源文件作为输入,根据需要生成不同分辨率、帧率或码率等的输出文件。
转码:用于将数据文件或媒体内容从一种格式转换为另一种格式,以适应不同系统、设备或需求。在视频转码中,源视频文件作为输入,可根据需要生成不同分辨率、帧率或码率等的输出文件,以满足不同需求。
HLS(HTTP Live Streaming,HTTP直播流):一种流媒体传输协议,其工作原理是将整个流媒体内容切分为小的媒体文件片段,并通过HTTP协议在互联网上实时传输这些媒体文件片段。
DASH(Dynamic Adaptive Streaming over HTTP,自适应流媒体传输):一种流媒体传输协议,通过将流媒体内容分割成以不同分辨率、码率或其他质量参数存在的小的文件片段,具有更高程度的自适应性,可支持更多编码格式。
流式传输:通过网络或其他通信媒介,以连续的流形式传输数据。
其次,为方便本领域技术人员理解本申请实施例提供的技术方案,下面对相关技术进行说明:
随着互联网技术的发展,每天都有大量用户在特定网站或应用上传稿件(如视频)到服务器,以通过服务器将视频内容分享给其他用户。为了更好地适应不同观看设备的解码兼容性和网络带宽(如高速网络可支持更高清的内容,低俗网络则优先保证流畅度)等,服务器可以对用户上传的视频进行转码,以输出不同档位的音视频文件,例如高码率、中码率、低码率等,每个档位可能对应不同的分辨率、帧率、码率等。
然而,本申请人了解到:受视频上传、转码计算、网络状况等因素影响,稿件的转码速度慢、耗时长,从而导致用户体验下降。
为此,本申请实施例提供了一种流式转码的技术方案。在该技术方案中:(1)在用户侧先进行流式切片,将原始稿件切片为播放列表及切片的形式(包括但不限于HLS或DASH)。播放列表及切片可以为流式按序生成,每生成一个切片就可以立刻上传,每上传完一个切片就可以立刻执行转码,从而使上传、转码能够做到重叠、并发进行,大大减少耗时;(2)针对用户侧不支持流式切片的情况,服务器也可以进行流式切片,从而使系统能够向前兼容;(3)将用户侧使用剪辑工具(剪辑软件)导出视频并上传视频的过程,优化为通过剪辑工具直接导出播放列表及切片,从而做到边导出、边上传、边转码,进一步减少总耗时,提升稿件转码速度和整体效率。具体见后文。
最后,为了方便理解,下面提供一个示例性运行环境。
如图1所示,运行环境图包括:服务器2、目标客户端(4A、4B、…、4M)、观众终端(6A、6B、…、6N)。
服务器2,可以提供切片处理服务、转码服务、内容分发服务等,其可以是单个服务器、服务器集群或云计算服务中心。
目标客户端(4A、4B、…、4M),可以被配置为将稿件上传至服务器2。其中,稿件可以是用户自制的视频和/或音频内容,也可以是用户转载的其他来源的视频和/或音频文件等。目标客户端还可以被配置为对稿件进行切片处理,并将生成的切片上传到服务器2。目标客户端可以是智能手机、平板电脑等电子设备。当然,目标客户端可以是服务平台2内的虚拟计算实例。
观众终端(6A、6B、…、6N),可以被配置为通过请求服务器2来获取目标客户端上传的音视频文件。观众终端(6A、6B、…、6N)可以是任意类型的计算设备,诸如智能手机、平板设备、膝上型计算机、智能电视、车载终端等。观众终端(6A、6B、…、6N)可以内置浏览器或专门程序,通过浏览器或专门程序接收所述音视频文件以向用户输出内容。所述内容可以包括视频、音频、文本数据和/或类似物。
目标客户端(4A、4B、…、4M)、观众终端(6A、6B、…、6N)和服务器2可以通过网络连接。网络可以包括各种网络设备,例如路由器、交换机、多路复用器、集线器、调制解调器、网桥、中继器、防火墙和/或代理设备等。网络可以包括物理链路,例如同轴电缆链路、双绞线电缆链路、光纤链路及其组合和/或类似物。网络可以包括无线链路,例如蜂窝链路、卫星链路、Wi-Fi链路和/或类似物。
下面通过多个实施例介绍本申请的技术方案。须知,这些实施例可以由多种不同的形式来实施,并且不应当被解释为只限于这里所阐述的实施例。
实施例一
图2示意性示出了根据本申请实施例一的流式转码方法的流程图。
如图2所示,该流式转码方法可应用在服务器2中,可以包括步骤S200~S204,其中:
步骤S200,获取目标客户端通过流式传输提供的目标视频的切片。其中,所述目标客户端用于:在对所述目标视频的切片过程中,每生成一个切片,则将所生成的切片实时上传至服务器。
步骤S202,每获取到一个切片,则根据预设转码格式对获取到的切片进行转码。
步骤S204,在所述目标视频的多个切片转码成功的情况下,合并转码后的多个切片,以获取目标转码视频。
本实施例提供的流式转码方法,由目标客户端对目标视频进行切片,并通过流式传输的方式将生成的切片上传到服务器。即,目标客户端每生成一个切片,就将生成的切片实时上传到服务器。相应地,服务器每接收到一个切片,就直接触发针对该切片的转码。在目标视频的所有切片均上传并转码完成后,合并转码后的多个切片,可以得到目标转码视频。可知,本申请实施例通过切片处理和流式传输可实现流式转码,使视频上传和转码计算能够做到重叠、并发执行,有效减少了总耗时,从而提高了整体效率。
以下结合图2,对步骤S200~S204中各个步骤以及可选的其他步骤进行详细阐述。
步骤S200,获取目标客户端通过流式传输提供的目标视频的切片。其中,所述目标客户端用于:在对所述目标视频的切片过程中,每生成一个切片,则将所生成的切片实时上传至服务器。
目标视频可以是目标客户端本地存储的视频,也可以是目标客户端当前时刻正在录制的、可用于实时直播的视频。目标客户端可以将视频一次性传输至服务器,服务器等待视频上传完成后可进行一次性转码。这个过程中,由于上传和转码是按顺序执行的,因此处理总耗时是上传耗时和转码耗时之和,这可能导致总耗时较长。特别是在目标视频较长时,可能会进一步增加整体处理时间。因此,为了减少耗时和提升整体效率,服务器也可以直接获取目标客户端通过流式传输提供的目标视频的切片。即,由目标客户端通过预设的切片算法(如均匀切片、不均匀切片等)对目标视频进行切片处理,每生成一个切片,就将所生成的切片实时上传到服务器。通过目标客户端进行切片处理可以减少对服务器资源的占用,加快服务器的转码速度。同时,通过目标客户端实时流式上传切片也可以降低服务器的等待时间,在获取到切片后立即执行转码,无需等待所有切片上传完成。
在本实施例中,服务器直接获取目标客户端通过流式传输提供的目标视频的切片,后续可对切片并行转码,无需等待整个视频上传完成再执行一次性转码,可以减少服务器的等待时间和计算资源占用,从而有效加快服务器转码速度。
需要说明的是,服务器也可以获取目标客户端通过流式传输提供的音频文件、大型数据集等的切片,并对切片进行转码等相应处理,从而有效提高不同应用场景下的整体处理效率。
步骤S202,每获取到一个切片,则根据预设转码格式对获取到的切片进行转码。
服务器每接收到一个流式传输的切片,即表示该切片已成功上传,服务器可以直接触发针对该切片的转码操作。在实际应用中,为了最小化服务器的等待时间,可以进一步降低对切片转码处理顺序的限制。举例而言,在前面的切片(上传时间较早的切片)没有上传完成的情况下,服务器如果先收到了后面的切片(上传时间较晚的切片),仍然可以立即启动对该切片的转码操作。这种灵活的转码处理方式允许服务器在接收到切片时立刻执行转码,无需等待前面的切片完全上传,有效降低视频整体转码的等待时间,优化整体处理效率。
服务器可以根据预设转码格式对获取到的切片进行转码。预设转码格式可以根据实际需求确定。示例性地,服务器可以根据观众终端的解码能力、网络情况、用户偏好、视频特性和内容需求等多种因素来确定预设转码格式。例如,为适应低网速环境的观看终端,服务器可以选择可降低切片分辨率、码率或帧率的转码格式。服务器可以将切片转码成满足特定需求的单一转码格式的切片,也可以一次性将同一切片转码为多个不同转码格式的切片,以适应不同平台或不同观众终端的需求。
在预设转码格式包括多个转码格式的情况下,可以制定多种转码方案来进一步提高转码效率,例如:多线程并行处理、预设转码模板、分布式转码等。下面提供一个示例性的方案。
在可选的实施例中,如图3所示,所述流式转码方法还可以包括:
步骤S300,在所述预设转码格式包括多个转码格式的情况下,根据预设规则确定每个转码格式对应的转码优先级。
步骤S302,根据多个转码格式各自对应的转码优先级,确定转码顺序。
步骤S304,根据所述转码顺序对获取到的切片进行对应多个转码格式的转码,以获取多个转码格式的切片。
针对多个转码格式,可以根据各个转码格式的请求频率、所需的计算资源,结合服务器网络环境、可用资源以及观众终端的性能,为每种转码格式分配相应的转码优先级。在确定好转码优先级后,可以指定多种转码格式的转码顺序,以此转码顺序对获取到的切片进行多格式转码操作,可以得到多种转码格式的切片。在实际应用中,服务器还可以根据实时的网络情况或用户请求等动态调整转码格式对应的转码优先级,以及整体的转码顺序,这样可以满足用户需求并最大程度的优化转码效率。
在本实施例中,为多个转码格式动态分配对应的转码优先级以确定多转码格式下的最佳切片转码顺序,可以进一步提升转码效率。
步骤S204,在所述目标视频的多个切片转码成功的情况下,合并转码后的多个切片,以获取目标转码视频。
当目标视频的所有切片均上传完成,并且每个切片的转码操作均已完成的情况下,服务器可以触发切片合并操作,将转码后的多个切片合并成目标转码视频。这个过程涉及到将每个切片按照一定的顺序进行合并,以保障生成的目标转码视频完整、可正常播放。目标转码视频可以存储在服务器中,在观众终端需要观看时,通过网络传输至观众终端。在一些实施例中,当服务器获取的切片数量达到一定数量并且已经转码完成的情况下,服务器可以合并这些切片,以实时提供给观众终端,以优化视频播放效果。
切片之间的顺序可通过多种方式确定,例如:时间戳、视频内容的逻辑关系、关键帧等。下面提供一个示例性方案。
在可选的实施例中,如图4所示,所述步骤S204可以包括:
步骤S400,获取所述目标客户端提供的播放列表。所述播放列表用于指示所述目标视频的多个切片以及多个切片之间的顺序关系,所述播放列表根据所述目标客户端的切片操作实时更新。
步骤S402,根据所述播放列表,合并转码后的多个切片,以获取所述预设转码格式的目标转码视频。
为了保障切片合并的准确性,服务器可以获取目标客户端提供的播放列表。目标客户端可以采用HLS或DASH对目标视频进行切片处理,将目标视频切分成多个小的切片,并生成一个用于记录切片的播放列表。可知,播放列表可以包括多个切片的描述信息,例如:切片之间的顺序关系、切片的地址、开始时间、结束时间、编码格式等。服务器通过解析播放列表,可以获知目标视频包括哪些切片以及多个切片的排列顺序,从而可以根据播放列表准确地合并转码后的多个切片,使得合并得到的目标转码视频完整、可正常播放。播放列表可以是对整个目标视频切片处理完成后生成,也可以是根据目标客户端的切片操作实时更新的,以便服务器能够持续获取目标视频最新切片的信息。
在本实施例中,获取播放列表并根据播放列表将转码后的切片进行合并,可以保障切片合并操作的准确性,进一步降低处理耗时。
实施例二
图5示意性示出了根据本申请实施例二的流式转码方法的流程图。
如图5所示,该流式转码方法可应用在目标客户端(如4A)中,可以包括步骤S500~S502,其中:
步骤S500,响应于针对目标视频的处理请求,对所述目标视频进行切片处理。
步骤S502,每生成一个切片,则将所生成的切片实时上传至服务器,以使服务器执行切片转码操作以及切片合并操作。每获取到一个切片,则根据预设转码格式对获取到的切片进行转码,并在所述目标视频的多个切片转码成功的情况下,合并转码后的多个切片,以生成目标转码视频。
本实施例提供的流式转码方法,由目标客户端对目标视频进行切片,并通过流式传输的方式将生成的切片上传到服务器。即,目标客户端每生成一个切片,就将生成的切片实时上传到服务器,可以使服务器:每接收到一个切片,就直接触发针对该切片的转码。在目标视频的所有切片均上传并转码完成后,合并转码后的多个切片,可以得到目标转码视频。可知,本申请实施例通过切片处理和流式传输可实现流式转码,使视频上传和转码计算能够做到重叠、并发执行,有效减少了总耗时,从而提高了整体效率。
目标客户端可以通过多种方式对目标视频进行切片处理。下面将提供多个示例性的实施例。
在可选的实施例中,切片通过预设剪辑工具实时导出,其中,所述实时导出包括每生成一个切片,则实时导出所生成的切片。
为了进一步优化整体处理效率,目标客户端可以使用剪辑工具(剪辑软件)导出视频并上传视频的过程,优化为通过剪辑工具直接导出切片及播放列表,剪辑工具每导出一个切片,则将该导出的切片实时上传到服务器,从而做到边导出、边上传、边转码,进一步减少总耗时,提升稿件转码速度和整体效率。
在本实施例中,通过剪辑工具直接导出切片并将切片实时上传,无需从剪辑工具导出视频整体,优化了处理过程,达到了进一步提速的效果。
在可选的实施例中,切片的描述信息可以被记录在播放列表中。所述流式转码方法还可以包括:每生成一个切片,则实时更新所述播放列表,以新增记录所生成的切片的描述信息;及将更新后的播放列表上传至服务器,以使服务器基于更新后的播放列表进行切片合并操作;其中,切片的描述信息用于描述对应的切片以及指示该对应的切片在多个切片中的顺序。
示例性地,目标客户端可以采用HLS或DASH对目标视频进行切片处理,将目标视频切分成多个小的切片,并生成一个播放列表。其中,播放列表可用于记录切片的描述信息,例如:切片的地址、开始时间、结束时间、编码格式,、切片在多个切片中的顺序等。播放列表可以是在对整个目标视频切片处理完成后生成,也可以是根据目标客户端的切片操作实时更新的。例如,每生成一个切片,就将所生成的切片的描述信息新增到播放列表中,以实时更新播放列表。通过流式传输将每次更新后的播放列表上传到服务器,以使服务器能够持续地获取目标视频最新切片的信息,并根据更新后的播放列表对进行切片合并操作。
在本实施例中,通过目标客户端实时更新并上传更新后的播放列表,可以提高服务器切片合并的准确性。
在可选的实施例中,如图6所示,所述流式转码方法还可以包括:
步骤S600,根据预设规则,调整目标切片算法。
步骤S602,根据所述目标切片算法,对所述目标视频进行切片处理。
目标切片算法可以包括基于视频内容特征、时间段或码率等的切片算法。其中,基于视频内容特征的切片算法可以是根据视频场景、镜头切换、关键帧等内容特征进行不均匀切片,以保障每个切片的内容完整性。基于时间段的切片算法可以是等时均匀切片或自定义的非均匀时间切片。目标客户端可以根据网络环境、计算能力,结合服务器负载或观众需求,实时调整切片处理所使用的目标切片算法,以满足不同应用场景的需求。
在本实施例中,通过实时动态调整切片处理所使用的目标切片算法,可以保障切片生产和传输的稳定性和流畅性。
下面提供一个示例性的方案。
在可选的实施例中,步骤S602可以包括:根据目标视频的视频内容,将所述目标视频分为多个视频段;对所述多个视频段并行切片。
举例而言,可以应用机器学习或计算机视觉等技术对目标视频进行内容分析,以识别场景转换、镜头切换、特定动作或关键帧等变化点,并标记这些适合进行视频分割的位置。通过这些预定义的标记,将目标视频分割为多个视频段。之后可以采用多线程并行对这些视频段进行切片处理,可以提高切片处理效率和速度,同时保障切片的质量和完整性,加快了整体处理效率。
在可选的实施例中,所述流式转码方法还可以包括:确定并发度,所述并发度用于指示同一时刻下切片的最大上传数量;在满足所述并发度的情况下,向服务器发送切片。
在实际应用中,可以根据目标客户端的性能、网络带宽等,结合服务器负载,设定合适的并发度,以确定同一时刻下切片的最大上传数量,从而可以减少因同时上传的切片过多造成的系统卡顿或网络拥塞。在满足并发度限制的情况下,目标客户端可以将切片逐个或批量地上传到服务器。需要说明的是,可以根据实际情况,动态地调整并发度,以优化上传效率和保障系统稳定性。这样可以灵活地应对网络变化或服务器负载造成的播放。
在本实施例中,根据预设的并发度以合适的方式管理和控制切片的上传,在系统负载和网络状况允许的情况下,可以高效地向服务器发送切片。
为了使得本申请更加容易理解,以下结合图7-9提供一个示例性应用。
S11,用户(通过目标客户端)进行投稿时,可以直接上传整个稿件(如目标视频),上传完成后服务器开始处理。也可以在用户侧(目标客户端)先生成切片以及播放列表,并发上传切片。其中,播放列表可以符合HLS或DASH的标准,也可以自定义。播放列表可用于描述目标视频包括哪些切片以及切片之间的顺序等关键信息。
S12,服务器(稿件处理侧,提供稿件处理服务)每接收到一个上传完成的切片,即可直接触发此切片的转码。
S13,切片上传不要求顺序,服务器先接受到后面的切片,即前面的切片没有上传完成的情况下,仍然可以触发此切片的转码。
其中,切片上传可以设定并发度,以缓解因同时上传过多切片,造成系统卡顿或网络拥塞。
S14,所有切片均上传完成,并且转码完成后,服务器触发切片合并操作,以生成最终的输出(目标转码视频)。
S15,用户使用剪辑软件(剪辑工具)投稿时,从剪辑软件中导出稿件的速度非常缓慢。因此,可以通过剪辑软件直接导出切片,每导出一个切片均可以实时上传。复用S12~14的流程,可以达到进一步提速的效果。
在该示例性应用中:(1)在用户侧先进行流式切片,将原始稿件切片为播放列表及切片的形式(包括但不限于HLS或DASH)。播放列表及切片可以为流式按序生成,每生成一个切片就可以立刻上传,每上传完一个切片就可以立刻执行转码,从而使上传、转码能够做到重叠、并发进行,大大减少耗时;(2)针对用户侧不支持流式切片的情况,服务器也可以进行流式切片,从而使系统能够向前兼容;(3)将用户侧使用剪辑工具(剪辑软件)导出视频并上传视频的过程,优化为通过剪辑工具直接导出播放列表及切片,从而做到边导出、边上传、边转码,进一步减少总耗时,提升稿件转码速度和整体效率。
实施例三
图10示意性示出了根据本申请实施例二的流式转码装置的框图,该装置应用于服务器,可以被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本申请实施例。本申请实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,以下描述将具体介绍本实施例中各程序模块的功能。如图10所示,该装置1000可以包括:获取模块1100、转码模块1200、合并模块1300,其中:
获取模块1100,用于获取目标客户端通过流式传输提供的目标视频的切片,其中,所述目标客户端用于:在对所述目标视频的切片过程中,每生成一个切片,则将所生成的切片实时上传至服务器;
转码模块1200,用于每获取到一个切片,则根据预设转码格式对获取到的切片进行转码;
合并模块1300,用于在所述目标视频的多个切片转码成功的情况下,合并转码后的多个切片,以获取目标转码视频。
作为可选的实施例,所述合并模块1300还用于:
获取所述目标客户端提供的播放列表,所述播放列表用于指示所述目标视频的多个切片以及多个切片之间的顺序关系,所述播放列表根据所述目标客户端的切片操作实时更新;
根据所述播放列表,合并转码后的多个切片,以获取所述预设转码格式的目标转码视频。
作为可选的实施例,所述预设转码格式包括一个或多个转码格式;所述转码模块还用于:
在所述预设转码格式包括多个转码格式的情况下,根据预设规则确定每个转码格式对应的转码优先级;
根据多个转码格式各自对应的转码优先级,确定转码顺序;
根据所述转码顺序对获取到的切片进行对应多个转码格式的转码,以获取多个转码格式的切片。
实施例四
图11示意性示出了根据本申请实施例二的流式转码装置的框图,该装置应用于客户端,可以被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本申请实施例。本申请实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,以下描述将具体介绍本实施例中各程序模块的功能。如图11所示,该装置2000可以包括:切片模块2100、上传模块2200,其中:
切片模块2100,用于响应于针对目标视频的处理请求,对所述目标视频进行切片处理;
上传模块2200,用于每生成一个切片,则将所生成的切片实时上传至服务器,以使服务器每获取到一个切片,则根据预设转码格式对获取到的切片进行转码,并在所述目标视频的多个切片转码成功的情况下,合并转码后的多个切片,以生成目标转码视频。
作为可选的实施例,切片通过预设剪辑工具实时导出,其中,所述实时导出包括每生成一个切片,则实时导出所生成的切片。
作为可选的实施例,切片的描述信息被记录在播放列表中;所述装置2000还用于:
每生成一个切片,则实时更新所述播放列表,以新增记录所生成的切片的描述信息;及
将更新后的播放列表上传至服务器,以使服务器基于更新后的播放列表进行切片合并操作;
其中,切片的描述信息用于描述对应的切片以及指示该对应的切片在多个切片中的顺序。
作为可选的实施例,所述装置2000还用于:
根据预设规则,调整目标切片算法;
根据所述目标切片算法,对所述目标视频进行切片处理。
作为可选的实施例,所述装置2000还用于:
根据目标视频的视频内容,将所述目标视频分为多个视频段;
对所述多个视频段并行切片。
作为可选的实施例,所述装置2000还用于:
确定并发度,所述并发度用于指示同一时刻下切片的最大上传数量;
在满足所述并发度的情况下,向服务器发送切片。
实施例五
图12示意性示出了根据本申请实施例三的适于实现流式转码方法的计算机设备10000的硬件架构示意图。在一些实施例中,计算机设备10000可以是智能手机、可穿戴设备、平板电脑、个人电脑、车载终端、游戏机、虚拟设备、工作台、数字助理、机顶盒、机器人等终端设备。在另一些实施例中,计算机设备10000可以是机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或多个服务器所组成的服务器集群)等。如图12所示,所述计算机设备10000包括但不限于:可通过系统总线相互通信链接存储器10010、处理器10020、网络接口10030。其中:
存储器10010至少包括一种类型的计算机可读存储介质,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(如,SD或DX存储器)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器10010可以是计算机设备10000的内部存储模块,例如该计算机设备10000的硬盘或内存。在另一些实施例中,存储器10010也可以是计算机设备10000的外部存储设备,例如该计算机设备10000上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器10010还可以既包括计算机设备10000的内部存储模块也包括其外部存储设备。本实施例中,存储器10010通常用于存储安装于计算机设备10000的操作系统和各类应用软件,例如流式转码方法的程序代码等。此外,存储器10010还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器10020在一些实施例中可以是中央处理器(Centra lProcessing Unit,CPU)、控制器、微控制器、微处理器、或其他芯片。该处理器10020通常用于控制计算机设备10000的总体操作,例如执行与计算机设备10000进行数据交互或者通信相关的控制和处理等。本实施例中,处理器10020用于运行存储器10010中存储的程序代码或者处理数据。
网络接口10030可包括无线网络接口或有线网络接口,该网络接口10030通常用于在计算机设备10000与其他计算机设备之间建立通信链接。例如,网络接口10030用于通过网络将计算机设备10000与外部终端相连,在计算机设备10000与外部终端之间建立数据传输通道和通信链接等。网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(Globa lSystem ofMobile communication,简称为GSM)、宽带码分多址(WidebandCode Division Multiple Access,简称为WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。
需要指出的是,图12仅示出了具有部件10010-10030的计算机设备,但是应该理解的是,并不要求实施所有示出的部件,可以替代地实施更多或者更少的部件。
在本实施例中,存储于存储器10010中的流式转码方法还可以被分割为一个或者多个程序模块,并由一个或多个处理器(如处理器10020)所执行,以完成本申请实施例。
实施例六
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质其上存储有计算机程序,其中,计算机程序被处理器执行时实现实施例中的流式转码方法的步骤。
本实施例中,计算机可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,计算机可读存储介质可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,计算机可读存储介质也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,计算机可读存储介质还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,计算机可读存储介质通常用于存储安装于计算机设备的操作系统和各类应用软件,例如实施例中流式转码方法的程序代码等。此外,计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的各类数据。
显然,本领域的技术人员应该明白,上述的本申请实施例的各模块或各步骤可以用通用的计算机设备来实现,它们可以集中在单个的计算机设备上,或者分布在多个计算机设备所组成的网络上,可选地,它们可以用计算机设备可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算机设备来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请实施例不限制于任何特定的硬件和软件结合。
需要说明的是,以上仅为本申请的优选实施例,并非因此限制本申请的专利保护范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (13)
1.一种流式转码方法,其特征在于,应用于服务器,所述方法包括:
获取目标客户端通过流式传输提供的目标视频的切片,其中,所述目标客户端用于:在对所述目标视频的切片过程中,每生成一个切片,则将所生成的切片实时上传至服务器;
每获取到一个切片,则根据预设转码格式对获取到的切片进行转码;
在所述目标视频的多个切片转码成功的情况下,合并转码后的多个切片,以获取目标转码视频。
2.根据权利要求1所述的方法,其特征在于,所述合并转码后的多个切片,以获取目标转码视频,包括:
获取所述目标客户端提供的播放列表,所述播放列表用于指示所述目标视频的多个切片以及多个切片之间的顺序关系,所述播放列表根据所述目标客户端的切片操作实时更新;
根据所述播放列表,合并转码后的多个切片,以获取所述预设转码格式的目标转码视频。
3.根据权利要求1所述的方法,其特征在于,所述预设转码格式包括一个或多个转码格式;所述根据预设转码格式对获取到的切片进行转码,包括:
在所述预设转码格式包括多个转码格式的情况下,根据预设规则确定每个转码格式对应的转码优先级;
根据多个转码格式各自对应的转码优先级,确定转码顺序;
根据所述转码顺序对获取到的切片进行对应多个转码格式的转码,以获取多个转码格式的切片。
4.一种流式转码方法,其特征在于,应用于客户端,所述方法包括:
响应于针对目标视频的处理请求,对所述目标视频进行切片处理;
每生成一个切片,则将所生成的切片实时上传至服务器,以使服务器每获取到一个切片,则根据预设转码格式对获取到的切片进行转码,并在所述目标视频的多个切片转码成功的情况下,合并转码后的多个切片,以生成目标转码视频。
5.根据权利要求4所述的方法,其特征在于,切片通过预设剪辑工具实时导出,其中,所述实时导出包括每生成一个切片,则实时导出所生成的切片。
6.根据权利要求4所述的方法,其特征在于,切片的描述信息被记录在播放列表中;所述方法还包括:
每生成一个切片,则实时更新所述播放列表,以新增记录所生成的切片的描述信息;及
将更新后的播放列表上传至服务器,以使服务器基于更新后的播放列表进行切片合并操作;
其中,切片的描述信息用于描述对应的切片以及指示该对应的切片在多个切片中的顺序。
7.根据权利要求4所述的方法,其特征在于,还包括:
根据预设规则,调整目标切片算法;
根据所述目标切片算法,对所述目标视频进行切片处理。
8.根据权利要求7所述的方法,其特征在于,所述根据目标切片算法,对所述目标视频进行切片处理,包括:
根据目标视频的视频内容,将所述目标视频分为多个视频段;
对所述多个视频段并行切片。
9.根据权利要求4至8任意一项所述的方法,其特征在于,还包括:
确定并发度,所述并发度用于指示同一时刻下切片的最大上传数量;
在满足所述并发度的情况下,向服务器发送切片。
10.一种流式转码装置,其特征在于,应用于服务器,所述装置包括:
获取模块,用于获取目标客户端通过流式传输提供的目标视频的切片,其中,所述目标客户端用于:在对所述目标视频的切片过程中,每生成一个切片,则将所生成的切片实时上传至服务器;
转码模块,用于每获取到一个切片,则根据预设转码格式对获取到的切片进行转码;
合并模块,用于在所述目标视频的多个切片转码成功的情况下,合并转码后的多个切片,以获取目标转码视频。
11.一种流式转码装置,其特征在于,应用于客户端,所述装置包括:
切片模块,用于响应于针对目标视频的处理请求,对所述目标视频进行切片处理;
上传模块,用于每生成一个切片,则将所生成的切片实时上传至服务器,以使服务器每获取到一个切片,则根据预设转码格式对获取到的切片进行转码,并在所述目标视频的多个切片转码成功的情况下,合并转码后的多个切片,以生成目标转码视频。
12.一种计算机设备,其特征在于,包括:
至少一个处理器;及
与所述至少一个处理器通信连接的存储器;其中:
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1至9中任一项所述的方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机指令,所述计算机指令被处理器执行时实现如权利要求1至9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311816234.9A CN117793362A (zh) | 2023-12-26 | 2023-12-26 | 流式转码方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311816234.9A CN117793362A (zh) | 2023-12-26 | 2023-12-26 | 流式转码方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117793362A true CN117793362A (zh) | 2024-03-29 |
Family
ID=90392294
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311816234.9A Pending CN117793362A (zh) | 2023-12-26 | 2023-12-26 | 流式转码方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117793362A (zh) |
-
2023
- 2023-12-26 CN CN202311816234.9A patent/CN117793362A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6469788B2 (ja) | メディアコンテンツの適応型ストリーミングのための品質情報の使用 | |
CN108989885B (zh) | 视频文件转码系统、分割方法、转码方法及装置 | |
US9288250B2 (en) | Mobile multimedia real-time transcoding system, apparatus, storage medium and method | |
US20140165119A1 (en) | Offline download method, multimedia file download method and system thereof | |
US20220385989A1 (en) | Video playing control method and system | |
JP2011170640A (ja) | キャッシュサーバ制御装置、コンテンツ配信システム、コンテンツ配信方法、及びプログラム | |
US20210320957A1 (en) | Method of requesting video, computing device, and computer-program product | |
CN111726651A (zh) | 一种基于hils协议的音视频流直播方法及系统 | |
CN111970565A (zh) | 视频数据处理方法、装置、电子设备及存储介质 | |
CN113727189A (zh) | 支持多种流媒体传输协议的媒体播放方法和系统 | |
CN112243158A (zh) | 媒体文件处理方法、装置及电子设备 | |
CN108737355B (zh) | 基于用户带宽的流媒体播放 | |
CN110602555B (zh) | 视频转码方法及装置 | |
CN117793362A (zh) | 流式转码方法和装置 | |
CN113766255B (zh) | 视频流合并方法、装置、电子设备及计算机介质 | |
JP2020113922A (ja) | 動画配信装置、動画配信方法及びプログラム | |
US20230388590A1 (en) | Playback optimization method and system | |
US10986156B1 (en) | Quality prediction apparatus, quality prediction method and program | |
US11523156B2 (en) | Method and system for distributing an audiovisual content | |
US20230089154A1 (en) | Virtual and index assembly for cloud-based video processing | |
CN111711826B (zh) | 视频直播服务系统及方法 | |
CN117714815A (zh) | 直播时移方法和装置 | |
CN115802118A (zh) | 直播视频的时移回看方法及装置 | |
CN112911410A (zh) | 一种在线视频处理方法及装置 | |
CN117857517A (zh) | 数据处理方法、协议转换方法、装置、设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |