CN115134622B - 视频数据对齐方法、装置、设备及存储介质 - Google Patents
视频数据对齐方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN115134622B CN115134622B CN202210759960.0A CN202210759960A CN115134622B CN 115134622 B CN115134622 B CN 115134622B CN 202210759960 A CN202210759960 A CN 202210759960A CN 115134622 B CN115134622 B CN 115134622B
- Authority
- CN
- China
- Prior art keywords
- image group
- aligned
- audio
- time
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 60
- 238000004519 manufacturing process Methods 0.000 claims abstract description 68
- 230000011218 segmentation Effects 0.000 claims abstract description 40
- 230000008569 process Effects 0.000 claims description 19
- 238000004891 communication Methods 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 7
- 238000012545 processing Methods 0.000 description 8
- 102100037812 Medium-wave-sensitive opsin 1 Human genes 0.000 description 6
- 238000012546 transfer Methods 0.000 description 5
- 101000946275 Homo sapiens Protein CLEC16A Proteins 0.000 description 4
- 102100034718 Protein CLEC16A Human genes 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
- H04N21/2187—Live feed
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/234309—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4 or from Quicktime to Realvideo
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8456—Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/85—Assembly of content; Generation of multimedia applications
- H04N21/854—Content authoring
- H04N21/8547—Content authoring involving timestamps for synchronizing content
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请涉及一种视频数据对齐方法、装置、设备及存储介质。本申请方案,基于待对齐图像组中的对齐参数确定待对齐图像组的切分位置、在所属的一路直播码流中的音频播放时间和视频播放时间,从而实现对视频数据的对齐。由于以转码服务器上的编码生产虚拟时间轴作为切分位置和时间戳生产的基础,并且待对齐图像组中携带索引号,所以,当转码或任何一路切片任务中断启动时,无论何时启动切片,都可以实时感知待对齐图像组在转码生产虚拟时间轴上的位置,从而多路同步地确定切分位置并修正时间戳,精准实现在直播场景下,对不同清晰度的直播码流的对齐,具备强鲁棒性和抗干扰性。
Description
技术领域
本申请涉及计算机领域,尤其涉及一种视频数据对齐方法、装置、设备及存储介质。
背景技术
近年来,HLS(HTTP Live Streaming,超文本直播流)协议在流媒体领域得到了广泛应用,该协议采用HTTP传输,可以根据网络带宽自适应调整码率,即允许服务器为同一节目内容存放多个不同分辨率的多媒体流,终端可根据实际网络下载速度自适应调整所要下载多媒体流的码率,在网络带宽紧张时,终端可通过降低分辨率实现不间断播放。
当前,HLS(HTTP Live Streaming,超文本直播流)协议为实现直播业务的主流技术。基于HLS协议进行视频直播,可以解决视频直播时出现的卡顿问题。比如,在地铁等网络波动明显的场景下,看视频直播卡顿总会发生,这时候通过切换到清晰度低的多媒体流,可以很好的避免卡顿的发生。
然而,由于不同清晰度的多媒体流的切片通常分布在不同的服务器中,或分布在同一服务器的不同任务进程中,所以在视频直播的场景下,当进行不同清晰度的多媒体流的切换时,会出现不同清晰度的多媒体流的切片以及音视频时间戳无法精确对齐的问题。
发明内容
本申请提供了一种视频数据对齐方法、装置、设备及存储介质,用以解决相关技术中由于不同清晰度的多媒体流的切片通常分布在不同的服务器中,或分布在同一服务器的不同任务进程中,所以会出现不同清晰度的多媒体流的切片以及音视频时间戳无法精确对齐的问题。
第一方面,提供一种视频数据对齐方法,包括:
获取一路直播码流中的待对齐图像组,所述一路直播码流为转码服务器转码得到的N路直播码流中的任意一路直播码流,所述N路直播码流中任意两路直播码流的清晰度不同;
解析所述待对齐图像组,获取所述待对齐图像组的对齐参数,所述对齐参数包括所述待对齐图像组的索引号和起始基准时间,所述起始基准时间为所述N路直播码流中首帧视频帧在编码生产虚拟时间轴上的转码完成时刻;
按照所述待对齐图像组的索引号,确定所述待对齐图像组在所述一路直播码流中的切分位置;
基于所述切分位置和所述对齐参数,确定所述待对齐图像组的音频播放时间和视频播放时间。
可选地,按照所述对齐参数,确定所述待对齐图像组在所述一路直播码流中的切分位置,包括:
获取所述待对齐图像组的图像组时长;
基于预先设定的切片时长和所述图像组时长,确定切片周期时长;
基于所述切片周期时长和所述待对齐图像组的索引号,确定所述切分位置。
可选地,基于所述切片周期时长和所述待对齐图像组的索引号,确定所述切分位置,包括:
计算所述待对齐图像组的索引号与所述图像组时长的乘积,得到所述待对齐图像组在所述编码生产虚拟时间轴上的编码时间偏移;
获取所述编码时间偏移除以所述切片周期时长所得的商值和余数值;
基于所述商值确定所述待对齐图像所属的切片的序号、以及基于所述余数值确定所述待对齐图像组在所述所属的切片中的位置;
将所述切片的序号和在所述所属的切片中的位置,作为所述切分位置。
可选地,基于所述切分位置和所述对齐参数,确定所述待对齐图像组的视频播放时间,包括:
基于所述切分位置,获取所述待对齐图像组所属的切片中第一个图像组的起始视频帧的索引号;
基于所述起始基准时间、所述起始视频帧的索引号和所述待对齐图像组的图像组时长,确定所述起始视频帧在所述编码生产虚拟时间轴上的时间偏移量;
对于所述待对齐图像组中的每个视频帧,采用所述时间偏移量,分别修正所述每个视频帧的视频编码时间戳和视频显示时间戳,得到与所述视频编码时间戳对应的修正后视频编码时间戳、以及与所述视频显示时间戳对应的修正后视频显示时间戳;
将所述修正后视频编码时间戳和所述修正后视频显示时间戳,作为所述每个视频帧的视频时间戳;
将所述待对齐图像组中所有视频帧的视频时间戳所指示的播放时间,作为所述待对齐图像组的视频播放时间。
可选地,基于所述起始基准时间、所述起始视频帧的索引号和所述待对齐图像组的图像组时长,确定所述起始视频帧在所述编码生产虚拟时间轴上的时间偏移量,包括:
计算所述待对齐图像组的索引号和所述待对齐图像组的图像组时长的乘积,得到所述待对齐图像组在所述编码生产虚拟时间轴上的编码时间偏移;
对所述编码时间偏移和所述其实基准时间进行求和运算,并将求和运算的结果作为所述时间偏移量。
可选地,对于所述待对齐图像组中的每个视频帧,采用所述时间偏移量,分别修正所述每个视频帧的视频编码时间戳和视频显示时间戳,得到与所述视频编码时间戳对应的修正后视频编码时间戳、以及与所述视频显示时间戳对应的修正后视频显示时间戳,包括:
计算所述视频编码时间戳和所述时间偏移量之和,得到第一求和结果;以及,计算所述视频显示时间和所述时间偏移量之和,得到第二求和结果;
将所述第一求和结果作为所述修正后视频编码时间戳,以及,将所述第二求和结果作为所述修正后视频显示时间戳。
可选地,基于所述切分位置和所述对齐参数,确定所述待对齐图像组的音频播放时间,包括:
获取所述一组直播码流中任一音频帧的音频帧帧长;以及,基于所述切分位置,获取所述待对齐图像组所属的切片中第一个图像组的起始视频帧的索引号;
基于所述音频帧帧长、所述起始视频帧的索引号和所述待对齐图像组的图像组时长,计算所述所属的切片中首个音频帧在所述编码生产虚拟时间轴上的偏移帧序号;
基于所述起始基准时间、所述偏移帧序号和所述音频帧帧长,计算所述首个音频帧在所述编码生产虚拟时间轴上的音频时间戳;
对于所述待对齐图像组中的每个音频帧,采用所述编码生产虚拟时间轴上的音频时间戳,分别修正所述每个音频帧的音频编码时间戳和音频显示时间戳,得到与所述音频编码时间戳对应的修正后音频编码时间戳、以及与所述音频显示时间戳对应的修正后音频显示时间戳;
将所述修正后音频编码时间戳和所述修正后音频显示时间戳,作为所述每个音频帧的音频时间戳;
将所述对齐图像组中所有音频帧的音频时间戳所指示的播放时间,作为所述待对齐图像组的音频播放时间。
可选地,基于所述音频帧帧长、所述起始视频帧的索引号和所述待对齐图像组的图像组时长,计算所述所属的切片中首个音频帧在所述编码生产虚拟时间轴上的偏移帧序号,包括:
计算所述起始视频帧的索引号与所述图像组时长的乘积,得到所述待对齐图像组在所述编码生产虚拟时间轴上的编码时间偏移;
采用所述编码时间偏移对所述音频帧帧长向下取整,得到取整结果;
将所述取整结果加1,得到所述偏移帧序号。
可选地,基于所述起始基准时间、所述偏移帧序号和所述音频帧帧长,计算所述首个音频帧在所述编码生产虚拟时间轴上的音频时间戳,包括:
计算所述偏移帧序号和所述音频帧帧长的乘积,得到所述首个音频帧的音频编码时长;
对所述音频编码时长和所述起始基准时间求和,得到所述首个音频帧在所述编码生产虚拟时间轴上的音频时间戳。
第二方面,提供一种视频数据对齐方法,包括:
获取待转码的输入流;
在将所述输入流转码为N路直播码流的过程中,获取所述N路直播码流的起始基准时间,所述起始基准时间为所述N路直播码流中首帧视频帧在编码生产虚拟时间轴上的转码完成时刻,所述N路直播码流中任意两路直播码流的清晰度不同;以及,对于所述N路直播码流中的每路直播码流,获取所述每路直播码流中各图像组的索引号,所述每路直播码流中的图像组的索引号基于转码顺序按递增规律编号;
对于所述每路直播码流中的任意一个图像组,在所述任意一个图像组中附着对齐参数,所述对齐参数包括所述任意一个图像组的索引号和所述起始基准时间。
第三方面,提供一种视频数据对齐装置,包括:
第一获取单元,用于获取一路直播码流中的待对齐图像组,所述一路直播码流为转码服务器转码得到的N路直播码流中的任意一路直播码流,所述N路直播码流中任意两路直播码流的清晰度不同;
解析单元,用于解析所述待对齐图像组,获取所述待对齐图像组的对齐参数,所述对齐参数包括所述待对齐图像组的索引号和起始基准时间,所述起始基准时间为所述N路直播码流中首帧视频帧在编码生产虚拟时间轴上的转码完成时刻;
第一确定单元,用于按照所述待对齐图像组的索引号,确定所述待对齐图像组在所述一路直播码流中的切分位置;
第二确定单元,用于基于所述切分位置和所述对齐参数,确定所述待对齐图像组的音频播放时间和视频播放时间。
第四方面,提供一种视频数据对齐装置,包括:
第二获取单元,用于获取待转码的输入流;
第三获取单元,用于在将所述输入流转码为N路直播码流的过程中,获取所述N路直播码流的起始基准时间,所述起始基准时间为所述N路直播码流中首帧视频帧在编码生产虚拟时间轴上的转码完成时刻,所述N路直播码流中任意两路直播码流的清晰度不同;以及,对于所述N路直播码流中的每路直播码流,获取所述每路直播码流中各图像组的索引号,所述每路直播码流中的图像组的索引号基于转码顺序按递增规律编号;
附着单元,用于对于所述每路直播码流中的任意一个图像组,在所述任意一个图像组中附着对齐参数,所述对齐参数包括所述任意一个图像组的索引号和所述起始基准时间。
第五方面,提供一种电子设备,包括:处理器、存储器和通信总线,其中,处理器和存储器通过通信总线完成相互间的通信;
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述存储器中所存储的程序,实现第一方面或第二方面所述的方法。
第六方面,提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现第一方面或第二方面所述的方法。
本申请实施例提供的上述技术方案与现有技术相比具有如下优点:本申请实施例提供的技术方案中,基于待对齐图像组中的对齐参数确定待对齐图像组的切分位置、在所属的一路直播码流中的音频播放时间和视频播放时间,从而实现对视频数据的对齐。由于以转码服务器上的编码生产虚拟时间轴作为切分位置和时间戳生产的基础,并且待对齐图像组中携带索引号,所以,当转码或任何一路切片任务中断启动时,无论何时启动切片,都可以实时感知待对齐图像组在转码生产虚拟时间轴上的位置,从而多路同步地确定切分位置并修正时间戳,精准实现在直播场景下,对不同清晰度的直播码流的对齐,具备强鲁棒性和抗干扰性。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例中视频数据对齐方法的一种流程示意图;
图2为本申请实施例中视频数据对齐方法的又一种流程示意图;
图3为本申请实施例中视频数据对齐装置的一种结构示意图;
图4为本申请实施例中视频数据对齐装置的又一种结构示意图;
图5为本申请实施例中电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请实施例提供一种视频数据对齐方法,该方法可应用于切片服务器,如图1所示,该方法可包括以下步骤:
步骤101、获取一路直播码流中的待对齐图像组,一路直播码流为转码服务器转码得到的N路直播码流中的任意一路直播码流,N路直播码流中任意两路直播码流的清晰度不同;
步骤102、解析待对齐图像组,获取待对齐图像组的对齐参数,对齐参数包括待对齐图像组的索引号和起始基准时间,起始基准时间为N路直播码流中首帧视频帧在编码生产虚拟时间轴上的转码完成时刻;
步骤103、按照待对齐图像组的索引号,确定待对齐图像组在一路直播码流中的切分位置;
步骤104、基于切分位置和对齐参数,确定待对齐图像组的音频播放时间和视频播放时间。
应用中,切片服务器可以从转码服务器或中转服务器上拉流,以获取待对齐图像组。当切片从中转服务器上拉流时,转码服务器对输入流进行转码得到一路直播码流后,将一路直播码流上传至中转服务器,以便切片服务器从中转服务器上拉流。
应理解,切片服务器可以对一路直播码流或多路直播码流进行切片处理,得到满足HLS直播规则的切片数据。当切片服务器对多路直播码流进行切片处理时,由切片服务器中不同的进程分别对不同的直播码流进行切片处理。
本实施例中,切片服务器中的直播码流以GOP(图像组)的形式进行存储,每个GOP由一个关键帧和多个非关键帧构成,并且,GOP中的每个视频帧对应有视频时间戳,该视频时间戳表示该视频帧的播放时间。例如,视频帧1对应的视频时间戳为1s,视频帧2对应的视频时间戳为2s,则视频帧1在第1s播放,视频帧2在第2s播放。
本实施例中,切片服务器以GOP(图像组)为最小单位对直播码流进行切片处理。考虑到实际应用时,切片服务器存在故障重启的可能,如果单纯的依据接收的GOP进行切片处理,会导致不同切片服务器上的直播码流难以对齐。比如当在第一切片服务器上对第一清晰度的直播码流进行切片处理时,确定GOP1属于第五个切片,而当第二清晰度的直播码流在第二切片服务器进行处理时,若第二切片服务器在接收GOP1之前发生过故障并导致关机重启,那么由于关机过程会使得第二切片服务器漏获取很多GOP,所以在重启并获取GOP1之后,所确定的GOP1就不再属于第五个切片,而是属于第五个切片之前的某个切片,比如属于第三个切片。为了解决这一问题,本实施例在转码服务器侧对每个GOP添加索引号(gop_index),以便切片服务器在拉取GOP后,能够基于GOP的索引号确定GOP的切分位置。
具体实现时,一个可选实施例中,获取待对齐图像组的图像组时长;基于预先设定的切片时长和图像组时长,确定切片周期时长;基于切片周期时长和待对齐图像组的索引号,确定切分位置。
本实施例中,为了便于不同直播码流的切片数据的对齐,在不同直播码流中,不同GOP的图像组时长(gop_time)固定。为了提高视频数据的对齐效率,切片服务器在下载到第一个GOP后,计算第一个GOP的gop_time,并将第一个GOP进行缓存。当需要获取待对齐图像组的图像组时长时,获取第一个GOP的gop_time,并将第一个GOP的gop_time作为待对齐图像组的图像组时长。应理解,这里的第一GOP指的是切片服务器启动后所下载的第一个GOP,在切片服务器未出现故障的情况下,第一GOP的gop_index=0,而如果切片服务器在拉流并切片的过程中出现故障并进行了重启,这里的第一GOP的gop_index则不一定为0。
本实施例中,切片时长为人为根据业务需要预先设置的。比如可以设置切片时长为5s或者6s,等等。不同路(不同清晰度)切片的切片时长是一样的。
本实施例中,切片周期时长反映了切分规律。切片周期时长为切片时长与图像组时长的最小公倍数。例如,切片时长segment_time为5s,gop_time为2s,那么切片周期时长为5*2=10s。
以切片时长为5s,gop_time为2s为例,说明切片周期时长反映的切分规律。由于每个切片所包含的GOP必须是完整的GOP,所以在这个例子中,只能保证一个切片周期中切片的平均时间为5s。进一步地所得到的切分规律可以为6s,4s,6s,4s,其中6s的片包含3个GOP,4s的片包含2个GOP,第一个6s的切片和4s的切片构成第一个切片周期,第二个6s的切片和4s的切片构成第二个切片周期。
本实施例中,由于待对齐图像组的索引号指示待对齐对象组在编码生产虚拟时间轴上的编码时间偏移,因此结合切片周期时长可以准确的确定出待对齐图像组的切分位置。应理解,这里的切分位置包括待对齐图像组所属的切片的序号以及待对齐图像组在所属的切片中的位置。
本实施例中,待对齐图像组在所属的切片中的位置,指示待对齐图像组在一路直播码流中位于第几个切片,比如待对齐图像组在一路直播码流中位于第三个切片;待对齐图像在所属的切片中的位置指示待对齐图像组为所属的切片中的第几个图像组,比如待对齐图像组为所属的切片中的第二个图像组。
本实施例中,为了方便获取,待对齐图像组的索引号附着在待对齐图像组的关键帧中。应用中,转码服务器对输入流进行转码时,都是按照一个个的GOP进行转码的,在转码的过程中,转码服务器会将索引号作为参数信息封装成SEI数据单元,并将SEI数据单元附着在图像组的关键帧中。应理解,SEI是H265/H264视频编码标准中定义的一种用于信息传递的数据单元。
在基于切片周期时长和待对齐图像组的索引号,确定切分位置时,一个可选实施例中,计算待对齐图像组的索引号与图像组时长的乘积,得到待对齐图像组在编码生产虚拟时间轴上的编码时间偏移;获取编码时间偏移除以切片周期时长所得的商值和余数值;基于商值确定待对齐图像所属的切片的序号、以及基于余数值确定待对齐图像在所属的切片中的位置;将切片的序号和在所属的切片中的位置,作为切分位置。
一个例子中,待对齐图像组的gop_index为11,gop_time=2s,segment_time=5s,那么待对齐图像组的编码时间偏移=11*2=22s,切片周期时长=2*5=10s,编码时间偏移除以切片周期时长所得的商值为2,余数值也为2。由于一个切片周期包括两个切片,即一个6s的切片,一个4s的切片,那么基于商值可以确定待对齐图像组属于第5个切片,同时由于余数值小于segment_time,所以基于余数值可以确定待对齐图像组为第5个切片中的第1个图像组。
也就是说,在编码时间轴上待对齐图像组的前边有10个GOP,这10个GOP按照切分规律分别对应切分6s,4s,6s,4s这样4个片。因此gop_index=11的GOP在编码生产虚拟时间轴上属于第5个切片,是第5个切片中的第1个GOP。同样,如果待对齐图像组的gop_index是12或者13,那么这个GOP的切分位置还是属于第5个切片,是第5个切片的第2个或第3个GOP。
由于gop_index基于统一的编码生产虚拟时间轴,而根据gop_time和segment_time确定的切分规律也具备跨任务一致性;所以能够保证多路切片数据对齐。即使一进多出编码任务中断或某路切片任务中断,重启后依然可以根据数据流中携带的gop_index定位到切分位置。
本实施例中,视频数据的对齐除了包括对待对齐图像组进行切片的对齐外,还需要校正待对齐图像组中视频播放时间和音频播放时间,以下分别展开说明。
在校正视频播放时间时,一个可选实施例中,基于切分位置,获取待对齐图像组所属的切片中第一个图像组的起始视频帧的索引号;基于起始基准时间、起始视频帧的索引号和待对齐图像组的图像组时长,确定起始视频帧在编码生产虚拟时间轴上的时间偏移量;对于待对齐图像组中的每个视频帧,采用时间偏移量,分别修正每个视频帧的视频编码时间戳和视频显示时间戳,得到与视频编码时间戳对应的修正后视频编码时间戳、以及与视频显示时间戳对应的修正后视频显示时间戳;将修正后视频编码时间戳和修正后视频显示时间戳,作为每个视频帧的视频时间戳;将待对齐图像组中所有视频帧的视频时间戳所指示的播放时间,作为待对齐图像组的视频播放时间。
应理解,由于索引号是通过SEI的方式附着在图像组的关键帧中,所以这里第一个图像组的起始视频帧实际就指的是第一个图像组中的关键帧。
应理解,当待对齐图像组为其所属的第一图像组中的第一个图像组时,起始视频帧的索引号即为待对齐图像组的索引号。
本实施例中,每个切片任务启动时第一个图像组的起始视频帧在编码生产虚拟时间轴上的时间偏移量的计算公式可以为:
video_ts_offset=start_ntp_time+gop_index*gop_time (1)
其中,video_ts_offset为时间偏移量,start_ntp_time为起始基准时间,gop_index为起始视频帧的索引号。
本实施例中,采用时间偏移量,分别修正每个视频帧的视频编码时间戳和视频显示时间戳的计算公式可以为:
video_packet_dts’=video_packet_dts+video_ts_offset (2)
video_packet_pts’=video_packet_pts+video_ts_offset (3)
其中,video_packet_dts为视频编码时间戳,video_packet_pts为视频显示时间戳,video_packet_dts’为修正后视频编码时间戳,video_packet_pts’为修正后视频显示时间戳。
应理解,video_packet_dts、video_packet_pts这两个值是切片服务器拉流时,各路直播码流数据自己的视频编码时间戳和视频显示时间戳,是切片服务器拉流时自动获取的。
本实施例,通过把视频帧的视频时间戳转换到统一的编码生产时间轴,保证了多路切片视频时间戳的对齐。
关于视频播放时间,应理解,校正视频播放时间本质是校正音频帧的时间戳。这里应理解,音频时间戳不同于视频时间戳,由于切片是基于GOP对齐,每个切片和视频帧交织在一起的音频帧数目会有略有差异。如果要实现音频帧时间戳对齐,除了要以编码生产虚拟时间轴为基准外,还需要对每个切片首个音频帧计算相对在基准时间轴上的偏移。
在校正视频播放时间时,一个可选实施例中,获取一组直播码流中任一音频帧的音频帧帧长;以及,基于切分位置,获取待对齐图像组所属的切片中第一个图像组的起始视频帧的索引号;基于音频帧帧长、起始视频帧的索引号和待对齐图像组的图像组时长,计算所属的切片中首个音频帧在编码生产虚拟时间轴上的偏移帧序号;基于起始基准时间、偏移帧序号和音频帧帧长,计算首个音频帧在编码生产虚拟时间轴上的音频时间戳;对于待对齐图像组中的每个音频帧,采用编码生产虚拟时间轴上的音频时间戳,分别修正每个视频帧的音频编码时间戳和音频显示时间戳,得到与音频编码时间戳对应的修正后音频编码时间戳、以及与音频显示时间戳对应的修正后音频显示时间戳;将修正后音频编码时间戳和修正后音频显示时间戳,作为每个音频帧的音频时间戳;将对齐图像组中所有音频帧的音频时间戳所指示的播放时间,作为待对齐图像组的音频播放时间。
本实施例中,基于待对齐图像组所属的一路直播码流中的音频采样率和每个音频帧的音频采样数(sample)的个数,确定一路直播码流中的音频帧帧长。应理解,对于同一路直播码流中不同的音频帧,音频采样率和sample的个数都是相同的。应用中,这两个参数可以直接从拉取的直播码流中获取。
在计算音频帧帧长时,采用的计算公式如下所示:
audio_frame_time=sample_per_frame/sample_rate (4)
其中,audio_frame_time为音频帧帧长,sample_per_frame为每个音频帧的音频采样数,sample_rate为音频采样率。
本实施例中,采用音频时间戳向修正后的视频时间戳对齐的方式修正音频帧的音频时间戳,因此是基于起始视频帧确定首个音频帧在编码生产虚拟时间轴上的偏移帧序号。具体实现时,偏移帧序号的计算公式可以为:
seg_audio_frame_index=(gop_index*gop_time)/audio_frame_time+1 (5)
其中,seg_audio_frame_index为偏移帧序号,gop_index为起始视频帧的索引号,gop_time为待对齐图像组的图像组时长。
需要指出的是,由于audio_frame_time取值通常为小数,这就使得(gop_index*gop_time)/audio_frame_time也通常为小数,为了不影响对下一个切片的音频时间戳的校正,本实施例中对(gop_index*gop_time)/audio_frame_time的取值向下取整,也就是说,公式(5)中(gop_index*gop_time)/audio_frame_time为向下取整运算。
本实施例中,采用如下公式计算首个音频帧在编码生产虚拟时间轴上的音频时间戳:
seg_first_audio_ts=start_ntp_time+seg_audio_frame_index*audio_frame_time (6)
audio_packet_dts’=seg_first_audio_ts (7)
audio_packet_pts’=seg_first_audio_ts (8)
其中,seg_first_audio_ts为首个音频帧在编码生产虚拟时间轴上的音频时间戳,start_ntp_time为起始基准时间,seg_audio_frame_index为偏移帧序号,audio_frame_time为音频帧帧长;audio_packet_dts’为音频编码时间戳,audio_packet_dts’为音频编码时间戳,audio_packet_pts’为音频显示时间戳。
本实施例中,对待对齐图像组中每个音频帧的音频编码时间戳和音频显示时间戳修正所采用的公式如下所示:
audio_packet_dts’=seg_first_audio_ts+audio_frame_time (9)
audio_packet_pts’=seg_first_audio_ts+audio_frame_time (10)
其中,audio_packet_dts’为每个音频帧的音频编码时间戳,audio_packet_pts’为每个音频帧的音频显示时间戳,audio_frame_time为音频帧帧长。这里为了保证切片间音频时间单调递增,在公式(9)和(10)中,audio_frame_time向下保留小数位数。
采用本实施例中校正音频帧的时间戳的方法,不仅能实现跨任务多路切片音频时间戳对齐,且同一切片任务连续切片间音频时间戳单调递增。
本申请实施例提供的技术方案中,基于待对齐图像组中的对齐参数确定待对齐图像组的切分位置、在所属的一路直播码流中的音频播放时间和视频播放时间,从而实现对视频数据的对齐。由于以转码服务器上的编码生产虚拟时间轴作为切分位置和时间戳生产的基础,并且待对齐图像组中携带索引号,所以,当转码或任何一路切片任务中断启动时,无论何时启动切片,都可以实时感知待对齐图像组在转码生产虚拟时间轴上的位置,从而多路同步地确定切分位置并修正时间戳,精准实现在直播场景下,对不同清晰度的直播码流的对齐,具备强鲁棒性和抗干扰性。
本实施例将可以将转码和多路切片分布在不同服务器上,任务部署更灵活,例如可以将编码数据生产rtmp流,然后将rtmp服务器作为中转服务器拉流,再进行多路切片生产,同时得到rtmp数据流和hls切片数据流,以减少任务数和节省计算资源。
本实施例以跨任务切片对齐为基础,结合自适应码率技术,可以在HLS切片直播场景下通过自动码率调节优化视频播放卡顿。
本实施例以跨任务切片对齐为基础,可以衍生改造实现源流切片和个性化广告切片对齐的服务端广告插入技术(SSAI)。
本实施例跨任务切片对齐可以保证切片数据实在有效,在编码效率不够等情形下通过填补数据等途径优化播放卡顿。
本申请实施例提供一种视频数据对齐方法,该方法可应用于转码服务器,如图2所示,该方法可以包括以下步骤:
步骤201、获取待转码的输入流;
步骤202、在将输入流转码为N路直播码流的过程中,获取N路直播码流的起始基准时间,起始基准时间为N路直播码流中首帧视频帧在编码生产虚拟时间轴上的转码完成时刻,N路直播码流中任意两路直播码流的清晰度不同;以及,对于N路直播码流中的每路直播码流,获取每路直播码流中各图像组的索引号,每路直播码流中的图像组的索引号基于转码顺序按递增规律编号;
步骤203、对于每路直播码流中的任意一个图像组,在任意一个图像组中附着对齐参数,对齐参数包括任意一个图像组的索引号和起始基准时间。
基于同一构思,本申请实施例中提供了一种视频数据对齐装置,该装置的具体实施可参见方法实施例部分的描述,重复之处不再赘述,如图3所示,该装置主要包括:
第一获取单元301,用于获取一路直播码流中的待对齐图像组,一路直播码流为转码服务器转码得到的N路直播码流中的任意一路直播码流,N路直播码流中任意两路直播码流的清晰度不同;
解析单元302,用于解析待对齐图像组,获取待对齐图像组的对齐参数,对齐参数包括待对齐图像组的索引号和起始基准时间,起始基准时间为N路直播码流中首帧视频帧在编码生产虚拟时间轴上的转码完成时刻;
第一确定单元303,用于按照待对齐图像组的索引号,确定待对齐图像组在一路直播码流中的切分位置;
第二确定单元304,用于基于切分位置和对齐参数,确定待对齐图像组的音频播放时间和视频播放时间。
第一确定单元303用于:
获取待对齐图像组的图像组时长;
基于预先设定的切片时长和图像组时长,确定切片周期时长;
基于切片周期时长和待对齐图像组的索引号,确定切分位置。
第一确定单元303用于:
计算待对齐图像组的索引号与图像组时长的乘积,得到待对齐图像组在编码生产虚拟时间轴上的编码时间偏移;
获取编码时间偏移除以切片周期时长所得的商值和余数值;
基于商值确定待对齐图像所属的切片的序号、以及基于余数值确定待对齐图像组在所属的切片中的位置;
将切片的序号和在所属的切片中的位置,作为切分位置。
第二确定单元304用于:
基于切分位置,获取待对齐图像组所属的切片中第一个图像组的起始视频帧的索引号;
基于起始基准时间、起始视频帧的索引号和待对齐图像组的图像组时长,确定起始视频帧在编码生产虚拟时间轴上的时间偏移量;
对于待对齐图像组中的每个视频帧,采用时间偏移量,分别修正每个视频帧的视频编码时间戳和视频显示时间戳,得到与视频编码时间戳对应的修正后视频编码时间戳、以及与视频显示时间戳对应的修正后视频显示时间戳;
将修正后视频编码时间戳和修正后视频显示时间戳,作为每个视频帧的视频时间戳;
将待对齐图像组中所有视频帧的视频时间戳所指示的播放时间,作为待对齐图像组的视频播放时间。
第二确定单元304用于:
计算待对齐图像组的索引号和待对齐图像组的图像组时长的乘积,得到待对齐图像组在编码生产虚拟时间轴上的编码时间偏移;
对编码时间偏移和其实基准时间进行求和运算,并将求和运算的结果作为时间偏移量。
第二确定单元304用于:
计算视频编码时间戳和时间偏移量之和,得到第一求和结果;以及,计算视频显示时间和时间偏移量之和,得到第二求和结果;
将第一求和结果作为修正后视频编码时间戳,以及,将第二求和结果作为修正后视频显示时间戳。
第二确定单元304用于:
获取一组直播码流中任一音频帧的音频帧帧长;以及,基于切分位置,获取待对齐图像组所属的切片中第一个图像组的起始视频帧的索引号;
基于音频帧帧长、起始视频帧的索引号和待对齐图像组的图像组时长,计算所属的切片中首个音频帧在编码生产虚拟时间轴上的偏移帧序号;
基于起始基准时间、偏移帧序号和音频帧帧长,计算首个音频帧在编码生产虚拟时间轴上的音频时间戳;
对于待对齐图像组中的每个音频帧,采用编码生产虚拟时间轴上的音频时间戳,分别修正每个音频帧的音频编码时间戳和音频显示时间戳,得到与音频编码时间戳对应的修正后音频编码时间戳、以及与音频显示时间戳对应的修正后音频显示时间戳;
将修正后音频编码时间戳和修正后音频显示时间戳,作为每个音频帧的音频时间戳;
将对齐图像组中所有音频帧的音频时间戳所指示的播放时间,作为待对齐图像组的音频播放时间。
第二确定单元304用于:
计算起始视频帧的索引号与图像组时长的乘积,得到待对齐图像组在编码生产虚拟时间轴上的编码时间偏移;
采用编码时间偏移对音频帧帧长向下取整,得到取整结果;
将取整结果加1,得到偏移帧序号。
第二确定单元304用于:
计算偏移帧序号和音频帧帧长的乘积,得到首个音频帧的音频编码时长;
对音频编码时长和起始基准时间求和,得到首个音频帧在编码生产虚拟时间轴上的音频时间戳。
基于同一构思,本申请实施例中提供了一种视频数据对齐装置,该装置的具体实施可参见方法实施例部分的描述,重复之处不再赘述,如图4所示,该装置主要包括:
第二获取单元401,用于获取待转码的输入流;
第三获取单元402,用于在将输入流转码为N路直播码流的过程中,获取N路直播码流的起始基准时间,起始基准时间为N路直播码流中首帧视频帧在编码生产虚拟时间轴上的转码完成时刻,N路直播码流中任意两路直播码流的清晰度不同;以及,对于N路直播码流中的每路直播码流,获取每路直播码流中各图像组的索引号,每路直播码流中的图像组的索引号基于转码顺序按递增规律编号;
附着单元403,用于对于每路直播码流中的任意一个图像组,在任意一个图像组中附着对齐参数,对齐参数包括任意一个图像组的索引号和起始基准时间。
基于同一构思,本申请实施例中还提供了一种电子设备,如图5所示,该电子设备主要包括:处理器501、存储器502和通信总线503,其中,处理器501和存储器502通过通信总线503完成相互间的通信。其中,存储器502中存储有可被处理器501执行的程序,处理器501执行存储器502中存储的程序,实现如下步骤:
获取一路直播码流中的待对齐图像组,一路直播码流为转码服务器转码得到的N路直播码流中的任意一路直播码流,N路直播码流中任意两路直播码流的清晰度不同;解析待对齐图像组,获取待对齐图像组的对齐参数,对齐参数包括待对齐图像组的索引号和起始基准时间,起始基准时间为N路直播码流中首帧视频帧在编码生产虚拟时间轴上的转码完成时刻;按照待对齐图像组的索引号,确定待对齐图像组在一路直播码流中的切分位置;基于切分位置和对齐参数,确定待对齐图像组的音频播放时间和视频播放时间;
或,
获取待转码的输入流;在将输入流转码为N路直播码流的过程中,获取N路直播码流的起始基准时间,起始基准时间为N路直播码流中首帧视频帧在编码生产虚拟时间轴上的转码完成时刻,N路直播码流中任意两路直播码流的清晰度不同;以及,对于N路直播码流中的每路直播码流,获取每路直播码流中各图像组的索引号,每路直播码流中的图像组的索引号基于转码顺序按递增规律编号;对于每路直播码流中的任意一个图像组,在任意一个图像组中附着对齐参数,对齐参数包括任意一个图像组的索引号和起始基准时间。
上述电子设备中提到的通信总线503可以是外设部件互连标准(PeripheralComponent Interconnect,简称PCI)总线或扩展工业标准结构(Extended IndustryStandard Architecture,简称EISA)总线等。该通信总线503可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器502可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器501的存储装置。
上述的处理器501可以是通用处理器,包括中央处理器(Central ProcessingUnit,简称CPU)、网络处理器(Network Processor,简称NP)等,还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本申请的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当该计算机程序在计算机上运行时,使得计算机执行上述实施例中所描述的视频数据对齐方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。该计算机可以时通用计算机、专用计算机、计算机网络或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、微波等)方式向另外一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如软盘、硬盘、磁带等)、光介质(例如DVD)或者半导体介质(例如固态硬盘)等。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
Claims (12)
1.一种视频数据对齐方法,其特征在于,所述视频数据对齐方法应用于切片服务器,包括:
获取一路直播码流中的待对齐图像组,所述一路直播码流为转码服务器转码得到的N路直播码流中的任意一路直播码流,所述N路直播码流中任意两路直播码流的清晰度不同;
解析所述待对齐图像组,获取所述待对齐图像组的对齐参数,所述对齐参数包括所述待对齐图像组的索引号和起始基准时间,所述起始基准时间为所述N路直播码流中首帧视频帧在编码生产虚拟时间轴上的转码完成时刻;
按照所述待对齐图像组的索引号,确定所述待对齐图像组在所述一路直播码流中的切分位置,其中,所述切分位置用于表示所述切片的序号和在所属的切片中的位置;
基于所述切分位置和所述对齐参数,确定所述待对齐图像组的音频播放时间和视频播放时间;
其中,基于所述切分位置和所述对齐参数,确定所述待对齐图像组的视频播放时间,包括:基于所述切分位置,获取所述待对齐图像组所属的切片中第一个图像组的起始视频帧的索引号;基于所述起始基准时间、所述起始视频帧的索引号和所述待对齐图像组的图像组时长,确定所述起始视频帧在所述编码生产虚拟时间轴上的时间偏移量;对于所述待对齐图像组中的每个视频帧,采用所述时间偏移量,分别修正所述每个视频帧的视频编码时间戳和视频显示时间戳,得到与所述视频编码时间戳对应的修正后视频编码时间戳、以及与所述视频显示时间戳对应的修正后视频显示时间戳;将所述修正后视频编码时间戳和所述修正后视频显示时间戳,作为所述每个视频帧的视频时间戳;将所述待对齐图像组中所有视频帧的视频时间戳所指示的播放时间,作为所述待对齐图像组的视频播放时间;
基于所述切分位置和所述对齐参数,确定所述待对齐图像组的音频播放时间,包括:获取一组直播码流中任一音频帧的音频帧帧长;以及,基于所述切分位置,获取所述待对齐图像组所属的切片中第一个图像组的起始视频帧的索引号;基于所述音频帧帧长、所述起始视频帧的索引号和所述待对齐图像组的图像组时长,计算所述所属的切片中首个音频帧在所述编码生产虚拟时间轴上的偏移帧序号;基于所述起始基准时间、所述偏移帧序号和所述音频帧帧长,计算所述首个音频帧在所述编码生产虚拟时间轴上的音频时间戳;对于所述待对齐图像组中的每个音频帧,采用所述编码生产虚拟时间轴上的音频时间戳,分别修正所述每个音频帧的音频编码时间戳和音频显示时间戳,得到与所述音频编码时间戳对应的修正后音频编码时间戳、以及与所述音频显示时间戳对应的修正后音频显示时间戳;将所述修正后音频编码时间戳和所述修正后音频显示时间戳,作为所述每个音频帧的音频时间戳;将所述对齐图像组中所有音频帧的音频时间戳所指示的播放时间,作为所述待对齐图像组的音频播放时间。
2.根据权利要求1所述的方法,其特征在于,按照所述对齐参数,确定所述待对齐图像组在所述一路直播码流中的切分位置,包括:
获取所述待对齐图像组的图像组时长;
基于预先设定的切片时长和所述图像组时长,确定切片周期时长;
基于所述切片周期时长和所述待对齐图像组的索引号,确定所述切分位置。
3.根据权利要求2所述的方法,其特征在于,基于所述切片周期时长和所述待对齐图像组的索引号,确定所述切分位置,包括:
计算所述待对齐图像组的索引号与所述图像组时长的乘积,得到所述待对齐图像组在所述编码生产虚拟时间轴上的编码时间偏移;
获取所述编码时间偏移除以所述切片周期时长所得的商值和余数值;
基于所述商值确定所述待对齐图像所属的切片的序号、以及基于所述余数值确定所述待对齐图像组在所述所属的切片中的位置;
将所述切片的序号和在所述所属的切片中的位置,作为所述切分位置。
4.根据权利要求1所述的方法,其特征在于,基于所述起始基准时间、所述起始视频帧的索引号和所述待对齐图像组的图像组时长,确定所述起始视频帧在所述编码生产虚拟时间轴上的时间偏移量,包括:
计算所述待对齐图像组的索引号和所述待对齐图像组的图像组时长的乘积,得到所述待对齐图像组在所述编码生产虚拟时间轴上的编码时间偏移;
对所述编码时间偏移和所述起始基准时间进行求和运算,并将求和运算的结果作为所述时间偏移量。
5.根据权利要求1所述的方法,其特征在于,对于所述待对齐图像组中的每个视频帧,采用所述时间偏移量,分别修正所述每个视频帧的视频编码时间戳和视频显示时间戳,得到与所述视频编码时间戳对应的修正后视频编码时间戳、以及与所述视频显示时间戳对应的修正后视频显示时间戳,包括:
计算所述视频编码时间戳和所述时间偏移量之和,得到第一求和结果;以及,计算所述视频显示时间和所述时间偏移量之和,得到第二求和结果;
将所述第一求和结果作为所述修正后视频编码时间戳,以及,将所述第二求和结果作为所述修正后视频显示时间戳。
6.根据权利要求1所述的方法,其特征在于,基于所述音频帧帧长、所述起始视频帧的索引号和所述待对齐图像组的图像组时长,计算所述所属的切片中首个音频帧在所述编码生产虚拟时间轴上的偏移帧序号,包括:
计算所述起始视频帧的索引号与所述图像组时长的乘积,得到所述待对齐图像组在所述编码生产虚拟时间轴上的编码时间偏移;
采用所述编码时间偏移对所述音频帧帧长向下取整,得到取整结果;
将所述取整结果加1,得到所述偏移帧序号。
7.根据权利要求1所述的方法,其特征在于,基于所述起始基准时间、所述偏移帧序号和所述音频帧帧长,计算所述首个音频帧在所述编码生产虚拟时间轴上的音频时间戳,包括:
计算所述偏移帧序号和所述音频帧帧长的乘积,得到所述首个音频帧的音频编码时长;
对所述音频编码时长和所述起始基准时间求和,得到所述首个音频帧在所述编码生产虚拟时间轴上的音频时间戳。
8.一种视频数据对齐方法,其特征在于,所述视频数据对齐方法应用于转码服务器,包括:
获取待转码的输入流;
在将所述输入流转码为N路直播码流的过程中,获取所述N路直播码流的起始基准时间,所述起始基准时间为所述N路直播码流中首帧视频帧在编码生产虚拟时间轴上的转码完成时刻,所述N路直播码流中任意两路直播码流的清晰度不同;以及,对于所述N路直播码流中的每路直播码流,获取所述每路直播码流中各图像组的索引号,所述每路直播码流中的图像组的索引号基于转码顺序按递增规律编号;
对于所述每路直播码流中的任意一个图像组,在所述任意一个图像组中附着对齐参数,发送给用于执行权利要求1至7中任意一项所述的视频数据对齐方法的切片服务器,以执行视频数据对齐,所述对齐参数包括所述任意一个图像组的索引号和所述起始基准时间。
9.一种视频数据对齐装置,其特征在于,所述视频数据对齐装置应用于切片服务器,包括:
第一获取单元,用于获取一路直播码流中的待对齐图像组,所述一路直播码流为转码服务器转码得到的N路直播码流中的任意一路直播码流,所述N路直播码流中任意两路直播码流的清晰度不同;
解析单元,用于解析所述待对齐图像组,获取所述待对齐图像组的对齐参数,所述对齐参数包括所述待对齐图像组的索引号和起始基准时间,所述起始基准时间为所述N路直播码流中首帧视频帧在编码生产虚拟时间轴上的转码完成时刻;
第一确定单元,用于按照所述待对齐图像组的索引号,确定所述待对齐图像组在所述一路直播码流中的切分位置,其中,所述切分位置用于表示所述切片的序号和在所属的切片中的位置;
第二确定单元,用于基于所述切分位置和所述对齐参数,确定所述待对齐图像组的音频播放时间和视频播放时间;
其中,所述第二确定单元用于按照如下方式确定所述待对齐图像组的视频播放时间:基于所述切分位置,获取所述待对齐图像组所属的切片中第一个图像组的起始视频帧的索引号;基于所述起始基准时间、所述起始视频帧的索引号和所述待对齐图像组的图像组时长,确定所述起始视频帧在所述编码生产虚拟时间轴上的时间偏移量;对于所述待对齐图像组中的每个视频帧,采用所述时间偏移量,分别修正所述每个视频帧的视频编码时间戳和视频显示时间戳,得到与所述视频编码时间戳对应的修正后视频编码时间戳、以及与所述视频显示时间戳对应的修正后视频显示时间戳;将所述修正后视频编码时间戳和所述修正后视频显示时间戳,作为所述每个视频帧的视频时间戳;将所述待对齐图像组中所有视频帧的视频时间戳所指示的播放时间,作为所述待对齐图像组的视频播放时间;
所述第二确定单元用于按照如下方式确定所述待对齐图像组的音频播放时间:获取一组直播码流中任一音频帧的音频帧帧长;以及,基于所述切分位置,获取所述待对齐图像组所属的切片中第一个图像组的起始视频帧的索引号;基于所述音频帧帧长、所述起始视频帧的索引号和所述待对齐图像组的图像组时长,计算所述所属的切片中首个音频帧在所述编码生产虚拟时间轴上的偏移帧序号;基于所述起始基准时间、所述偏移帧序号和所述音频帧帧长,计算所述首个音频帧在所述编码生产虚拟时间轴上的音频时间戳;对于所述待对齐图像组中的每个音频帧,采用所述编码生产虚拟时间轴上的音频时间戳,分别修正所述每个音频帧的音频编码时间戳和音频显示时间戳,得到与所述音频编码时间戳对应的修正后音频编码时间戳、以及与所述音频显示时间戳对应的修正后音频显示时间戳;将所述修正后音频编码时间戳和所述修正后音频显示时间戳,作为所述每个音频帧的音频时间戳;将所述对齐图像组中所有音频帧的音频时间戳所指示的播放时间,作为所述待对齐图像组的音频播放时间。
10.一种视频数据对齐装置,其特征在于,所述视频数据对齐装置应用于转码服务器,包括:
第二获取单元,用于获取待转码的输入流;
第三获取单元,用于在将所述输入流转码为N路直播码流的过程中,获取所述N路直播码流的起始基准时间,所述起始基准时间为所述N路直播码流中首帧视频帧在编码生产虚拟时间轴上的转码完成时刻,所述N路直播码流中任意两路直播码流的清晰度不同;以及,对于所述N路直播码流中的每路直播码流,获取所述每路直播码流中各图像组的索引号,所述每路直播码流中的图像组的索引号基于转码顺序按递增规律编号;
附着单元,用于对于所述每路直播码流中的任意一个图像组,在所述任意一个图像组中附着对齐参数,发送给权利要求9所述的视频数据对齐装置所在的切片服务器,以执行视频数据对齐,所述对齐参数包括所述任意一个图像组的索引号和所述起始基准时间。
11.一种电子设备,其特征在于,包括:处理器、存储器和通信总线,其中,处理器和存储器通过通信总线完成相互间的通信;
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述存储器中所存储的程序,实现权利要求1-7任一项所述的方法或权利要求8所述的方法。
12.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-7任一项所述的方法或权利要求8所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210759960.0A CN115134622B (zh) | 2022-06-29 | 2022-06-29 | 视频数据对齐方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210759960.0A CN115134622B (zh) | 2022-06-29 | 2022-06-29 | 视频数据对齐方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115134622A CN115134622A (zh) | 2022-09-30 |
CN115134622B true CN115134622B (zh) | 2023-09-01 |
Family
ID=83381167
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210759960.0A Active CN115134622B (zh) | 2022-06-29 | 2022-06-29 | 视频数据对齐方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115134622B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115802054A (zh) * | 2022-11-11 | 2023-03-14 | 上海哔哩哔哩科技有限公司 | 视频对齐方法及装置 |
CN115834921A (zh) * | 2022-11-17 | 2023-03-21 | 北京奇艺世纪科技有限公司 | 视频处理方法、装置、服务器、存储介质及程序产品 |
CN116170609A (zh) * | 2023-02-01 | 2023-05-26 | 广州虎牙科技有限公司 | 视频转码方法、装置、直播服务器、终端设备及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014124559A1 (zh) * | 2013-02-18 | 2014-08-21 | 华为技术有限公司 | 一种视频直播同步的方法及装置 |
WO2016011823A1 (zh) * | 2014-07-22 | 2016-01-28 | 中兴通讯股份有限公司 | 获取直播视频切片的方法、服务器及存储介质 |
CN107690073A (zh) * | 2016-08-05 | 2018-02-13 | 阿里巴巴集团控股有限公司 | 一种视频直播方法及视频直播服务器 |
CN110582012A (zh) * | 2018-06-11 | 2019-12-17 | 腾讯科技(深圳)有限公司 | 视频切换方法、视频处理方法、装置及存储介质 |
CN110677736A (zh) * | 2019-10-08 | 2020-01-10 | 烽火通信科技股份有限公司 | 一种hls点播快速起播方法及系统 |
US10652625B1 (en) * | 2016-06-27 | 2020-05-12 | Amazon Technologies, Inc. | Synchronization of multiple encoders for streaming content |
CN113329267A (zh) * | 2021-05-27 | 2021-08-31 | 北京奇艺世纪科技有限公司 | 一种视频播放方法、装置、终端设备及存储介质 |
CN113852824A (zh) * | 2021-10-13 | 2021-12-28 | 网宿科技股份有限公司 | 视频转码方法、装置、电子设备和存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9414100B2 (en) * | 2014-03-31 | 2016-08-09 | Arris Enterprises, Inc. | Adaptive streaming transcoder synchronization |
EP3185564A1 (en) * | 2015-12-22 | 2017-06-28 | Harmonic Inc. | Video stream splicing of groups of pictures (gop) |
US20180367839A1 (en) * | 2017-06-16 | 2018-12-20 | Oohms Ny Llc | Method and system for synchronization of audio content for a remotely displayed video |
-
2022
- 2022-06-29 CN CN202210759960.0A patent/CN115134622B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014124559A1 (zh) * | 2013-02-18 | 2014-08-21 | 华为技术有限公司 | 一种视频直播同步的方法及装置 |
WO2016011823A1 (zh) * | 2014-07-22 | 2016-01-28 | 中兴通讯股份有限公司 | 获取直播视频切片的方法、服务器及存储介质 |
US10652625B1 (en) * | 2016-06-27 | 2020-05-12 | Amazon Technologies, Inc. | Synchronization of multiple encoders for streaming content |
CN107690073A (zh) * | 2016-08-05 | 2018-02-13 | 阿里巴巴集团控股有限公司 | 一种视频直播方法及视频直播服务器 |
CN110582012A (zh) * | 2018-06-11 | 2019-12-17 | 腾讯科技(深圳)有限公司 | 视频切换方法、视频处理方法、装置及存储介质 |
CN110677736A (zh) * | 2019-10-08 | 2020-01-10 | 烽火通信科技股份有限公司 | 一种hls点播快速起播方法及系统 |
CN113329267A (zh) * | 2021-05-27 | 2021-08-31 | 北京奇艺世纪科技有限公司 | 一种视频播放方法、装置、终端设备及存储介质 |
CN113852824A (zh) * | 2021-10-13 | 2021-12-28 | 网宿科技股份有限公司 | 视频转码方法、装置、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115134622A (zh) | 2022-09-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115134622B (zh) | 视频数据对齐方法、装置、设备及存储介质 | |
CN107147919B (zh) | 直播快速启播方法及系统 | |
US10638192B2 (en) | Live streaming quick start method and system | |
CN115119009B (zh) | 视频对齐方法、视频编码方法、装置及存储介质 | |
CN104885473B (zh) | 用于经由http的动态自适应流式传输(dash)的实况定时方法 | |
CN110933449B (zh) | 一种外部数据与视频画面的同步方法、系统及装置 | |
CN111031385B (zh) | 视频播放的方法及装置 | |
US20100110199A1 (en) | Measuring Video Quality Using Partial Decoding | |
EP2086174A1 (en) | A method and system of multimedia service performance monitoring | |
CN111447455A (zh) | 直播视频流回放处理方法、装置及计算设备 | |
US20140109156A1 (en) | Method, terminal, server and system for playing media file | |
CN108174229B (zh) | 直播延时的确定方法和装置 | |
EP2156669B1 (en) | System and method for reducing the zapping time | |
EP2654309A1 (en) | Method and device for evaluating video quality | |
CN113852824A (zh) | 视频转码方法、装置、电子设备和存储介质 | |
CN111770390A (zh) | 数据处理方法、装置、服务器及存储介质 | |
CN113727199A (zh) | 一种hls切片快速起播方法 | |
CN112616065A (zh) | 一种屏幕镜像发起方法、装置、计算机设备、可读存储介质及屏幕镜像呈现系统 | |
US20130332977A1 (en) | Methods and Apparatuses for Resuming Paused Media | |
RU2651241C2 (ru) | Передающее устройство, способ передачи, приемное устройство и способ приема | |
CN112584088B (zh) | 媒体流数据的发送方法、电子装置和存储介质 | |
CN114513651A (zh) | 视频设备关键帧碰撞检测方法、数据传输方法及相关装置 | |
US20220232275A1 (en) | Adaptive bitrate video testing from screen recording | |
US11917327B2 (en) | Dynamic resolution switching in live streams based on video quality assessment | |
CN116347111A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |