CN106973306A - 分布式转码方法、装置及系统 - Google Patents

分布式转码方法、装置及系统 Download PDF

Info

Publication number
CN106973306A
CN106973306A CN201710079306.4A CN201710079306A CN106973306A CN 106973306 A CN106973306 A CN 106973306A CN 201710079306 A CN201710079306 A CN 201710079306A CN 106973306 A CN106973306 A CN 106973306A
Authority
CN
China
Prior art keywords
video
video data
transcoded
transcoding
code conversion
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
Application number
CN201710079306.4A
Other languages
English (en)
Inventor
许赫赫
沈操
张超
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Time Ltd By Share Ltd
Original Assignee
Beijing Time Ltd By Share Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Time Ltd By Share Ltd filed Critical Beijing Time Ltd By Share Ltd
Priority to CN201710079306.4A priority Critical patent/CN106973306A/zh
Publication of CN106973306A publication Critical patent/CN106973306A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing 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/234309Processing 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440218Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明提供了一种分布式转码方法、装置及系统。所述方法包括:接收由web集群分发的来自客户端的视频转码请求,所述视频转码请求中包括待转码视频数据的内容标识;根据所述内容标识从云存储器中获取所述待转码视频数据;对所述待转码视频数据进行转码,获得转码后的目标视频数据;将所述目标视频数据发送至所述web集群,由所述web集群将所述目标视频数据发送至所述客户端。该技术方案相较于现有技术而言,至少节省了对视频文件的下载、切割及合成过程,因此不仅省去了用户的手动操作过程(如下载视频文件至本地),且提高了对视频数据的转码效率。

Description

分布式转码方法、装置及系统
技术领域
本发明涉及多媒体数据处理技术领域,特别是涉及一种分布式转码方法、装置及系统。
背景技术
现有技术中,普通的视频转码方式基于对视频文件的分割,即对一个视频文件进行转码时,首先需要将该视频文件上传到服务器,然后用特定的编辑软件(例如AdobePremiere)将视频文件切割成一个个小片段,例如每个小片段都是一个I帧到下一个I帧之间的视频片段。在切割完成后,再将切割成的一个个小片段存储在编辑软件中,并在编辑软件中依次对各视频片段进行转码。转码完成后,再将转码后的各视频片段进行合成,以获得客户端能够播放的视频数据。此外,用户还需将合成后的视频数据下载至本地才能进行播放。
由上述方法可知,普通的视频转码方式至少需经过上传、切割、转码及合成多个步骤,在具体实施时非常繁琐。并且,各个小片段的转码过程之间是相互依赖的,即,在一个片段转码完成之后,才能进行下一个片段的转码,导致转码效率较低。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的分布式转码方法、装置及系统。
依据本发明的一个方面,提供了一种分布式转码方法,应用于位于网络侧的转码服务器,所述方法包括:
接收由web集群分发的来自客户端的视频转码请求,所述视频转码请求中包括待转码视频数据的内容标识;
根据所述内容标识从云存储器中获取所述待转码视频数据;
对所述待转码视频数据进行转码,获得转码后的目标视频数据;
将所述目标视频数据发送至所述web集群,由所述web集群将所述目标视频数据发送至所述客户端。
可选地,所述内容标识包括所述待转码视频数据对应的视频文件的文件标识信息以及所述待转码视频数据在所述视频文件中的位置信息;根据所述内容标识从云存储器中获取所述待转码视频数据,包括:
根据所述文件标识信息从云存储器中查找所述待转码视频数据对应的视频文件;
从所述视频文件中获取所述位置信息对应的视频数据,作为所述待转码视频数据。
可选地,所述位置信息为时间点信息;从所述视频文件中获取所述位置信息对应的视频数据,包括:
根据所述时间点信息确定所述待转码视频数据在所述视频文件中的开始时间和结束时间;
从所述视频文件中获取所述开始时间和所述结束时间之间的视频数据。
可选地,所述位置信息为视频帧信息;所述从所述视频文件中获取所述位置信息对应的视频数据,包括:
根据所述视频帧信息确定所述待转码视频数据在所述视频文件中的开始视频帧和结束视频帧;
从所述视频文件中获取所述开始视频帧和所述结束视频帧之间的视频数据。
可选地,所述云存储器包括多个CDN云存储器;根据所述内容标识从云存储器中获取所述待转码视频数据,包括:
将包含所述内容标识的数据获取请求发送至所述云存储器,由所述云存储器根据预设的内容标识和CDN云存储器之间的映射关系确定所述待转码视频数据对应的CDN云存储器,并从该CDN云存储器中获取所述待转码视频数据;
接收所述云存储器返回的待转码视频数据。
依据本发明的另一个方面,提供了一种分布式转码方法,应用于web集群,所述方法包括:
接收来自客户端的视频转码请求,所述视频转码请求中包括待转码视频数据的内容标识;
从位于网络侧的转码服务器阵列中选择用于响应所述视频转码请求的转码服务器,其中,所述转码服务器阵列中包括多个转码服务器;
将所述视频转码请求分配至所述选择的转码服务器,由所述转码服务器根据所述内容标识从云存储器中获取所述待转码视频数据,并对所述待转码视频数据进行转码,以获得转码后的目标视频数据;
接收所述转码服务器返回的所述目标视频数据,并将所述目标视频数据发送至所述客户端。
可选地,所述内容标识包括所述待转码视频数据对应的视频文件的文件标识信息以及所述待转码视频数据在所述视频文件中的位置信息;
所述文件标识信息用于所述转码服务器从云存储器中查找所述待转码视频数据对应的视频文件;
所述位置信息用于所述转码服务器从所述视频文件中获取所述位置信息对应的视频数据作为所述待转码视频数据。
可选地,从位于网络侧的转码服务器阵列中选择用于响应所述视频转码请求的转码服务器,包括:
从所述转码服务器阵列中选择满足预设条件的至少一个转码服务器,作为用于响应所述视频转码请求的转码服务器,其中,所述预设条件包括以下至少一项:
所述转码服务器处于空闲状态;
所述转码服务器运行正常;
所述转码服务器中当前未处理的请求数目最少;
所述转码服务器处理当前未处理数据的剩余时间最少。
可选地,从位于网络侧的转码服务器阵列中选择用于响应所述视频转码请求的转码服务器,包括:
当接收来自客户端的多个视频转码请求时,从所述转码服务器阵列中选择用于响应各视频转码请求的多个转码服务器,其中,所述各视频转码请求分别来自不同的客户端。
可选地,将所述视频转码请求分配至所述选择的转码服务器,包括:
根据所述各视频转码请求中包含的内容标识分别确定所述各视频转码请求对应的待转码视频数据的数据大小,并确定所述多个转码服务器的运行状态信息;
根据各个待转码视频数据的数据大小以及所述多个转码服务器的运行状态信息,分别为所述各视频转码请求确定其对应的转码服务器;
将所述各视频转码请求分别分配至各自对应的转码服务器。
可选地,所述内容标识包括所述待转码视频数据在与其对应的视频文件中的时间点信息和/或视频帧信息;根据所述各视频转码请求中包含的内容标识分别确定所述各视频转码请求对应的待转码视频数据的数据大小,包括:
根据所述时间点信息确定所述待转码视频数据在所述视频文件中的开始时间和结束时间;根据所述开始时间和所述结束时间确定所述待转码视频数据的数据大小;和/或,
根据所述视频帧信息确定所述待转码视频数据在所述视频文件中的开始视频帧和结束视频帧;根据所述开始视频帧和所述结束视频帧确定所述待转码视频数据的数据大小。
依据本发明的另一个方面,提供了一种分布式转码装置,设置于位于网络侧的转码服务器,所述装置包括:
第一接收模块,适于接收由web集群分发的来自客户端的视频转码请求,所述视频转码请求中包括待转码视频数据的内容标识;
获取模块,适于根据所述内容标识从云存储器中获取所述待转码视频数据;
转码模块,适于对所述待转码视频数据进行转码,获得转码后的目标视频数据;
发送模块,适于将所述目标视频数据发送至所述web集群,由所述web集群将所述目标视频数据发送至所述客户端。
可选地,所述内容标识包括所述待转码视频数据对应的视频文件的文件标识信息以及所述待转码视频数据在所述视频文件中的位置信息;所述获取模块还适于:
根据所述文件标识信息从云存储器中查找所述待转码视频数据对应的视频文件;
从所述视频文件中获取所述位置信息对应的视频数据,作为所述待转码视频数据。
可选地,所述位置信息为时间点信息;所述获取模块还适于:
根据所述时间点信息确定所述待转码视频数据在所述视频文件中的开始时间和结束时间;
从所述视频文件中获取所述开始时间和所述结束时间之间的视频数据。
可选地,所述位置信息为视频帧信息;所述获取模块还适于:
根据所述视频帧信息确定所述待转码视频数据在所述视频文件中的开始视频帧和结束视频帧;
从所述视频文件中获取所述开始视频帧和所述结束视频帧之间的视频数据。
可选地,所述云存储器包括多个CDN云存储器;所述获取模块还适于:
将包含所述内容标识的数据获取请求发送至所述云存储器,由所述云存储器根据预设的内容标识和CDN云存储器之间的映射关系确定所述待转码视频数据对应的CDN云存储器,并从该CDN云存储器中获取所述待转码视频数据;
接收所述云存储器返回的待转码视频数据。
依据本发明的另一个方面,提供了一种分布式转码装置,设置于web集群,所述装置包括:
第二接收模块,适于接收来自客户端的视频转码请求,所述视频转码请求中包括待转码视频数据的内容标识;
选择模块,适于从位于网络侧的转码服务器阵列中选择用于响应所述视频转码请求的转码服务器,其中,所述转码服务器阵列中包括多个转码服务器;
分配模块,适于将所述视频转码请求分配至所述选择的转码服务器,由所述转码服务器根据所述内容标识从云存储器中获取所述待转码视频数据,并对所述待转码视频数据进行转码,以获得转码后的目标视频数据;
第三接收模块,适于接收所述转码服务器返回的所述目标视频数据,并将所述目标视频数据发送至所述客户端。
可选地,所述内容标识包括所述待转码视频数据对应的视频文件的文件标识信息以及所述待转码视频数据在所述视频文件中的位置信息;
所述文件标识信息用于所述转码服务器从云存储器中查找所述待转码视频数据对应的视频文件;
所述位置信息用于所述转码服务器从所述视频文件中获取所述位置信息对应的视频数据作为所述待转码视频数据。
可选地,所述选择模块还适于:
从所述转码服务器阵列中选择满足预设条件的至少一个转码服务器,作为用于响应所述视频转码请求的转码服务器,其中,所述预设条件包括以下至少一项:
所述转码服务器处于空闲状态;
所述转码服务器运行正常;
所述转码服务器中当前未处理的请求数目最少;
所述转码服务器处理当前未处理数据的剩余时间最少。
可选地,所述选择模块还适于:
当接收来自客户端的多个视频转码请求时,从所述转码服务器阵列中选择用于响应各视频转码请求的多个转码服务器,其中,所述各视频转码请求分别来自不同的客户端。
可选地,所述分配模块还适于:
根据所述各视频转码请求中包含的内容标识分别确定所述各视频转码请求对应的待转码视频数据的数据大小,并确定所述多个转码服务器的运行状态信息;
根据各个待转码视频数据的数据大小以及所述多个转码服务器的运行状态信息,分别为所述各视频转码请求确定其对应的转码服务器;
将所述各视频转码请求分别分配至各自对应的转码服务器。
可选地,所述内容标识包括所述待转码视频数据在与其对应的视频文件中的时间点信息和/或视频帧信息;所述分配模块还适于:
根据所述时间点信息确定所述待转码视频数据在所述视频文件中的开始时间和结束时间;根据所述开始时间和所述结束时间确定所述待转码视频数据的数据大小;和/或,
根据所述视频帧信息确定所述待转码视频数据在所述视频文件中的开始视频帧和结束视频帧;根据所述开始视频帧和所述结束视频帧确定所述待转码视频数据的数据大小。
依据本发明的再一个方面,提供了一种分布式转码系统,包括web集群、位于网络侧的包括多个转码服务器的转码服务器阵列以及云存储器;其中:
所述web集群,适于接收来自客户端的视频转码请求,所述视频转码请求中包括待转码视频数据的内容标识;从所述转码服务器阵列中选择用于响应所述视频转码请求的转码服务器;将所述视频转码请求分配至所述选择的转码服务器;
所述选择的转码服务器,适于接收由所述web集群分发的视频转码请求;将包含所述内容标识的数据获取请求发送至所述云存储器;
所述云存储器,适于根据所述数据获取请求查询并获取与所述内容标识对应的待转码视频数据,并将所述待转码视频数据返回至所述选择的转码服务器;
所述选择的转码服务器,还适于接收所述云存储器返回的所述待转码视频数据;对所述待转码视频数据进行转码,获得转码后的目标视频数据;将所述目标视频数据发送至所述web集群;
所述web集群,还适于将所述目标视频数据发送至所述客户端。
可选地,所述转码服务器阵列中的多个转码服务器采用对称分布方式。
可选地,所述云存储器包括多个CDN云存储器。
采用本发明实施例提供的技术方案,web集群接收到来自客户端的视频转码请求时,能够从位于网络侧的转码服务器阵列中选择用于响应所述视频转码请求的转码服务器,并将视频转码请求转发至该转码服务器,并且,转码服务器接收到视频转码请求后,能够根据该请求中待转码视频数据的内容标识从云存储器中获取待转码视频数据,进而对获取到的待转码视频数据进行转码,并将转码后得到的目标视频数据发送至web集群,再由web集群将目标视频数据返回至客户端。因此,该技术方案在处理客户端发出的视频转码请求时,无需将视频文件下载到本地再将视频文件切割成一个个小片段,进而依次对各个小片段进行转码及合成过程,而只需利用网络侧的转码服务器从云存储器中获取正确的待转码视频数据进行转码即可,相较于现有技术而言,至少节省了对视频文件的下载、切割及合成过程,因此不仅省去了用户的手动操作过程(如下载视频文件至本地),且提高了对视频数据的转码效率。
进一步地,由于视频转码请求中的待转码视频数据的内容标识包括待转码视频数据对应的视频文件的文件标识信息以及待转码视频数据在视频文件中的位置信息,使得转码服务器能够利用其中的文件标识信息从云存储器中查找待转码视频数据对应的视频文件,并从该视频文件中获取位置信息对应的待转码视频数据,因此转码服务器无需从云服务器中获取完整的视频文件,而只需获取当前需要转码的一小段视频数据即可,不仅能减轻转码服务器的工作负担,还能提高对视频数据的转码效率。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1是根据本发明一个实施例的一种分布式转码方法的示意性流程图;
图2是根据本发明另一个实施例的一种分布式转码方法的示意性流程图;
图3是根据本发明一个实施例的一种分布式转码装置的示意性框图;
图4是根据本发明另一个实施例的一种分布式转码装置的示意性框图;
图5是根据本发明一个实施例的一种分布式转码系统的示意性框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明实施例提供的分布式转码方法至少涉及两个执行主体,包括位于网络侧的转码服务器以及web集群。其中,转码服务器主要用于接收web集群转发的来自客户端的视频转码请求,并根据视频转码请求从云存储器中获取相应的待转码视频数据,进而对待转码视频数据进行转码;web集群则主要用于接收来自客户端的视频转码请求,并将视频转码请求转发至转码服务器,最后再将转发服务器转码后得到的目标视频数据返回至客户端。通过转发服务器和web集群以及客户端的交互作用,实现了在网络侧对视频数据进行转码的目的。以下分别从转码服务器以及web集群这两个方面说明本发明实施例提供的分布式转码方法。
转码服务器端
图1是根据本发明一个实施例的一种分布式转码方法的示意性流程图。如图1所示,该方法应用于位于网络侧的转码服务器,且一般性地可包括以下步骤S101-S104:
步骤S101,接收由web集群分发的来自客户端的视频转码请求,视频转码请求中包括待转码视频数据的内容标识。
步骤S102,根据内容标识从云存储器中获取待转码视频数据。
步骤S103,对待转码视频数据进行转码,获得转码后的目标视频数据。
步骤S104,将目标视频数据发送至web集群,由web集群将目标视频数据发送至客户端。
采用本发明实施例提供的技术方案,位于网络侧的转码服务器接收到由web集群分发的来自客户端的视频转码请求时,能够根据视频转码请求中待转码视频数据的内容标识从云存储器中获取待转码视频数据,进而对获取到的待转码视频数据进行转码,并将转码后得到的目标视频数据发送至web集群,再由web集群将目标视频数据返回至客户端。因此,该技术方案在处理客户端发出的视频转码请求时,无需将视频文件下载到本地再将视频文件切割成一个个小片段,进而依次对各个小片段进行转码及合成过程,而只需从云存储器中获取正确的待转码视频数据进行转码即可,相较于现有技术而言,至少节省了对视频文件的下载、切割及合成过程,因此不仅省去了用户的手动操作过程(如下载视频文件至本地),且提高了对视频数据的转码效率。
在一个实施例中,内容标识包括待转码视频数据对应的视频文件的文件标识信息以及待转码视频数据在视频文件中的位置信息。因此,上述步骤S102可执行为以下步骤:首先,根据文件标识信息从云存储器中查找待转码视频数据对应的视频文件;其次,从该视频文件中获取位置信息对应的视频数据,作为待转码视频数据。
具体地,文件标识信息可以是视频文件本身包含的一些信息,如视频文件的标题、网址等信息,根据这些信息从云存储器中查找视频文件时非常简便快捷;还可以是预先为视频文件生成的唯一标识信息,例如将视频文件的标题、内容关键词、网址等信息中的至少两种信息按照预定规则进行排序、组合,从而生成一个较为复杂的唯一标识信息,所生成的唯一标识信息需和视频文件对应存储在云存储器中,以便转码服务器能够根据该唯一标识信息准确无误地查询到对应的视频文件,这种方式能够提高转码服务器查找视频文件的准确性。例如,多个视频文件可能存在标题相同而内容不同的情况,此时若仅使用标题信息查找视频文件,则有可能导致查询到错误的视频文件,影响后续的转码工作;但若采用唯一标识信息与视频文件的对应关系进行查找,即可确保转码服务器查找到准确的视频文件。
位置信息可以是时间点信息和/或视频帧信息。以下分别说明当位置信息为时间点信息或者为视频帧信息时如何从视频文件中获取位置信息对应的视频数据。
当位置信息为时间点信息时,转码服务器根据该时间点信息确定待转码视频数据在与其对应的视频文件中的开始时间和结束时间,进而从该视频文件中获取开始时间和结束时间之间的视频数据。本发明实施例对时间点信息的形式不做限定,时间点信息可以是数字、文字、字符、图画等任意形式。例如,待转码视频数据在与其对应的视频文件中的时间点信息为“1:30~2:00”,该时间点信息为数字形式,且根据该时间点信息可确定出待转码视频数据在与其对应的视频文件中的开始时间为1:30,结束时间为2:00;再例如,待转码视频数据在与其对应的视频文件中的时间点信息为“1分30秒至2分”,该时间点信息为文字结合数字的形式,且根据该时间点信息也可确定出待转码视频数据在与其对应的视频文件中的开始时间为1:30,结束时间为2:00,等等。然后,转码服务器根据确定出的开始时间“1:30”和结束时间“2:00”,从视频文件中获取1:30到2:00之间的视频数据,即为待转码视频数据。
当位置信息为视频帧信息时,转码服务器根据该视频帧信息确定待转码视频数据在视频文件中的开始视频帧和结束视频帧,进而从视频文件中获取开始视频帧和结束视频帧之间的视频数据。本发明实施例对视频帧信息的形式不做限定,视频帧信息可以是数字、文字、字符、图画等任意形式。例如,待转码视频数据在与其对应的视频文件中的视频帧信息为“50~100”,该视频帧信息为数字形式,且根据该视频帧信息可确定出待转码视频数据在与其对应的视频文件中的开始视频帧为第50帧,结束视频帧为第100帧;再例如,待转码视频数据在与其对应的视频文件中的视频帧信息为“第50帧至第100帧”,该视频帧信息为文字结合数字的形式,且根据该视频帧信息也可确定出待转码视频数据在与其对应的视频文件中的开始视频帧为第50帧,结束视频帧为第100帧,等等。然后,转码服务器根据确定出的开始视频帧(即第50帧)和结束视频帧(即第100帧),从视频文件中获取第50帧到第100帧之间的视频数据,即为待转码视频数据。
上述实施例中,由于视频转码请求中的待转码视频数据的内容标识包括待转码视频数据对应的视频文件的文件标识信息以及待转码视频数据在视频文件中的位置信息,使得转码服务器能够利用其中的文件标识信息从云存储器中查找待转码视频数据对应的视频文件,并从该视频文件中获取位置信息对应的待转码视频数据,因此转码服务器无需从云服务器中获取完整的视频文件,而只需获取当前需要转码的一小段视频数据即可,不仅能减轻转码服务器的工作负担,还能提高对视频数据的转码效率。
在一个实施例中,云存储器包括多个CDN云存储器。步骤S102还可执行为以下步骤:首先,将包含内容标识的数据获取请求发送至云存储器,由云存储器根据预设的内容标识和CDN云存储器之间的映射关系确定待转码视频数据对应的CDN云存储器,并从该CDN云存储器中获取待转码视频数据;其次,接收云存储器返回的待转码视频数据。
web集群端
图2是根据本发明一个实施例的一种分布式转码方法的示意性流程图。如图2所示,该方法应用于web集群,且一般性地可包括以下步骤S201-S204:
步骤S201,接收来自客户端的视频转码请求,视频转码请求中包括待转码视频数据的内容标识。
步骤S202,从位于网络侧的转码服务器阵列中选择用于响应视频转码请求的转码服务器,其中,转码服务器阵列中包括多个转码服务器。
步骤S203,将视频转码请求分配至选择的转码服务器,由转码服务器根据内容标识从云存储器中获取待转码视频数据,并对待转码视频数据进行转码,以获得转码后的目标视频数据。
步骤S204,接收转码服务器返回的目标视频数据,并将目标视频数据发送至客户端。
本实施例中,转码服务器阵列中的多个转码服务器可以是对称分布方式,即,每个转码服务器都具有等价的地位,都能够单独处理各自接收到的视频转码请求。
采用本发明实施例提供的技术方案,web集群接收到来自客户端的视频转码请求时,能够从位于网络侧的转码服务器阵列中选择用于响应所述视频转码请求的转码服务器,并将视频转码请求转发至该转码服务器,以使转码服务器能够根据该请求中的待转码视频数据的内容标识从云存储器中获取待转码视频数据进行转码,然后接收转码服务器返回的目标视频数据,并将目标视频数据返回至客户端。因此,该技术方案在处理客户端发出的视频转码请求时,无需将视频文件下载到本地再将视频文件切割成一个个小片段,进而依次对各个小片段进行转码及合成过程,而只需将视频转码请求转发至位于网络侧的转码服务器,并利用转码服务器从云存储器中获取正确的待转码视频数据进行转码即可,相较于现有技术而言,至少节省了对视频文件的下载、切割及合成过程,因此不仅省去了用户的手动操作过程(如下载视频文件至本地),且提高了对视频数据的转码效率。
在一个实施例中,内容标识包括待转码视频数据对应的视频文件的文件标识信息以及待转码视频数据在视频文件中的位置信息。其中,文件标识信息用于转码服务器从云存储器中查找待转码视频数据对应的视频文件,位置信息用于转码服务器从视频文件中获取位置信息对应的视频数据作为待转码视频数据。
具体地,文件标识信息可以是视频文件本身包含的一些信息,如视频文件的标题、网址等信息;还可以是预先为视频文件生成的唯一标识信息,例如将视频文件的标题、内容关键词、网址等信息中的至少两种信息按照预定规则进行排序、组合,从而生成一个较为复杂的唯一标识信息,所生成的唯一标识信息需和视频文件对应存储在云存储器中,以便转码服务器能够根据该唯一标识信息准确无误地查询到对应的视频文件。位置信息可以是时间点信息和/或视频帧信息。
在一个实施例中,步骤S202可执行为以下步骤:从转码服务器阵列中选择满足预设条件的至少一个转码服务器,作为用于响应视频转码请求的转码服务器。其中,预设条件包括以下至少一项:转码服务器处于空闲状态、转码服务器运行正常、转码服务器中当前未处理的请求数目最少、转码服务器处理当前未处理数据的剩余时间最少。本实施例中,选择满足预设条件的转码服务器来响应视频转码请求能够使视频转码请求在最短的时间内被处理,从而提高视频数据的转码效率。
例如,当转码服务器阵列中存在运行正常、且空闲状态的转码服务器时,可直接选择空闲状态的转码服务器来响应视频转码请求。如果存在多台转码服务器均运行正常、且均处于空闲状态,则可选择其中任一台转码服务器来响应视频转码请求。
再例如,假设转码服务器阵列中共包括5个转码服务器,这5个转码服务器均运行正常,且不存在处于空闲状态的转码服务器。具体的,假设这5个转码服务器中当前未处理的请求数目分别为1、2、3、4、5,则可选择第1个转码服务器(即当前未处理的请求数目为1的转码服务器)来响应视频转码请求。或者,假设这5个转码服务器处理完当前未处理数据的剩余时间分别为30秒、20秒、1分钟、3分钟、5分钟,则可选择第2个转码服务器(即剩余时间为20秒的转码服务器)来响应视频转码请求。
在一个实施例中,当接收到来自客户端的多个视频转码请求时,web集群从转码服务器阵列中选择用于响应各视频转码请求的多个转码服务器。其中,各视频转码请求分别来自不同的客户端。选择的多个转码服务器的数目可以与视频转码请求的数目相等,即每个转码服务器各处理1个视频转码请求;也可以小于视频转码请求的数目,即存在同一个转码服务器处理多个视频转码请求的情况。
从转码服务器阵列中选择出针对多个视频转码请求的多个转码服务器之后,如何为各个视频转码请求分配各自对应的转码服务器也有多种方式,分配参考因素如各转码服务器的运行状态、各视频转码请求对应的待处理视频数据的数据大小等。因此,可按照如下步骤将各视频转码请求分配至所选择的多个转码服务器:
步骤一、根据各视频转码请求中包含的内容标识分别确定各视频转码请求对应的待转码视频数据的数据大小,并确定多个转码服务器的运行状态信息。
其中,转码服务器的运行状态信息包括是否处于空闲状态、是否运行正常、当前未处理的请求数目、处理当前未处理数据的剩余时间等信息。内容标识包括待转码视频数据在与其对应的视频文件中的时间点信息和/或视频帧信息,可按照以下两种方式中的至少一种方式来确定各视频转码请求对应的待转码视频数据的数据大小:
(1)根据时间点信息确定待转码视频数据在视频文件中的开始时间和结束时间,然后根据开始时间和结束时间确定待转码视频数据的数据大小。本发明实施例对时间点信息的形式不做限定,时间点信息可以是数字、文字、字符、图画等任意形式。例如,时间点信息为“1:30~2:00”,该时间点信息为数字形式,且根据该时间点信息可确定出待转码视频数据在与视频文件中的开始时间为1:30,结束时间为2:00;再例如,时间点信息为“1分30秒至2分”,该时间点信息为文字结合数字的形式,且根据该时间点信息也可确定出待转码视频数据在视频文件中的开始时间为1:30,结束时间为2:00,等等。根据确定出的开始时间和结束时间即可确定出待转码视频数据的数据大小为时长30秒的视频数据,此外,还可结合视频文件中每秒内视频数据的单位大小计算出时长30秒的视频数据的容量大小,如100KB。
(2)根据视频帧信息确定待转码视频数据在视频文件中的开始视频帧和结束视频帧,然后根据开始视频帧和结束视频帧确定待转码视频数据的数据大小。本发明实施例对视频帧信息的形式不做限定,视频帧信息可以是数字、文字、字符、图画等任意形式。例如,视频帧信息为“50~100”,该视频帧信息为数字形式,且根据该视频帧信息可确定出待转码视频数据在视频文件中的开始视频帧为第50帧,结束视频帧为第100帧;再例如,视频帧信息为“第50帧至第100帧”,该视频帧信息为文字结合数字的形式,且根据该视频帧信息也可确定出待转码视频数据在视频文件中的开始视频帧为第50帧,结束视频帧为第100帧,等等。根据确定出的开始视频帧和结束视频帧即可确定出待转码视频数据为具有50帧的视频数据,此外,还可结合视频文件中每帧视频数据的单位大小计算出50帧的视频数据的容量大小,如100KB。
步骤二、根据各个待转码视频数据的数据大小以及多个转码服务器的运行状态信息,分别为各视频转码请求确定其对应的转码服务器。
具体地,当多个转码服务器的运行状态信息均相同(例如均处于空闲状态、当前未处理的视频转码请求数目相同等)时,可随机为各视频转码请求确定其对应的转码服务器;当多个转码服务器的运行状态信息不同时,可按照负载均衡策略为各视频转码请求确定其对应的转码服务器。例如,假设为5个视频转码请求选择了5个不同的转码服务器,且选择的5个转码服务器均运行正常。当这5个转码服务器均处于空闲状态时,可随机为5个视频转码请求分配其中任一个转码服务器。当这5个转码服务器均正在处理其他视频转码请求、且各转码服务器处理未完成的其他视频转码请求的剩余时间分别为30秒、20秒、1分钟、3分钟、5分钟时,为使接收到的5个视频转码请求能够被尽快处理完成,可将数据越大的待转码视频数据对应的视频转码请求分配至剩余时间越短的转码服务器,将数据越小的待转码视频数据对应的视频转码请求分配至剩余时间越长的转码服务器。
步骤三、将各视频转码请求分别分配至各自对应的转码服务器。
图3是根据本发明一个实施例的一种分布式转码装置的示意性框图。如图3所示,该装置设置于位于网络侧的转码服务器,包括:
第一接收模块310,适于接收由web集群分发的来自客户端的视频转码请求,视频转码请求中包括待转码视频数据的内容标识;
获取模块320,与第一接收模块310相耦合,适于根据内容标识从云存储器中获取待转码视频数据;
转码模块330,与获取模块320相耦合,适于对待转码视频数据进行转码,获得转码后的目标视频数据;
发送模块340,与转码模块330相耦合,适于将目标视频数据发送至web集群,由web集群将目标视频数据发送至客户端。
可选地,内容标识包括待转码视频数据对应的视频文件的文件标识信息以及待转码视频数据在视频文件中的位置信息;获取模块320还适于:
根据文件标识信息从云存储器中查找待转码视频数据对应的视频文件;
从视频文件中获取位置信息对应的视频数据,作为待转码视频数据。
可选地,位置信息为时间点信息;获取模块320还适于:
根据时间点信息确定待转码视频数据在视频文件中的开始时间和结束时间;
从视频文件中获取开始时间和结束时间之间的视频数据。
可选地,位置信息为视频帧信息;获取模块320还适于:
根据视频帧信息确定待转码视频数据在视频文件中的开始视频帧和结束视频帧;
从视频文件中获取开始视频帧和结束视频帧之间的视频数据。
可选地,云存储器包括多个CDN云存储器;获取模块320还适于:
将包含内容标识的数据获取请求发送至云存储器,由云存储器根据预设的内容标识和CDN云存储器之间的映射关系确定待转码视频数据对应的CDN云存储器,并从该CDN云存储器中获取待转码视频数据;
接收云存储器返回的待转码视频数据。
采用本发明实施例提供的装置,位于网络侧的转码服务器接收到由web集群分发的来自客户端的视频转码请求时,能够根据视频转码请求中待转码视频数据的内容标识从云存储器中获取待转码视频数据,进而对获取到的待转码视频数据进行转码,并将转码后得到的目标视频数据发送至web集群,再由web集群将目标视频数据返回至客户端。因此,该技术方案在处理客户端发出的视频转码请求时,无需将视频文件下载到本地再将视频文件切割成一个个小片段,进而依次对各个小片段进行转码及合成过程,而只需从云存储器中获取正确的待转码视频数据进行转码即可,相较于现有技术而言,至少节省了对视频文件的下载、切割及合成过程,因此不仅省去了用户的手动操作过程(如下载视频文件至本地),且提高了对视频数据的转码效率。
图4是根据本发明另一个实施例的一种分布式转码装置的示意性框图。如图4所示,该装置设置于web集群,包括:
第二接收模块410,适于接收来自客户端的视频转码请求,视频转码请求中包括待转码视频数据的内容标识;
选择模块420,与第二接收模块410相耦合,适于从位于网络侧的转码服务器阵列中选择用于响应视频转码请求的转码服务器,其中,转码服务器阵列中包括多个转码服务器;
分配模块430,与选择模块420相耦合,适于将视频转码请求分配至选择的转码服务器,由转码服务器根据内容标识从云存储器中获取待转码视频数据,并对待转码视频数据进行转码,以获得转码后的目标视频数据;
第三接收模块440,与分配模块430相耦合,适于接收转码服务器返回的目标视频数据,并将目标视频数据发送至客户端。
可选地,内容标识包括待转码视频数据对应的视频文件的文件标识信息以及待转码视频数据在视频文件中的位置信息;
文件标识信息用于转码服务器从云存储器中查找待转码视频数据对应的视频文件;
位置信息用于转码服务器从视频文件中获取位置信息对应的视频数据作为待转码视频数据。
可选地,选择模块420还适于:
从转码服务器阵列中选择满足预设条件的至少一个转码服务器,作为用于响应视频转码请求的转码服务器,其中,预设条件包括以下至少一项:
转码服务器处于空闲状态;
转码服务器运行正常;
转码服务器中当前未处理的请求数目最少;
转码服务器处理当前未处理数据的剩余时间最少。
可选地,选择模块420还适于:
当接收来自客户端的多个视频转码请求时,从转码服务器阵列中选择用于响应各视频转码请求的多个转码服务器,其中,各视频转码请求分别来自不同的客户端。
可选地,分配模块430还适于:
根据各视频转码请求中包含的内容标识分别确定各视频转码请求对应的待转码视频数据的数据大小,并确定多个转码服务器的运行状态信息;
根据各个待转码视频数据的数据大小以及多个转码服务器的运行状态信息,分别为各视频转码请求确定其对应的转码服务器;
将各视频转码请求分别分配至各自对应的转码服务器。
可选地,内容标识包括待转码视频数据在与其对应的视频文件中的时间点信息和/或视频帧信息;分配模块430还适于:
根据时间点信息确定待转码视频数据在视频文件中的开始时间和结束时间;根据开始时间和结束时间确定待转码视频数据的数据大小;和/或,
根据视频帧信息确定待转码视频数据在视频文件中的开始视频帧和结束视频帧;根据开始视频帧和结束视频帧确定待转码视频数据的数据大小。
采用本发明实施例提供的装置,web集群接收到来自客户端的视频转码请求时,能够从位于网络侧的转码服务器阵列中选择用于响应视频转码请求的转码服务器,并将视频转码请求转发至该转码服务器,以使转码服务器能够根据该请求中的待转码视频数据的内容标识从云存储器中获取待转码视频数据进行转码,然后接收转码服务器返回的目标视频数据,并将目标视频数据返回至客户端。因此,该技术方案在处理客户端发出的视频转码请求时,无需将视频文件下载到本地再将视频文件切割成一个个小片段,进而依次对各个小片段进行转码及合成过程,而只需将视频转码请求转发至位于网络侧的转码服务器,并利用转码服务器从云存储器中获取正确的待转码视频数据进行转码即可,相较于现有技术而言,至少节省了对视频文件的下载、切割及合成过程,因此不仅省去了用户的手动操作过程(如下载视频文件至本地),且提高了对视频数据的转码效率。
图5是根据本发明一个实施例的一种分布式转码系统的示意性框图。如图5所示,该系统包括web集群510、位于网络侧的包括多个转码服务器的转码服务器阵列520以及云存储器530;其中,web集群510与转码服务器阵列520相耦合,转码服务器阵列520与云存储器530相耦合,并且:
web集群510,适于接收来自客户端的视频转码请求,视频转码请求中包括待转码视频数据的内容标识;从转码服务器阵列520中选择用于响应视频转码请求的转码服务器;将视频转码请求分配至选择的转码服务器;
该选择的转码服务器,适于接收由web集群510分发的视频转码请求;将包含内容标识的数据获取请求发送至云存储器530;
云存储器530,适于根据数据获取请求查询并获取与内容标识对应的待转码视频数据,并将待转码视频数据返回至选择的转码服务器;
该选择的转码服务器,还适于接收云存储器530返回的待转码视频数据;对待转码视频数据进行转码,获得转码后的目标视频数据;将目标视频数据发送至web集群510;
web集群510,还适于将目标视频数据发送至客户端。
可选地,转码服务器阵列520中的多个转码服务器采用对称分布方式,即,每个转码服务器都具有等价的地位,都能够单独处理各自接收到的视频转码请求。
可选地,云存储器530包括多个CDN云存储器。
采用本发明实施例提供的系统,web集群接收到来自客户端的视频转码请求时,能够从位于网络侧的转码服务器阵列中选择用于响应所述视频转码请求的转码服务器,并将视频转码请求转发至该转码服务器,并且,转码服务器接收到视频转码请求后,能够根据该请求中待转码视频数据的内容标识从云存储器中获取待转码视频数据,进而对获取到的待转码视频数据进行转码,并将转码后得到的目标视频数据发送至web集群,再由web集群将目标视频数据返回至客户端。因此,该技术方案在处理客户端发出的视频转码请求时,无需将视频文件下载到本地再将视频文件切割成一个个小片段,进而依次对各个小片段进行转码及合成过程,而只需利用网络侧的转码服务器从云存储器中获取正确的待转码视频数据进行转码即可,相较于现有技术而言,至少节省了对视频文件的下载、切割及合成过程,因此不仅省去了用户的手动操作过程(如下载视频文件至本地),且提高了对视频数据的转码效率。
本领域的技术人员应可理解,图3和图4中的分布式转码装置以及图5中的分布式转码系统能够用来实现前文所述的分布式转码方案,其中的细节描述应与前文方法部分描述类似,为避免繁琐,此处不另赘述。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的分布式转码装置/系统中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
至此,本领域技术人员应认识到,虽然本文已详尽示出和描述了本发明的多个示例性实施例,但是,在不脱离本发明精神和范围的情况下,仍可根据本发明公开的内容直接确定或推导出符合本发明原理的许多其他变型或修改。因此,本发明的范围应被理解和认定为覆盖了所有这些其他变型或修改。
本发明实施例提供了A1.一种分布式转码方法,应用于位于网络侧的转码服务器,所述方法包括:
接收由web集群分发的来自客户端的视频转码请求,所述视频转码请求中包括待转码视频数据的内容标识;
根据所述内容标识从云存储器中获取所述待转码视频数据;
对所述待转码视频数据进行转码,获得转码后的目标视频数据;
将所述目标视频数据发送至所述web集群,由所述web集群将所述目标视频数据发送至所述客户端。
A2.根据A1所述的方法,其中,所述内容标识包括所述待转码视频数据对应的视频文件的文件标识信息以及所述待转码视频数据在所述视频文件中的位置信息;根据所述内容标识从云存储器中获取所述待转码视频数据,包括:
根据所述文件标识信息从云存储器中查找所述待转码视频数据对应的视频文件;
从所述视频文件中获取所述位置信息对应的视频数据,作为所述待转码视频数据。
A3.根据A2所述的方法,其中,所述位置信息为时间点信息;从所述视频文件中获取所述位置信息对应的视频数据,包括:
根据所述时间点信息确定所述待转码视频数据在所述视频文件中的开始时间和结束时间;
从所述视频文件中获取所述开始时间和所述结束时间之间的视频数据。
A4.根据A2所述的方法,其中,所述位置信息为视频帧信息;所述从所述视频文件中获取所述位置信息对应的视频数据,包括:
根据所述视频帧信息确定所述待转码视频数据在所述视频文件中的开始视频帧和结束视频帧;
从所述视频文件中获取所述开始视频帧和所述结束视频帧之间的视频数据。
A5.根据A1-A4中任一项所述的方法,其中,所述云存储器包括多个CDN云存储器;根据所述内容标识从云存储器中获取所述待转码视频数据,包括:
将包含所述内容标识的数据获取请求发送至所述云存储器,由所述云存储器根据预设的内容标识和CDN云存储器之间的映射关系确定所述待转码视频数据对应的CDN云存储器,并从该CDN云存储器中获取所述待转码视频数据;
接收所述云存储器返回的待转码视频数据。
本发明实施例还提供了B6.一种分布式转码方法,应用于web集群,所述方法包括:
接收来自客户端的视频转码请求,所述视频转码请求中包括待转码视频数据的内容标识;
从位于网络侧的转码服务器阵列中选择用于响应所述视频转码请求的转码服务器,其中,所述转码服务器阵列中包括多个转码服务器;
将所述视频转码请求分配至所述选择的转码服务器,由所述转码服务器根据所述内容标识从云存储器中获取所述待转码视频数据,并对所述待转码视频数据进行转码,以获得转码后的目标视频数据;
接收所述转码服务器返回的所述目标视频数据,并将所述目标视频数据发送至所述客户端。
B7.根据B6所述的方法,其中,所述内容标识包括所述待转码视频数据对应的视频文件的文件标识信息以及所述待转码视频数据在所述视频文件中的位置信息;
所述文件标识信息用于所述转码服务器从云存储器中查找所述待转码视频数据对应的视频文件;
所述位置信息用于所述转码服务器从所述视频文件中获取所述位置信息对应的视频数据作为所述待转码视频数据。
B8.根据B6或B7所述的方法,其中,从位于网络侧的转码服务器阵列中选择用于响应所述视频转码请求的转码服务器,包括:
从所述转码服务器阵列中选择满足预设条件的至少一个转码服务器,作为用于响应所述视频转码请求的转码服务器,其中,所述预设条件包括以下至少一项:
所述转码服务器处于空闲状态;
所述转码服务器运行正常;
所述转码服务器中当前未处理的请求数目最少;
所述转码服务器处理当前未处理数据的剩余时间最少。
B9.根据B6-B8中任一项所述的方法,其中,从位于网络侧的转码服务器阵列中选择用于响应所述视频转码请求的转码服务器,包括:
当接收来自客户端的多个视频转码请求时,从所述转码服务器阵列中选择用于响应各视频转码请求的多个转码服务器,其中,所述各视频转码请求分别来自不同的客户端。
B10.根据B9所述的方法,其中,将所述视频转码请求分配至所述选择的转码服务器,包括:
根据所述各视频转码请求中包含的内容标识分别确定所述各视频转码请求对应的待转码视频数据的数据大小,并确定所述多个转码服务器的运行状态信息;
根据各个待转码视频数据的数据大小以及所述多个转码服务器的运行状态信息,分别为所述各视频转码请求确定其对应的转码服务器;
将所述各视频转码请求分别分配至各自对应的转码服务器。
B11.根据B10所述的方法,其中,所述内容标识包括所述待转码视频数据在与其对应的视频文件中的时间点信息和/或视频帧信息;根据所述各视频转码请求中包含的内容标识分别确定所述各视频转码请求对应的待转码视频数据的数据大小,包括:
根据所述时间点信息确定所述待转码视频数据在所述视频文件中的开始时间和结束时间;根据所述开始时间和所述结束时间确定所述待转码视频数据的数据大小;和/或,
根据所述视频帧信息确定所述待转码视频数据在所述视频文件中的开始视频帧和结束视频帧;根据所述开始视频帧和所述结束视频帧确定所述待转码视频数据的数据大小。
本发明实施例还提供了C12.一种分布式转码装置,设置于位于网络侧的转码服务器,所述装置包括:
第一接收模块,适于接收由web集群分发的来自客户端的视频转码请求,所述视频转码请求中包括待转码视频数据的内容标识;
获取模块,适于根据所述内容标识从云存储器中获取所述待转码视频数据;
转码模块,适于对所述待转码视频数据进行转码,获得转码后的目标视频数据;
发送模块,适于将所述目标视频数据发送至所述web集群,由所述web集群将所述目标视频数据发送至所述客户端。
C13.根据C12所述的装置,其中,所述内容标识包括所述待转码视频数据对应的视频文件的文件标识信息以及所述待转码视频数据在所述视频文件中的位置信息;所述获取模块还适于:
根据所述文件标识信息从云存储器中查找所述待转码视频数据对应的视频文件;
从所述视频文件中获取所述位置信息对应的视频数据,作为所述待转码视频数据。
C14.根据C13所述的装置,其中,所述位置信息为时间点信息;所述获取模块还适于:
根据所述时间点信息确定所述待转码视频数据在所述视频文件中的开始时间和结束时间;
从所述视频文件中获取所述开始时间和所述结束时间之间的视频数据。
C15.根据C13所述的装置,其中,所述位置信息为视频帧信息;所述获取模块还适于:
根据所述视频帧信息确定所述待转码视频数据在所述视频文件中的开始视频帧和结束视频帧;
从所述视频文件中获取所述开始视频帧和所述结束视频帧之间的视频数据。
C16.根据C12-C15中任一项所述的装置,其中,所述云存储器包括多个CDN云存储器;所述获取模块还适于:
将包含所述内容标识的数据获取请求发送至所述云存储器,由所述云存储器根据预设的内容标识和CDN云存储器之间的映射关系确定所述待转码视频数据对应的CDN云存储器,并从该CDN云存储器中获取所述待转码视频数据;
接收所述云存储器返回的待转码视频数据。
本发明实施例还提供了D17.一种分布式转码装置,设置于web集群,所述装置包括:
第二接收模块,适于接收来自客户端的视频转码请求,所述视频转码请求中包括待转码视频数据的内容标识;
选择模块,适于从位于网络侧的转码服务器阵列中选择用于响应所述视频转码请求的转码服务器,其中,所述转码服务器阵列中包括多个转码服务器;
分配模块,适于将所述视频转码请求分配至所述选择的转码服务器,由所述转码服务器根据所述内容标识从云存储器中获取所述待转码视频数据,并对所述待转码视频数据进行转码,以获得转码后的目标视频数据;
第三接收模块,适于接收所述转码服务器返回的所述目标视频数据,并将所述目标视频数据发送至所述客户端。
D18.根据D17所述的装置,其中,所述内容标识包括所述待转码视频数据对应的视频文件的文件标识信息以及所述待转码视频数据在所述视频文件中的位置信息;
所述文件标识信息用于所述转码服务器从云存储器中查找所述待转码视频数据对应的视频文件;
所述位置信息用于所述转码服务器从所述视频文件中获取所述位置信息对应的视频数据作为所述待转码视频数据。
D19.根据D17或D18所述的装置,其中,所述选择模块还适于:
从所述转码服务器阵列中选择满足预设条件的至少一个转码服务器,作为用于响应所述视频转码请求的转码服务器,其中,所述预设条件包括以下至少一项:
所述转码服务器处于空闲状态;
所述转码服务器运行正常;
所述转码服务器中当前未处理的请求数目最少;
所述转码服务器处理当前未处理数据的剩余时间最少。
D20.根据D17-D19中任一项所述的装置,其中,所述选择模块还适于:
当接收来自客户端的多个视频转码请求时,从所述转码服务器阵列中选择用于响应各视频转码请求的多个转码服务器,其中,所述各视频转码请求分别来自不同的客户端。
D21.根据D20所述的装置,其中,所述分配模块还适于:
根据所述各视频转码请求中包含的内容标识分别确定所述各视频转码请求对应的待转码视频数据的数据大小,并确定所述多个转码服务器的运行状态信息;
根据各个待转码视频数据的数据大小以及所述多个转码服务器的运行状态信息,分别为所述各视频转码请求确定其对应的转码服务器;
将所述各视频转码请求分别分配至各自对应的转码服务器。
D22.根据D21所述的装置,其中,所述内容标识包括所述待转码视频数据在与其对应的视频文件中的时间点信息和/或视频帧信息;所述分配模块还适于:
根据所述时间点信息确定所述待转码视频数据在所述视频文件中的开始时间和结束时间;根据所述开始时间和所述结束时间确定所述待转码视频数据的数据大小;和/或,
根据所述视频帧信息确定所述待转码视频数据在所述视频文件中的开始视频帧和结束视频帧;根据所述开始视频帧和所述结束视频帧确定所述待转码视频数据的数据大小。
本发明实施例还提供了E23.一种分布式转码系统,包括web集群、位于网络侧的包括多个转码服务器的转码服务器阵列以及云存储器;其中:
所述web集群,适于接收来自客户端的视频转码请求,所述视频转码请求中包括待转码视频数据的内容标识;从所述转码服务器阵列中选择用于响应所述视频转码请求的转码服务器;将所述视频转码请求分配至所述选择的转码服务器;
所述选择的转码服务器,适于接收由所述web集群分发的视频转码请求;将包含所述内容标识的数据获取请求发送至所述云存储器;
所述云存储器,适于根据所述数据获取请求查询并获取与所述内容标识对应的待转码视频数据,并将所述待转码视频数据返回至所述选择的转码服务器;
所述选择的转码服务器,还适于接收所述云存储器返回的所述待转码视频数据;对所述待转码视频数据进行转码,获得转码后的目标视频数据;将所述目标视频数据发送至所述web集群;
所述web集群,还适于将所述目标视频数据发送至所述客户端。
E24.根据E23所述的系统,其中,所述转码服务器阵列中的多个转码服务器采用对称分布方式。
E25.根据E23或E24所述的系统,其中,所述云存储器包括多个CDN云存储器。

Claims (10)

1.一种分布式转码方法,应用于位于网络侧的转码服务器,所述方法包括:
接收由web集群分发的来自客户端的视频转码请求,所述视频转码请求中包括待转码视频数据的内容标识;
根据所述内容标识从云存储器中获取所述待转码视频数据;
对所述待转码视频数据进行转码,获得转码后的目标视频数据;
将所述目标视频数据发送至所述web集群,由所述web集群将所述目标视频数据发送至所述客户端。
2.根据权利要求1所述的方法,其中,所述内容标识包括所述待转码视频数据对应的视频文件的文件标识信息以及所述待转码视频数据在所述视频文件中的位置信息;根据所述内容标识从云存储器中获取所述待转码视频数据,包括:
根据所述文件标识信息从云存储器中查找所述待转码视频数据对应的视频文件;
从所述视频文件中获取所述位置信息对应的视频数据,作为所述待转码视频数据。
3.根据权利要求2所述的方法,其中,所述位置信息为时间点信息;从所述视频文件中获取所述位置信息对应的视频数据,包括:
根据所述时间点信息确定所述待转码视频数据在所述视频文件中的开始时间和结束时间;
从所述视频文件中获取所述开始时间和所述结束时间之间的视频数据。
4.根据权利要求2所述的方法,其中,所述位置信息为视频帧信息;所述从所述视频文件中获取所述位置信息对应的视频数据,包括:
根据所述视频帧信息确定所述待转码视频数据在所述视频文件中的开始视频帧和结束视频帧;
从所述视频文件中获取所述开始视频帧和所述结束视频帧之间的视频数据。
5.根据权利要求1-4中任一项所述的方法,其中,所述云存储器包括多个CDN云存储器;根据所述内容标识从云存储器中获取所述待转码视频数据,包括:
将包含所述内容标识的数据获取请求发送至所述云存储器,由所述云存储器根据预设的内容标识和CDN云存储器之间的映射关系确定所述待转码视频数据对应的CDN云存储器,并从该CDN云存储器中获取所述待转码视频数据;
接收所述云存储器返回的待转码视频数据。
6.一种分布式转码方法,应用于web集群,所述方法包括:
接收来自客户端的视频转码请求,所述视频转码请求中包括待转码视频数据的内容标识;
从位于网络侧的转码服务器阵列中选择用于响应所述视频转码请求的转码服务器,其中,所述转码服务器阵列中包括多个转码服务器;
将所述视频转码请求分配至所述选择的转码服务器,由所述转码服务器根据所述内容标识从云存储器中获取所述待转码视频数据,并对所述待转码视频数据进行转码,以获得转码后的目标视频数据;
接收所述转码服务器返回的所述目标视频数据,并将所述目标视频数据发送至所述客户端。
7.根据权利要求6所述的方法,其中,所述内容标识包括所述待转码视频数据对应的视频文件的文件标识信息以及所述待转码视频数据在所述视频文件中的位置信息;
所述文件标识信息用于所述转码服务器从云存储器中查找所述待转码视频数据对应的视频文件;
所述位置信息用于所述转码服务器从所述视频文件中获取所述位置信息对应的视频数据作为所述待转码视频数据。
8.一种分布式转码装置,设置于位于网络侧的转码服务器,所述装置包括:
第一接收模块,适于接收由web集群分发的来自客户端的视频转码请求,所述视频转码请求中包括待转码视频数据的内容标识;
获取模块,适于根据所述内容标识从云存储器中获取所述待转码视频数据;
转码模块,适于对所述待转码视频数据进行转码,获得转码后的目标视频数据;
发送模块,适于将所述目标视频数据发送至所述web集群,由所述web集群将所述目标视频数据发送至所述客户端。
9.一种分布式转码装置,设置于web集群,所述装置包括:
第二接收模块,适于接收来自客户端的视频转码请求,所述视频转码请求中包括待转码视频数据的内容标识;
选择模块,适于从位于网络侧的转码服务器阵列中选择用于响应所述视频转码请求的转码服务器,其中,所述转码服务器阵列中包括多个转码服务器;
分配模块,适于将所述视频转码请求分配至所述选择的转码服务器,由所述转码服务器根据所述内容标识从云存储器中获取所述待转码视频数据,并对所述待转码视频数据进行转码,以获得转码后的目标视频数据;
第三接收模块,适于接收所述转码服务器返回的所述目标视频数据,并将所述目标视频数据发送至所述客户端。
10.一种分布式转码系统,包括web集群、位于网络侧的包括多个转码服务器的转码服务器阵列以及云存储器;其中:
所述web集群,适于接收来自客户端的视频转码请求,所述视频转码请求中包括待转码视频数据的内容标识;从所述转码服务器阵列中选择用于响应所述视频转码请求的转码服务器;将所述视频转码请求分配至所述选择的转码服务器;
所述选择的转码服务器,适于接收由所述web集群分发的视频转码请求;将包含所述内容标识的数据获取请求发送至所述云存储器;
所述云存储器,适于根据所述数据获取请求查询并获取与所述内容标识对应的待转码视频数据,并将所述待转码视频数据返回至所述选择的转码服务器;
所述选择的转码服务器,还适于接收所述云存储器返回的所述待转码视频数据;对所述待转码视频数据进行转码,获得转码后的目标视频数据;将所述目标视频数据发送至所述web集群;
所述web集群,还适于将所述目标视频数据发送至所述客户端。
CN201710079306.4A 2017-02-14 2017-02-14 分布式转码方法、装置及系统 Pending CN106973306A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710079306.4A CN106973306A (zh) 2017-02-14 2017-02-14 分布式转码方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710079306.4A CN106973306A (zh) 2017-02-14 2017-02-14 分布式转码方法、装置及系统

Publications (1)

Publication Number Publication Date
CN106973306A true CN106973306A (zh) 2017-07-21

Family

ID=59334479

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710079306.4A Pending CN106973306A (zh) 2017-02-14 2017-02-14 分布式转码方法、装置及系统

Country Status (1)

Country Link
CN (1) CN106973306A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109309646A (zh) * 2017-07-27 2019-02-05 贵州白山云科技股份有限公司 一种多媒体转码方法和系统
CN111031032A (zh) * 2019-12-12 2020-04-17 深圳市万佳安物联科技股份有限公司 云端视频转码方法及装置、解码方法及装置、及电子设备
CN117499710A (zh) * 2024-01-02 2024-02-02 中移(苏州)软件技术有限公司 视频转码调度方法、装置、可读存储介质、电子设备

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1538696A (zh) * 2003-10-24 2004-10-20 清华大学 一种支持大容量用户的多路实时视频网关及其应用方法
CN101026742A (zh) * 2006-12-27 2007-08-29 北京大学 一种数字家庭网络中同源流媒体的快速切换装置及方法
CN101917326A (zh) * 2009-11-17 2010-12-15 新奥特(北京)视频技术有限公司 一种分布式转码系统及其任务调度方法
CN102802053A (zh) * 2012-07-23 2012-11-28 深圳市融创天下科技股份有限公司 一种音视频文件转码集群调度方法及装置
CN102868707A (zh) * 2011-07-04 2013-01-09 腾讯科技(深圳)有限公司 一种文件下载和转码的方法和系统
CN102882829A (zh) * 2011-07-11 2013-01-16 腾讯科技(深圳)有限公司 一种转码方法及系统
US20140344415A1 (en) * 2011-09-16 2014-11-20 Tencent Technology (Shenzhen) Company Limited Mobile multimedia real-time transcoding system, apparatus, storage medium and method
CN105227968A (zh) * 2014-06-30 2016-01-06 惠州市伟乐科技股份有限公司 基于切片的视频转码加速方法
CN105407413A (zh) * 2014-09-11 2016-03-16 腾讯科技(深圳)有限公司 一种分布式视频转码方法及相关设备、系统

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1538696A (zh) * 2003-10-24 2004-10-20 清华大学 一种支持大容量用户的多路实时视频网关及其应用方法
CN101026742A (zh) * 2006-12-27 2007-08-29 北京大学 一种数字家庭网络中同源流媒体的快速切换装置及方法
CN101917326A (zh) * 2009-11-17 2010-12-15 新奥特(北京)视频技术有限公司 一种分布式转码系统及其任务调度方法
CN102868707A (zh) * 2011-07-04 2013-01-09 腾讯科技(深圳)有限公司 一种文件下载和转码的方法和系统
CN102882829A (zh) * 2011-07-11 2013-01-16 腾讯科技(深圳)有限公司 一种转码方法及系统
US20140344415A1 (en) * 2011-09-16 2014-11-20 Tencent Technology (Shenzhen) Company Limited Mobile multimedia real-time transcoding system, apparatus, storage medium and method
CN102802053A (zh) * 2012-07-23 2012-11-28 深圳市融创天下科技股份有限公司 一种音视频文件转码集群调度方法及装置
CN105227968A (zh) * 2014-06-30 2016-01-06 惠州市伟乐科技股份有限公司 基于切片的视频转码加速方法
CN105407413A (zh) * 2014-09-11 2016-03-16 腾讯科技(深圳)有限公司 一种分布式视频转码方法及相关设备、系统

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109309646A (zh) * 2017-07-27 2019-02-05 贵州白山云科技股份有限公司 一种多媒体转码方法和系统
CN111031032A (zh) * 2019-12-12 2020-04-17 深圳市万佳安物联科技股份有限公司 云端视频转码方法及装置、解码方法及装置、及电子设备
CN117499710A (zh) * 2024-01-02 2024-02-02 中移(苏州)软件技术有限公司 视频转码调度方法、装置、可读存储介质、电子设备
CN117499710B (zh) * 2024-01-02 2024-04-09 中移(苏州)软件技术有限公司 视频转码调度方法、装置、可读存储介质、电子设备

Similar Documents

Publication Publication Date Title
US10200495B2 (en) CDN scale down
US20080208961A1 (en) Parallel retrieval system
CN103391312B (zh) 资源离线下载方法及装置
CN106973306A (zh) 分布式转码方法、装置及系统
CN103685603B (zh) 域名系统解析方法及设备
CN104243627A (zh) 一种域名解析方法、装置及系统
CN102196060A (zh) 一种Cache服务器选择源站的方法和系统
CN106961469A (zh) 基于http代理服务器的无感知定向代理方法及系统
CN107113337B (zh) 用于网络内容传送的方法和系统
CN107333248B (zh) 一种短信实时发送方法和系统
CN105897850A (zh) 用于cdn平台的响应处理方法、调度代理服务器及系统
CN104581374A (zh) 一种获取切片文件和生成子m3u8文件的方法、节点及服务器
CN112788126B (zh) 资源下载方法、装置、服务器和存储介质
CN110336848A (zh) 一种访问请求的调度方法及调度系统、设备
CN109951323A (zh) 一种日志分析方法和系统
CN109729049A (zh) 信息的分享方法及装置
CN106254561A (zh) 一种网络资源文件的实时离线下载方法及系统
CN108933695A (zh) 用于处理信息的方法和装置
CN111246315B (zh) 视频交互方法、系统、边缘节点、客户端及存储介质
CN104394095B (zh) 数据传输方法、系统及源服务器
US11902352B2 (en) HttpDNS scheduling method, apparatus, medium and device
CN109522394A (zh) 知识库问答装置及建立方法
CN104994088B (zh) 基于WiFi连接的数据校验方法、客户端、服务端及系统
CN106970834A (zh) 任务处理的方法及装置
CN108022082B (zh) 业务引导方法、装置、系统、服务器及电子设备

Legal Events

Date Code Title Description
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20170721