一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种分布式音视频转码系统及其方法

2022-07-13 14:16:54 来源:中国专利 TAG:


1.本发明涉及转码技术领域,特别是一种分布式音视频转码系统及其方法。


背景技术:

2.视频分享在社交应用蓬勃发展的今天越来越为大众接受,用户原创视频内容分享网站在接受用户视频上传时,必须对这些视频进行转码,符合规范的格式后才能发布给用户观看,这需要一个基于云计算架构的离线转码系统来支撑。
3.目前的离线转码服务系统普遍的都是等用户上传完整的视频后,再调度到视频转码集群上进行转码,转码完成以后再通知用户转码已经完成,这个过程通常很漫长,用户体验非常差;如专利201911038001.4公开了一种分布式视频转码方法及系统,所述方法包括获取待转码任务的源文件信息以及目标文件信息;根据所述源文件信息以及目标文件信息将所述待转码任务对应的源视频文件划分为若干源视频段;将所有源视频段分配至转码服务器集群,通过转码服务器集群对其对应的源视频段进行转码;将转码得到的各目标视频文件段合并,以得到所述源视频文件对应的目标视频文件。
4.用户在转码完成以前不能预览转码效果,更谈不上拖动预览;用户也不能控制局部视频的编码参数,对编码参数即便可控也不能即时直观比较,只能是完整转了几次后再选出最合适的一个版本,造成转码资源的浪费;此外,用户文件上传过程漫长,这个上传过程也不能很好的用于转码,一些云存储服务提供并发分片上传,但这个过程没有和转码服务完美结合。


技术实现要素:

5.针对现有技术中存在的问题,本发明提供了一种可以实时即时拖动预览,控制局部的转码参数,即时比较不同参数应用于重要时间片段的转码效果,在转码没有完成以前就可以即时观看并分享,边看边转,边上传边转的分布式音视频转码系统及其方法。
6.本发明的目的通过以下技术方案实现。
7.一种分布式音视频转码系统,包括文件头产生器和存储模块,所述文件头产生器至转码集群单向连接,所述存储模块至文件头产生器单向连接,所述转码集群分别与存储模块、调度器和web服务器双向连接,所述调度器与视频结构分析模块双向连接,所述调度器与客户端单向连接,所述web服务器与客户端双向连接,所述客户端上传片段至存储模块,所述存储模块将生成的hash值返回至客户端。
8.所述视频结构分析模块位于客户端内,所述客户端还包括播放模块,所述视频结构分析模块以单独可集成的sdk的形式提供给客户端。
9.或者所述视频结构分析模块位于服务端内,所述视频结构分析模块以java script的形式由服务器端通过网页内嵌的形式下发给客户端。
10.所述视频结构分析模块用于对视频文件的整体结构进行分析,得出视频的长度、关键帧的byte偏移量、和关键帧对应的时间偏移量,音视频编码参数相关的结构体信息,当
文件索引信息存在时,所述视频结构分析模块只需要对文件索引信息进行分析,并将分析结果上报给调度器。
11.所述调度器内维护一个或多个优先级别不同的调度队列,所述调度器既对视频结构分析模块的片段上传进行调度也对转码集群的离线转码进行调度。
12.所述存储模块存储客户端上传的每一个视频片断,并生成唯一的hash值,以及对整个文件的所有片段的全部hash进行存储,所述存储模块还存储转码集群完成转码的片段的存储,以及对应的hash。
13.一种分布式音视频转码方法,包括如下步骤:
14.1)客户端选择视频,调用视频结构分析模块对视频结构进行分析,并把分析结果上报给调度器;
15.2)视频结构分析模块根据调度器下发的调度指令进行片段的并发上传,并存储返回的hash值,调度器把同样的调度指令下发给转码集群,安排转码集群进行片段的离线转码;
16.3)在转码过程中,会调用文件头产生器为需要转码的片段产生文件头,转码集群转码完成的片段就存入到存储模块;
17.4)当客户端有拖动预览时,向转码集群发起某些片段的下载请求以用于预览,促发转码集群通知调度器,需要把这些被请求的片段提高到优先调度队列,优先调度上传和转码;
18.5)调度器重新安排调度,把优先调度命令发给视频结构分析模块;
19.6)视频结构分析模块把需要优先调度的片段立即上传,并被离线转码器立即进行离线转码,然后下发内容给预览客户端,客户端立即预览到刚刚被转码的视频片断。
20.7)用户在转码完成以前分享转码预览链接,所述预览链接是m3u8文件列表或者mpeg-dash的列表描述文件或是其他类似的列表文件;
21.8)转码都完成以后,转码集群根据用户需要对所有片段实施一次虚拼接,所述虚拼接只产生合并文件头,文件的真实存储仍然是存储在存储模块里面。
22.所述步骤6)中具体片段的转码参数精细微调通过webserver上传给转码集群。
23.当用户需要用特定封装格式下载完整的拼接文件时,通过转码集群进行实时拼接,然后通过web server下发。
24.相比于现有技术,本发明的优点在于:本发明可以实时即时拖动预览,控制局部的转码参数,即时比较不同参数应用于重要时间片段的转码效果,在转码没有完成以前就可以即时观看并分享,边看边转,边上传边转,用户在开始上传3-4秒的时间后就和观看本地视频一样的用户体验。
附图说明
25.图1为本发明实施例1的系统结构示意图。
26.图2为本发明实施例2的系统结构示意图。
具体实施方式
27.下面结合说明书附图和具体的实施例,对本发明作详细描述。
28.一种分布式音视频转码系统,包括文件头产生器和存储模块,所述文件头产生器至转码集群单向连接,所述存储模块至文件头产生器单向连接,所述转码集群分别与存储模块、调度器和web服务器双向连接,所述调度器与视频结构分析模块双向连接,所述调度器与客户端单向连接,所述web服务器与客户端双向连接,所述客户端上传片段至存储模块,所述存储模块将生成的hash值返回至客户端。
29.所述视频结构分析模块位于客户端内,所述客户端还包括播放模块,所述视频结构分析模块以单独可集成的sdk的形式提供给客户端。
30.或者所述视频结构分析模块位于服务端内,所述视频结构分析模块以java script的形式由服务器端通过网页内嵌的形式下发给客户端。
31.所述视频结构分析模块用于对视频文件的整体结构进行分析,得出视频的长度、关键帧的byte偏移量、和关键帧对应的时间偏移量,音视频编码参数相关的结构体信息,当文件索引信息存在时,所述视频结构分析模块只需要对文件索引信息进行分析,比如mp4文件中的moov,flv的文件头;并将分析结果上报给调度器。
32.所述调度器内维护一个或多个优先级别不同的调度队列,所述调度器既对视频结构分析模块的片段上传进行调度也对转码集群的离线转码进行调度。
33.所述存储模块存储客户端上传的每一个视频片断,并生成唯一的hash值,以及对整个文件的所有片段的全部hash进行存储,所述存储模块还存储转码集群完成转码的片段的存储,以及对应的hash。转码集群按调度器要求进行离线转码。
34.一种分布式音视频转码方法,包括如下步骤:
35.1)客户端选择视频,调用视频结构分析模块对视频结构进行分析,并把分析结果上报给调度器;
36.2)视频结构分析模块根据调度器下发的调度指令进行片段的并发上传,并存储返回的hash值,调度器把同样的调度指令下发给转码集群,安排转码集群进行片段的离线转码;
37.3)在转码过程中,会调用文件头产生器为需要转码的片段产生文件头,转码集群转码完成的片段就存入到存储模块;
38.4)当客户端有拖动预览时,向转码集群发起某些片段的下载请求以用于预览,促发转码集群通知调度器,需要把这些被请求的片段提高到优先调度队列,优先调度上传和转码;
39.5)调度器重新安排调度,把优先调度命令发给视频结构分析模块;
40.6)视频结构分析模块把需要优先调度的片段立即上传,并被离线转码器立即进行离线转码,然后下发内容给预览客户端,客户端立即预览到刚刚被转码的视频片断。
41.7)用户在转码完成以前分享转码预览链接,所述预览链接是m3u8文件列表或者mpeg-dash的列表描述文件或是其他类似的列表文件;这样实现用户在转码没完成以前就可以播放和分享,在用户看来,开始上传3-4秒以后就可以播放转码视频了。
42.8)转码都完成以后,转码集群根据用户需要对所有片段实施一次虚拼接,所述虚拼接只产生合并文件头,文件的真实存储仍然是存储在存储模块里面。
43.所述步骤6)中具体片段的转码参数精细微调通过webserver上传给转码集群。
44.当用户需要用特定封装格式下载完整的拼接文件时,通过转码集群进行实时拼
接,然后通过web server下发。
45.本发明是通过对需要转码的文件结构进行分析后,把文件按某些关键帧为索引点进行虚切片,所谓虚切片就是根据文件头进行分析过后,只记录某个切片的起始偏移量和终止偏移量,并不真实进行分割,通过这样的方式把一个大的文件虚切成许许多多的小片段(推荐值是10秒左右的内容片段),通过再为这些片段产生文件头的方式,把这些内容片段变成一个个可以独立播放的虚的视频片段;这个过程如果用现实生活中的例子来进行说明的话,就非常类似于拿到一本书的目录,然后就根据目录里的章节的页码把一本书虚拟的分成了一本本独立的小册子,当有人需要借阅某一个小册子时,就真实的把这些页抽出来,加一页封面就构成一本小册子,借阅给用户看,在借阅用户看来就是有这么多真实的小册子存在,而实际上这些小册子是以一本书的形式存放的,在这个例子中,后加的封页就是为某个片段产生的文件头。虚的按需产生的视频片段,就可以作为离线转码调度器调度的基本单元,调度单元调度离线转码器对这些虚片段进行转码,由于片段很短,可以很快完成转码,因此当用户有拖动预览时,可以快速定位到用户需要预览的片段,进行优先转码,这样达成快速预览的目的,同时由于可以把一个文件的转码通过这种调度分散到多个离线转码器上,实现任意倍速的转码。
46.本发明和对比文件其他发明一个重要不同点还在于本发明把并发上传、转码和预览一起调度;由于大文件上传容易出错,因此通常都需要对文件进行切片并利用多线程并发上传技术提高上传成功率和缩短上传时间;因此发明充分利用上传的时间进行转码,用户上传完也就转码完成,可以极大的改善用户体验,为了达成这个目的,视频切片片段的转码就必须做到完全独立于其他的片段,因此前述的文件头产生器非常重要,它产生的文件头使得独立上传和转码成为可能。
47.为了进一步提升用户体验,在上传时,也以虚的内容片段为单位进行上传,因此可以做到不按顺序的并发上传,加快上传速度,以及做到用户需要预览的片段先上传,用户在观看的片段先上传,从而使用户可以快速预览转码后的结果,并可以定制具体片段的转码参数,相比传统的离线转码器,本发明的分布式转码系统的用户体验极大的得到提升。
48.由于不同内容产生者使用的编码器不一样,文件封装时有可能音视频交织深度不一样,属于同一个时间段的音频和视频在源文件中的位置可能差别比较大,为了达成独立转码的目的,虚切片的片段需要包含选定的时间段以内的全部音视频内容,因此虚切片段之间可能会是有byte重叠的。注意本发明的片段和片段之间完全不依赖,可以单独进行转码。
49.本发明的转码任务是完全按需,并根据观看用户的需求来触发的,用户不预览或是不下载的时候,没有任何上传和转码发生,也不产生对应的文件头,只有用户需要观看某个片段或是下载某个片段情况下,才会触发转码,因此可以极大节约转码资源。
50.本发明描述的片段合并过程不是必须的,不合并也不影响用户预览和观看转码后的视频,甚至用户的拖动预览也不需要对转码片段进行合并。只有当用户需要用特定封装格式,比如mp4文件格式,下载保存这个转码后的视频时才需要对转码文件进行合并。
51.实施例1
52.如图1所示,虚线框内是整个客户端,客户端包括播放模块和视频结构分析模块,所述视频结构分析模块以单独可集成的sdk的形式提供给客户端。本实施例适应于可以在
客户端植入sdk的应用场景。
53.实施例2
54.如图2所示,所述视频结构分析模块位于服务端内,所述视频结构分析模块以java script的形式由服务器端通过网页内嵌的形式下发给客户端。本实施例适用于不便于在客户端集成sdk的场景,比如用户使用浏览器进行离线转码并预览的场景。适合以云服务的方式对外提供服务。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献