CN112584182A - 多码率直播转码的数据包封装方法以及相关设备 - Google Patents
多码率直播转码的数据包封装方法以及相关设备 Download PDFInfo
- Publication number
- CN112584182A CN112584182A CN201910942682.0A CN201910942682A CN112584182A CN 112584182 A CN112584182 A CN 112584182A CN 201910942682 A CN201910942682 A CN 201910942682A CN 112584182 A CN112584182 A CN 112584182A
- Authority
- CN
- China
- Prior art keywords
- rate
- original
- data
- code stream
- node
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000004806 packaging method and process Methods 0.000 title claims description 29
- 239000012634 fragment Substances 0.000 claims abstract description 96
- 238000005538 encapsulation Methods 0.000 claims abstract description 34
- 238000012545 processing Methods 0.000 claims description 34
- 230000015654 memory Effects 0.000 claims description 31
- 238000010586 diagram Methods 0.000 description 32
- 238000004891 communication Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 7
- 238000004458 analytical method Methods 0.000 description 4
- 238000013467 fragmentation Methods 0.000 description 4
- 238000006062 fragmentation reaction Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012856 packing Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
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/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/234345—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 the reformatting operation being performed only on part of the stream, e.g. a region of the image or a time segment
-
- 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/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/266—Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
- H04N21/2662—Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种多码率直播转码的数据包封装方法,包括:直播转码节点接收直播源码流;所述直播转码节点根据所述直播源码流产生具有原始速率的原始码流;所述直播转码节点将所述原始码流中具有原始速率的第一个分片数据组封装到第一数据包中;所述直播转码节点发送所述第一数据包至下游节点。上述方案能够有效减少观众看到直播所需要的时间。
Description
技术领域
本申请直播领域,尤其涉及一种多码率直播转码的数据包封装方法以及相关设备。
背景技术
直播是指人们可以通过网络收看到远端正在进行的现场音视频实况,比如赛事、会议、教学、手术等等。直播是利用既有的局域网、城域网甚至是万维网络条件实现对音视频信号的实时传输,并且能够在远端实现流畅的收看。
但是,本领域的技术人员在长期研究下发现,针对原始码流的直播转码所占的时间比较长,从而导致观众看到直播所需要的时间比较长,用户体验不佳。
发明内容
为了解决上述问题,本申请提供了一种多码率直播转码的数据包封装方法以及相关设备,能够有效减少观众看到直播所需要的时间。
第一方面,提供了一种多码率直播转码的数据包封装方法,包括:
直播转码节点接收直播源码流;
所述直播转码节点根据所述直播源码流产生具有原始速率的原始码流;
所述直播转码节点将所述原始码流中具有原始速率的第一个分片数据组封装到第一数据包中;
所述直播转码节点发送所述第一数据包至下游节点。
上述方案中,直播转码节点根据直播源码流产生具有原始速率的原始码流,将原始码流的具有原始速率的第一个分片数据组封装到第一数据包中,并发送第一数据包至下游节点。也就是说,直播转码节点可以将原始码流不经过解码和转码,就直接进行封装,并发送给下游节点,从而有效地减少观众看到直播所需要的时间。
并且,可选地,直播转码节点可将所述原始码流中具有原始速率的第一个分片数据组单独封装到第一数据包中。
在一些可能的设计中,所述直播转码节点接收原始码流之后,所述方法还包括:
所述直播转码节点将所述原始码流中具有原始速率的第一个分片数据组进行第一转码处理,以获取具有第一速率的第一个分片数据组;
所述直播转码节点将所述原始码流中具有原始速率的第一个分片数据组进行第二转码处理,以获取具有第二速率的第一个分片数据组;
所述直播转码节点将所述原始码流中具有原始速率的第二个分片数据组、具有第一速率的第一个分片数据组以及具有第二速率的第一个分片数据组封装到第二数据包中;
所述直播转码节点将所述第二数据包发送至所述下游节点。
上述方案中,直播转码节点可以将所述原始码流中具有原始速率的第二个分片数据组、具有第一速率的第一个分片数据组以及具有第二速率的第一个分片数据组封装到第二数据包中,并发送第二数据包至下游节点,从而能够为下游节点提供多种速率的分片数据组。
在一些可能的设计中,所述直播转码节点接收原始码流之后,所述方法还包括:
所述直播转码节点将所述原始码流中具有原始速率的第二个分片数据组进行第一转码处理,以获取具有第一速率的第二个分片数据组;
所述直播转码节点将所述原始码流中具有原始速率的第二个分片数据组进行第二转码处理,以获取具有第二速率的第二个分片数据组;
所述直播转码节点将所述原始码流中具有原始速率的第三个分片数据组、具有第一速率的第二个分片数据组以及具有第二速率的第二个分片数据组封装到第三数据包中;
所述直播转码节点将所述第三数据包发送至所述下游节点。
上述方案中,直播转码节点可以将所述原始码流中具有原始速率的第三个分片数据组、具有第一速率的第二个分片数据组以及具有第二速率的第二个分片数据组封装到第三数据包中,并发送第三数据包至下游节点,从而能够持续地为下游节点提供多种速率的分片数据组。
在一些可能的设计中,所述第一个分片数据组为所述原始码流的首个分片数据。
在一些可能的设计中,所述第一个分配数据组包括所述原始码流的首个分配数据和第二个分配数据。
在一些可能的设计中,所述下游节点为终端设备或内容分发网络CDN节点。
第二方面,提供了一种多码率直播转码的数据包解封装方法,包括:
下游节点接收第一数据包,所述第一数据包封装有原始码流中具有原始速率的第一分片数据组;
所述下游节点将所述第一数据包中的所述具有原始速率的第一分片数据组发送至第一终端设备。
在一些可能的设计中,所述下游节点接收第二数据包,所述第二数据包封装有原始码流中具有原始速率的第二分片数据组、原始码流中具有第一速率的第一分片数据以及原始码流中具有第二速率的第一分片数据组;
所述下游节点将所述第二数据包中的具有原始速率的第二分片数据组发送至所述第一终端设备,将所述第二数据包中具有第一速率的第一分片数据组发送至第二终端设备,将所述第二数据包中具有第三速率的第一分片数据组发送至第三终端设备。
在一些可能的设计中,所述下游节点接收第三数据包,所述第三数据包封装有原始码流中具有原始速率的第三分片数据、原始码流中具有第一速率的第二分片数据以及原始码流中具有第二速率的第二分片数据;
所述下游节点将所述第三数据包中的具有原始速率的第三分片数据发送至所述第一终端设备,将所述第二数据包中具有第一速率的第二分片数据发送至第二终端设备,将所述第二数据包中具有第三速率的第二分片数据发送至第三终端设备。
在一些可能的设计中,所述第一个分片数据组为所述原始码流的第一个分片数据。
在一些可能的设计中,所述第一个分配数据组包括所述原始码流的第一个分片数据和第二个分片数据。
在一些可能的设计中,所述下游节点为终端设备或内容分发网络CDN节点。
第三方面,提供了一种直播转码节点,包括:接收模块、产生模块、封装模块以及发送模块,
所述接收模块用于接收直播源码流;
所述产生模块用于根据所述直播源码流产生具有原始速率的原始码流;
所述封装模块用于将所述原始码流中具有原始速率的第一个分片数据组封装到第一数据包中;
所述发送模块用于发送所述第一数据包至下游节点。
在一些可能的设计中,所述封装模块用于将所述原始码流中具有原始速率的第一个分片数据组进行第一转码处理,以获取具有第一速率的第一个分片数据组;
所述封装模块用于将所述原始码流中具有原始速率的第一个分片数据组进行第二转码处理,以获取具有第二速率的第一个分片数据组;
所述封装模块用于将所述原始码流中具有原始速率的第二个分片数据组、具有第一速率的第一个分片数据组以及具有第二速率的第一个分片数据组封装到第二数据包中;
所述发送模块用于将所述第二数据包发送至所述下游节点。
在一些可能的设计中,所述封装模块用于将所述原始码流中具有原始速率的第二个分片数据组进行第一转码处理,以获取具有第一速率的第二个分片数据组;
所述封装模块用于将所述原始码流中具有原始速率的第二个分片数据组进行第二转码处理,以获取具有第二速率的第二个分片数据组;
所述封装模块用于将所述原始码流中具有原始速率的第三个分片数据组、具有第一速率的第二个分片数据组以及具有第二速率的第二个分片数据组封装到第三数据包中;
所述发送模块用于将所述第三数据包发送至所述下游节点。
在一些可能的设计中,所述第一个分片数据组为所述原始码流的首个分片数据。
在一些可能的设计中,所述第一个分配数据组包括所述原始码流的首个分配数据和第二个分配数据。
在一些可能的设计中,所述下游节点为终端设备或内容分发网络CDN节点。
第四方面,提供了一种下游节点,包括:接收模块以及发送模块,
所述接收模块用于接收第一数据包,所述第一数据包封装有原始码流中具有原始速率的第一分片数据组;
所述发送模块用于将所述第一数据包中的所述具有原始速率的第一分片数据组发送至第一终端设备。
在一些可能的设计中,所述接收模块用于接收第二数据包,所述第二数据包封装有原始码流中具有原始速率的第二分片数据组、原始码流中具有第一速率的第一分片数据以及原始码流中具有第二速率的第一分片数据组;
所述发送模块用于将所述第二数据包中的具有原始速率的第二分片数据组发送至所述第一终端设备,将所述第二数据包中具有第一速率的第一分片数据组发送至第二终端设备,将所述第二数据包中具有第三速率的第一分片数据组发送至第三终端设备。
在一些可能的设计中,所述接收模块用于接收第三数据包,所述第三数据包封装有原始码流中具有原始速率的第三分片数据、原始码流中具有第一速率的第二分片数据以及原始码流中具有第二速率的第二分片数据;
所述发送模块用于将所述第三数据包中的具有原始速率的第三分片数据发送至所述第一终端设备,将所述第二数据包中具有第一速率的第二分片数据发送至第二终端设备,将所述第二数据包中具有第三速率的第二分片数据发送至第三终端设备。
在一些可能的设计中,所述第一个分片数据组为所述原始码流的第一分片数据。
在一些可能的设计中,所述第一个分配数据组包括所述原始码流的第一分配数据和第二个分配数据。
在一些可能的设计中,所述下游节点为终端设备或内容分发网络CDN节点。
第五方面,提供了一种直播转码节点,包括:处理器和存储器,所述处理器执行所述存储器中的代码执行如第一方面任一项所述的方法。
第六方面,提供了一种可读存储介质,包括指令,当所述指令在直播转码节点上运行时,使得所述直播转码节点执行如第一方面任一项所述的方法。
第七方面,提供了一种下游节点,包括:处理器和存储器,所述处理器执行所述存储器中的代码执行如第二方面任一项所述的方法。
第八方面,提供了一种可读存储介质,包括指令,当所述指令在下游节点上运行时,使得所述下游节点执行如第二方面任一项所述的方法。
上述方案中,直播转码节点根据直播源码流产生具有原始速率的原始码流,将原始码流的具有原始速率的第一个分片数据组封装到第一数据包中,并发送第一数据包至下游节点。也就是说,直播转码节点可以将原始码流不经过解码和转码,就直接进行封装,并发送给下游节点,从而有效地减少观众看到直播所需要的时间。
附图说明
为了更清楚地说明本申请实施例或背景技术中的技术方案,下面将对本申请实施例或背景技术中所需要使用的附图进行说明。
图1是本申请涉及的一种直播转码场景的示意图;
图2是本申请涉及的一种摄像设备的结构示意图;
图3是本申请涉及的一种直播转码节点的结构示意图;
图4是本申请涉及的一种边缘节点的结构示意图;
图5是本申请涉及的一种直播转码节点内的封装单元的封装示意图;
图6是本申请涉及的一种边缘节点内的解封装单元的解封装示意图;
图7是本申请涉及的直播转码的场景下各个环节的耗时分析图;
图8是本申请提出的一种直播转码节点的结构示意图;
图9是本申请提出的一种边缘节点的结构示意图;
图10是本申请涉及的一种直播转码节点内的封装单元的封装示意图;
图11是本申请涉及的一种边缘节点内的解封装单元的解封装示意图;
图12是本申请提出的另一种直播转码节点的结构示意图;
图13是本申请提供的一种多码率直播转码的数据包封装方法的流程示意图;
图14是本申请提供的一种多码率直播转码的数据包解封装方法的流程示意图;
图15是本申请涉及的一种直播转码节点的结构示意图;
图16是本申请涉及的一种边缘节点的结构示意图;
图17是本申请涉及的一种直播转码节点的硬件结构示意图;
图18是本申请涉及的一种边缘节点的硬件结构示意图。
具体实施方式
为了便于理解,下面首先对直播转码的场景进行详细的介绍。参见图1,图1是本申请涉及的一种直播转码场景的示意图。如图1所示,直播转码是指将直播现场的摄像设备110推送处理的直播源码流通过卫星120发送给直播转码节点130,直播转码节点130再将直播源码流换为不同编码格式、不同分辨率、不同码率等等的转码码流并打包成封装码流发送给内容分发网络(Content Delivery Network,CDN)中的边缘节点140。边缘节点140将对编码码流进行解封装,以获得多个转码码流,并根据终端设备150的需要将对应的转码码流发送给终端设备150,以满足不同网络环境、不同终端设备等各种场景下的播放需求。其中,编码格式包括H264以及H265等等。分辨率包括支持宽度范围:128-4096;支持高度范围:128-4096;支持单独指定宽度,高度依照宽度等比例缩放;支持单独指定高度,宽度依照高度等比例缩放等等。不同码率包括:支持视频输出码率范围:50kbps-10Mbps等等。
参见图2,图2是本申请涉及的一种摄像设备的结构示意图。该摄像设备110包括:采集单元111、编码单元112以及封装单元113。其中,采集单元111对直播现场进行采集,从而得到现场视频流。采集单元111将现场视频流发送给编码单元112,相应地,编码单元112接收采集单元111发送的现场视频流。编码单元112对现场视频流进行编码,从而得到编码视频流。编码单元112将编码视频流发送给封装单元113,相应地,封装单元113接收编码单元112发送的编码视频流。封装单元113对编码视频流进行编码,从而得到直播源码流。摄像设备110将直播源码流发送给卫星进行转发。
参见图3,图3是本申请涉及的一种直播转码节点的结构示意图。该直播转码节点130,包括:解封装单元131、解码单元132、编码单元133以及封装单元134。其中,解封装单元131对卫星发送给直播转码节点130的直播源码流进行解封装,从而得到原始码流。解封装单元131将原始码流发送给解码单元132,相应地,解码单元132接收解封装单元131发送的原始码流。解码单元132对原始码流进行解码,从而得到解码码流。解码单元将解码码流分别发送给多个编码单元进行编码,从而得到多个不同码率的转码码流。多个编码单元133分别将多个不同码率的转码码流发送给封装单元134,相应地,封装单元134接收多个编码单元133发送的多个转码码流。封装单元134对多个转码码流进行封装,从而得到封装码流。应理解,上述例子中是以多个编码单元为例进行说明,在实际应用中,多个编码单元可以集成为同一个编码单元,即,将解码码流输入编码单元进行并行计算,从而得到多个转码码流,此处不作具体限定。
参见图4,图4是本申请涉及的一种边缘节点的结构示意图。该边缘节点140,包括:解封装单元141以及组合单元142。其中,解封装单元141对直播转码节点发送给边缘节点140的封装码流进行解封装,从而得到解码码流。解封装单元141将解码码流发送给组合单元142,相应地,组合单元142接收解封装单元141发送的解码码流。组合单元142将解码码流进行组合从而得到多个转码码流。边缘节点140将与终端设备150请求对应的一路转码码流发送给终端设备150。
参见图5,图5是本申请涉及的一种直播转码节点内的封装单元的封装示意图。以图5所示为例,直播转码节点内的封装单元134对多个转码码流进行封装,从而得到封装码流具体可以是:将转码码流1分成分片数据1、分片数据2、…、m个分片数据总共m个分片数据,将转码码流2分成分片数据1、分片数据2、…、m个分片数据总共m个分片数据,以此类推,将转码码流n分成分片数据1、分片数据2、…、m个分片数据总共m个分片数据。封装单元将转码码流1的分片数据1、转码码流2的分片数据1、…、转码码流n的分片数据1进行封装打包,从而得到数据包1;封装单元将转码码流1的分片数据2、转码码流2的分片数据2、…、转码码流n的分片数据2进行封装打包,从而得到数据包2;以此类推,封装单元将转码码流1的分片数据m、转码码流2的分片数据m、…、转码码流n的分片数据m进行封装打包,从而得到数据包m。这里,数据包1、数据包2、…、数据包m组成了封装码流。
参见图6,图6是本申请涉及的一种边缘节点内的解封装单元的解封装示意图。以图6所示为例,组合单元142将解码码流进行组合从而得到多个转码码流具体可以是:对数据包1进行解封装,从而得到转码码流1的分片数据1、转码码流2的分片数据1、…、转码码流n的分片数据1;对数据包2进行解封装,从而得到转码码流1的分片数据2、转码码流2的分片数据2、…、转码码流n的分片数据2;以此类推;对数据包2进行解封装,从而得到转码码流1的分片数据m、转码码流2的分片数据m、…、转码码流n的分片数据m。这里,转码码流1的分片数据1、转码码流1的分片数据2、…、转码码流1的分片数据m重新组合成转码码流1;转码码流2的分片数据1、转码码流2的分片数据2、…、转码码流2的分片数据m重新组合成转码码流2;以此类推;转码码流n的分片数据1、转码码流n的分片数据2、…、转码码流n的分片数据m重新组合成转码码流n。
参见图7,图7是本申请涉及的直播转码的场景下各个环节的耗时分析图。在图1所示的直播转码的场景下,对直播转码的场景下的各个环节的时延进行测试,在经过摄像设备110的时延大概为2秒,在经过卫星120的时延大概为1秒,在经过直播转码节点130的时延大概为3秒,在经过边缘节点140的时延大概为1秒,在经过终端设备的时延大概为1秒。从上面的测试结果可以看出,经过直播转码节点时的时延是各个环节中最多的,占时直达3秒。
为了降低上述直播转码节点的时延,本申请提出了另一种直播转码节点以及边缘节点。下面将分别对直播转码节点以及边缘节点进行详细的介绍。
参见图8,图8是本申请提出的一种直播转码节点的结构示意图。该直播转码节点200包括:解封装单元210、解码单元220、编码单元230以及封装单元240。其中,解封装单元210对卫星发送给直播转码节点200的直播源码流进行解封装,从而得到原始码流。解封装单元210向解码单元220发送原始码流。相应地,解码单元220接收解封装单元210发送的原始码流。解码单元220对原始码流流进行解码,从而得到解码码流。解码单元220将解码码流分别发送给多个编码单元230进行编码,从而得到多个不同码率的转码码流。多个编码单元230分别将多个不同码率的转码码流发送给封装单元240,相应地,封装单元240接收多个编码单元230发送的多个转码码流。解封装单元210还将原始码流直接传输给封装单元240,以和其他转码码流一起进行封装,也就是说,在图3所示的直播转码节点的基础上增加了一路保持原先码率不变的码流,解封装单元210将直播源码流进行解封装,得到原始码流之后,直接将原始码流发送给封装单元240进行封装。
参见图9,图9是本申请提出的一种边缘节点的结构示意图。该边缘节点300包括:解封装单元310以及组合单元320。其中,解封装单元310对直播转码节点发送给边缘节点300的封装码流进行解封装,从而得到解封装码流。解封装单元310将解封装码流发送给组合单元320,相应地,组合单元320接收解封装单元310发送的解封装码流。组合单元320将解封装码流进行组合从而得到原始码流以及多个转码码流。边缘节点140将与终端设备150请求对应的原始码流或者其中一路转码码流发送给终端设备150。
参见图10,图10是本申请涉及的一种直播转码节点内的封装单元的封装示意图。以图10所示为例,当直播转码节点为图8所示的直播转码节点时,直播转码节点内的封装单元240对原始码流以及多个转码码流进行封装,从而得到封装码流具体可以是:将原始码流分成分片数据1、分片数据2、…、m个分片数据总共m个分片数据;将转码码流1分成分片数据1、分片数据2、…、m个分片数据总共m个分片数据;将转码码流2分成分片数据1、分片数据2、…、m个分片数据总共m个分片数据;以此类推;将转码码流n分成分片数据1、分片数据2、…、m个分片数据总共m个分片数据。由于原始码流不需要输入编码单元进行编码,因此,原始码流比其它转码码流更早被输入到封装单元240。在其他转码码流尚未输入封装单元240时,封装单元240先对原始码流单独进行封装,直到其他转发码流也输入到封装单元240时,才将原始码流和其他转发码流一起封装。继续以图10为例,假设原始码流的分片数据1首先输入封装单元240,之后,其他转码码流的分片数据1和原始码流的分片数据2都被输入到封装单元240,则封装单元240先将原始码流的分片数据1进行封装打包,从而得到数据包1,然后,封装单元240将原始码流的分片数据2、转码码流1的分片数据1、转码码流2的分片数据1、…、转码码流n的分片数据1进行封装打包,从而得到数据包2;封装单元240将原始码流的分片数据3、转码码流1的分片数据2、转码码流2的分片数据2、…、转码码流n的分片数据2进行封装打包,从而得到数据包3;以此类推;封装单元240将原始码流的分片数据m、转码码流1的分片数据m-1、转码码流2的分片数据m-1、…、转码码流n的分片数据m-1进行封装打包,从而得到数据包m;封装单元240将转码码流1的分片数据m、转码码流2的分片数据m、…、转码码流n的分片数据m进行封装打包,从而得到数据包m+1。这里,数据包1、数据包2、…、数据包m、数据包m+1组成了封装码流。
参见图11,图11是本申请涉及的一种边缘节点内的解封装单元的解封装示意图。以图11所示为例,当边缘节点为图9所示的边缘节点时,解封装单元310对直播转码节点发送给边缘节点300的封装码流进行解封装,从而得到解码码流具体为:对数据包1进行解封装,从而得到原始码流的分片数据1;对数据包1进行解封装,从而得到原始码流的分片数据2、转码码流1的分片数据1、转码码流2的分片数据1、…、转码码流n的分片数据1;对数据包2进行解封装,从而得到原始码流的分片数据3、转码码流1的分片数据2、转码码流2的分片数据2、…、转码码流n的分片数据2;以此类推;对数据包m进行解封装,从而得到原始码流的分片数据m、转码码流1的分片数据m-1、转码码流2的分片数据m-1、…、转码码流n的分片数据m-1;对数据包m+1进行解封装,从而得到转码码流1的分片数据m、转码码流2的分片数据m、…、转码码流n的分片数据m。组合单元320将解码码流进行组合从而得到原始码流以及多个转码码流具体为:组合单元320将原始码流的分片数据1、原始码流的分片数据2、…、原始码流的分片数据m重新组合成原始码流;转码码流1的分片数据1、转码码流1的分片数据2、…、转码码流1的分片数据m重新组合成转码码流1;转码码流2的分片数据1、转码码流2的分片数据2、…、转码码流2的分片数据m重新组合成转码码流2;以此类推;转码码流n的分片数据1、转码码流n的分片数据2、…、转码码流n的分片数据m重新组合成转码码流n。
参见图12,图12是本申请提出的另一种直播转码节点的结构示意图。图12所示的直播转码节点在图9所示的直播转码节点的基础上增加了解析单元250。所述解析单元250用于判断原始码流和目标输出码流是否除了封装格式不同之外,其他都相同,例如,编码格式、分辨率、码率、视频参数信息等等均相同。其中,目标输出码流可以是运营商根据实际情况,例如,运营商加入的阵营、成本要求等等预先设置的。在原始码流和目标输出码流除了封装格式不同之外,解析单元250直接将原始码流发送给封装单元240进行封装,以及,将原始码流发送给编码单元进行编码,从而得到多个转码码流,并将多个转码码流发送给封装单元240进行封装;在原始码流和目标输出码流不是除了封装格式不同之外,其他都相同的情况下,解析单元250直只将原始码流发送给编码单元进行编码,从而得到多个转码码流,并将多个转码码流发送给封装单元240进行封装。
可以理解,上述是以边缘节点为例进行说明,但是,在实际的应用中,图11所示的边缘节点所执行的步骤也可以发生在CDN的中心节点或者终端设备等等中,此处不作具体限定。
参见图13,图13是本申请提供的一种多码率直播转码的数据包封装方法的流程示意图。本实施方式的多码率直播转码,包括如下步骤:
S101:直播源通过卫星向直播转码节点发送直播源码流。相应地,直播转码节点接收直播源通过卫星发送的直播源码流。
在本申请具体的实施方式中,直播转码节点产生直播源码流的过程可以参见图2以及相关描述,此处不再展开赘述。
S102:直播转码节点根据直播源码流产生具有原始速率的原始码流。
在本申请具体的实施方式中,原始速率是指直播源码流的速率和原始码流的速率是相同的。例如,直播转码节点在接收到直播源码流之后,对直播源码流执行解封装从而得到原始码流。可以理解,直播转码节点只对直播源码流执行解封装操作时,得到的原始码流的速率将和直播源码流的速率是相同的。当然,直播转码节点还可以对直播源码流执行其他的操作,只要保证该操作不会引起速率的变化即可,此处不作具体限定。
S103:直播转码节点将所述原始码流中具有原始速率的第一个分片数据组封装到第一数据包中。
在本申请具体的实施方式中,原始码流可以被分成多个分片数据,例如,原始码流可以被分成分片数据1、分片数据2、…、m个分片数据总共m个分片数据。其中,每个分片数据可以包括一个或者多个数据帧。
在本申请具体的实施方式中,具有原始速率的第一个分片数据组至少包括分片数据1。举个例子说明,具有原始速率的第一个分片数据组可以包括分片数据1;或者,具有原始速率的第一个分片数据组可以包括分片数据1和分片数据2;具有原始速率的第一个分片数据组可以包括分片数据1、分片数据2和分片数据3等等。这里,具有原始速率的第一个分片数据组包含分片数据的数量取决于直播转码节点转码的速度,如果直播转码节点转码的速度越快,具有原始速率的第一个分片数据组包含分片数据的数量越少,如果直播转码节点转码的速度越慢,具有原始速率的第一个分片数据组包含分片数据的数量越多。举个例子说明,具有原始速率的第一个分片数据组可以是图10所示的例子中的原始码流的第一个分片。
在本申请具体的实施方式中,直播转码节点将所述原始码流的具有原始速率的第一个分片数据组封装到第一数据包中的过程可以参见图10中封装单元240将原始码流的分片数据1进行封装打包,从而得到数据包1,此处不再展开描述。
S104:直播转码节点发送所述第一数据包至下游节点。相应地,下游节点接收直播转码节点发送的所述第一数据包。
在本申请具体的实施方式中,下游节点可以包括CDN的中心节点、CDN的边缘节点以及终端设备,此处不做具体限定。
S105:直播转码节点将所述原始码流中具有原始速率的第一个分片数据组进行第一转码处理,以获取具有第一速率的第一个分片数据组。
在本申请具体的实施方式中,具有第一速率的第一个分片数据组可以是转码码流的第一个分片。举个例子说明,具有第一速率的第一个分片数据组可以是图10所示的例子中的其中一路转码码流的第一个分片,具体来说,可以是转码码流1的第一个分片,转码码流2的第一个分片,…,转码码流m的第一个分片中的任意一个转码码流的第一个分片,此处不作具体限定。
S106:直播转码节点将所述原始码流中具有原始速率的第一个分片数据组进行第二转码处理,以获取具有第二速率的第一个分片数据组。
在本申请具体的实施方式中,具有第二速率的第一个分片数据组可以是另一路转码码流的第一个分片。举个例子说明,具有第二速率的第一个分片数据组可以是图10所示的例子中的另外一路转码码流的第一个分片,具体来说,可以是转码码流1的第一个分片,转码码流2的第一个分片,…,转码码流m的第一个分片中的另外一个转码码流的第一个分片,此处不作具体限定。
S107:直播转码节点将所述原始码流中具有原始速率的第二个分片数据组、具有第一速率的第一个分片数据组以及具有第二速率的第一个分片数据组封装到第二数据包中。
在本申请具体的实施方式中,将所述原始码流的具有原始速率的第二个分片数据组、具有第一速率的第一个分片数据组以及具有第二速率的第一个分片数据组封装到第二数据包可以是:继续以图10所示的例子为例,具有原始速率的第二个分片数据组可以是原始码流的分片数据1,具有第一速率的第一个分片数据组可以是转码码流1的分片数据1,具有第二速率的第一个分片数据组可以是转码码流2的分片数据1,第二数据包可以是图10中的数据包2。
S108:直播转码节点将所述第二数据包发送至所述下游节点。相应地,下游节点接收直播转码节点发送的所述第二数据包。
S109:所述直播转码节点将所述原始码流中具有原始速率的第二个分片数据组进行第一转码处理,以获取具有第一速率的第二个分片数据组。
在本申请具体的实施方式中,具有第一速率的第二个分片数据组是具有第一速率的第一个分片数据组的后一个分片数据组。举个例子说明,具有第一速率的第二个分片数据组可以是图10所示的例子中的其中一路转码码流的第二个分片,具体来说,可以是转码码流1的第二个分片,转码码流2的第二个分片,…,转码码流m的第二个分片中的任意一个转码码流的第二个分片,此处不作具体限定。
S110:所述直播转码节点将所述原始码流中具有原始速率的第二个分片数据组进行第二转码处理,以获取具有第二速率的第二个分片数据组。
在本申请具体的实施方式中,具有第二速率的第二个分片数据组是具有第二速率的第一个分片数据组的后一个分片数据组。举个例子说明,具有第二速率的第二个分片数据组可以是图10所示的例子中的另外一路转码码流的第二个分片,具体来说,可以是转码码流1的第二个分片,转码码流2的第二个分片,…,转码码流m的第二个分片中的另位一个转码码流的第二个分片,此处不作具体限定。
S111:所述直播转码节点将所述原始码流中具有原始速率的第三个分片数据组、具有第一速率的第二个分片数据组以及具有第二速率的第二个分片数据组封装到第三数据包中。
在本申请具体的实施方式中,将所述原始码流的具有原始速率的第三个分片数据组、具有第一速率的第二个分片数据组以及具有第二速率的第二个分片数据组封装到第三数据包可以是:继续以图10所示的例子为例,具有原始速率的第三个分片数据组可以是原始码流的分片数据2,具有第一速率的第二个分片数据组可以是转码码流1的分片数据2,具有第二速率的第二个分片数据组可以是转码码流2的分片数据2,第三数据包可以是图10中的数据包3。
S112:所述直播转码节点将所述第三数据包发送至所述下游节点。相应地,所述下游节点接收所述直播转码节点发送的所述第三数据包。
参见图14,图14是本申请提供的一种多码率直播转码的数据包解封装方法的流程示意图。本实施方式的多码率直播转码的数据包解封装方法,包括如下步骤:
S201:所述直播转码节点将第一数据包发送下游节点。相应地,下游节点接收所述直播转码节点发送的第一数据包。其中,所述第一数据包封装有原始码流中具有原始速率的第一分片数据组。
在本申请具体的实施方式中,下游节点可以包括CDN的中心节点、CDN的边缘节点以及终端设备,此处不做具体限定。
在本申请具体的实施方式中,下游节点将直播转码节点发送的第一数据包进行解封装从而得到封装有原始码流中具有原始速率的第一分片数据组。
在本申请具体的实施方式中,具有原始速率的第一个分片数据组至少包括分片数据1。举个例子说明,具有原始速率的第一个分片数据组可以包括分片数据1;或者,具有原始速率的第一个分片数据组可以包括分片数据1和分片数据2;具有原始速率的第一个分片数据组可以包括分片数据1、分片数据2和分片数据3等等。这里,具有原始速率的第一个分片数据组包含分片数据的数量取决于直播转码节点转码的速度,如果直播转码节点转码的速度越快,具有原始速率的第一个分片数据组包含分片数据的数量越少,如果直播转码节点转码的速度越慢,具有原始速率的第一个分片数据组包含分片数据的数量越多。举个例子说明,具有原始速率的第一个分片数据组可以是图11所示的例子中的原始码流的第一个分片。
S202:所述下游节点将所述第一数据包中的所述具有原始码流中原始速率的第一分片数据组发送至第一终端设备。
在本申请具体的实施方式中,第一终端设备为请求具有原始速率分片数据组的终端设备。由于第一终端设备向所述下游节点请求了具有原始速率分片数据组,因此,所述下游节点响应所述请求将所述第一数据包中的所述具有原始速率的第一分片数据组发送至第一终端设备。
S203:所述直播转码节点将第二数据包发送下游节点。相应地,下游节点接收所述直播转码节点发送的第二数据包。其中,所述第二数据包封装有具有原始码流中原始速率的第二分片数据组、原始码流中具有第一速率的第一分片数据以及原始码流中具有第二速率的第一分片数据组。
在本申请具体的实施方式中,下游节点将直播转码节点发送的第二数据包进行解封装从而得到封装有原始码流中具有原始速率的第二分片数据组、原始码流中具有第一速率的第一分片数据以及原始码流中具有第二速率的第一分片数据组。
在本申请具体的实施方式中,具有原始速率的第二个分片数据组可以是原始码流的第二个分片。举个例子说明,具有原始速率的第二个分片数据组可以是图11所示的例子中的原始码流的第二个分片。
在本申请具体的实施方式中,具有第一速率的第一个分片数据组可以是转码码流的第一个分片。举个例子说明,具有第一速率的第一个分片数据组可以是图11所示的例子中的其中一路转码码流的第一个分片,具体来说,可以是转码码流1的第一个分片,转码码流2的第一个分片,…,转码码流m的第一个分片中的任意一个转码码流的第一个分片,此处不作具体限定。
在本申请具体的实施方式中,具有第二速率的第一个分片数据组可以是转码码流的第一个分片。具有第二速率的第一个分片数据组可以是图11所示的例子中的另外一路转码码流的第一个分片,具体来说,可以是转码码流1的第一个分片,转码码流2的第一个分片,…,转码码流m的第一个分片中的另位一个转码码流的第一个分片,此处不作具体限定。
S204:所述下游节点将所述第二数据包中的具有原始速率的第二分片数据组发送至所述第一终端设备。
S205:所述下游节点将所述第二数据包中具有第一速率的第一分片数据组发送至第二终端设备。
在本申请具体的实施方式中,第二终端设备为请求具有第一速率分片数据组的终端设备。由于第二终端设备向所述下游节点请求了具有第一速率分片数据组,因此,所述下游节点响应所述请求将所述第二数据包中的所述具有第一速率的第二分片数据组发送至第二终端设备。
S206:所述下游节点将所述第二数据包中具有第三速率的第一分片数据组发送至第三终端设备。
在本申请具体的实施方式中,第三终端设备为请求具有第二速率分片数据组的终端设备。由于第三终端设备向所述下游节点请求了具有第二速率分片数据组,因此,所述下游节点响应所述请求将所述第三数据包中的所述具有第二速率的第三分片数据组发送至第三终端设备。
S207:所述直播转码节点将第三数据包发送下游节点。相应地,下游节点接收所述直播转码节点发送的第三数据包。其中,所述第三数据包封装有原始码流中具有原始速率的第三分片数据、原始码流中具有第一速率的第二分片数据以及原始码流中具有第二速率的第二分片数据。
在本申请具体的实施方式中,下游节点将直播转码节点发送的第三数据包进行解封装从而得到封装有原始码流的具有原始速率的第三分片数据组、具有第一速率的第二分片数据以及具有第二速率的第二分片数据组。
在本申请具体的实施方式中,具有原始速率的第三个分片数据组可以是原始码流的第三个分片。举个例子说明,具有原始速率的第三个分片数据组可以是图11所示的例子中的原始码流的第三个分片。
在本申请具体的实施方式中,具有第一速率的第二个分片数据组可以是转码码流的第二个分片。举个例子说明,具有第一速率的第二个分片数据组可以是图11所示的例子中的其中一路转码码流的第二个分片,具体来说,可以是转码码流1的第二个分片,转码码流2的第二个分片,…,转码码流m的第二个分片中的任意一个转码码流的第二个分片,此处不作具体限定。
在本申请具体的实施方式中,具有第二速率的第二个分片数据组可以是转码码流的第二个分片。具有第二速率的第二个分片数据组可以是图11所示的例子中的另外一路转码码流的第一个分片,具体来说,可以是转码码流1的第一个分片,转码码流2的第一个分片,…,转码码流m的第一个分片中的另位一个转码码流的第二个分片,此处不作具体限定。
S208:所述下游节点将所述第三数据包中的具有原始速率的第三分片数据发送至所述第一终端设备。
S209:所述下游节点将所述第二数据包中具有第一速率的第二分片数据发送至第二终端设备。
S210:所述下游节点将所述第二数据包中具有第三速率的第二分片数据发送至第三终端设备。
参见图15,图15是本申请提供的一种直播转码节点的结构示意图。本申请提供的直播转码节点包括:接收模块410、产生模块420、封装模块430以及发送模块440。
所述接收模块410用于接收直播源码流。
所述产生模块420用于根据所述直播源码流产生具有原始速率的原始码流。
所述封装模块430用于将所述原始码流中具有原始速率的第一个分片数据组封装到第一数据包中。
所述发送模块440用于发送所述第一数据包至下游节点。
可以理解,图15所示的直播转码节点可以用于执行图13所示的多码率直播转码的数据包封装方法中直播转码节点执行的步骤,此处不再展开说明。
参见图16,图16是本申请提供的一种下游节点的结构示意图。本申请提供的直播转码节点包括:处理模块510、接收模块520以及发送模块530。
所述处理模块510用于控制接收模块520以及发送模块530进行工作。
所述接收模块520用于接收第一数据包,所述第一数据包封装有原始码流中具有原始速率的第一分片数据组;
所述发送模块530用于将所述第一数据包中的所述具有原始速率的第一分片数据组发送至第一终端设备
可以理解,图16所示的直播转码节点可以用于执行图14所示的多码率直播转码的数据包解封装方法中直播转码节点执行的步骤,此处不再展开说明。
参见图17,图17是本申请提供的一种直播转码节点的硬件结构示意图。直播转码节点包括处理单元610和通信接口620,处理单元610用于执行各种软件程序所定义的功能,例如,用于实现直播转码节点的功能。通信接口620用于与其他计算节点进行通信交互,其他设备可以是其它物理服务器,具体地,通信接口620可以是网络适配卡。
可选地,该直播转码节点还可以包括输入/输出接口630,输入/输出接口630连接有输入/输出设备,用于接收输入的信息,输出操作结果。输入/输出接口630可以为鼠标、键盘、显示器、或者光驱等。可选地,该直播转码节点还可以包括辅助存储器640,一般也称为外存,辅助存储器640的存储介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如光盘)、或者半导体介质(例如固态硬盘)等。
可选的,直播转码节点还可以包括总线650。其中,处理单元610、通信接口620、输入/输出接口630、辅助存储器640可以通过总线650连接。总线650可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extendedindustry standard architecture,EISA)总线等。总线650可以分为地址总线、数据总线、控制总线等。为便于表示,图17中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。
处理单元610可以有多种具体实现形式,例如处理单元610可以包括处理器611和存储器612,处理器611根据存储器612中存储的程序指令执行图13所示的实施例的相关操作。处理器611可以为中央处理单元(central processing unit,CPU)。该处理器还可以是其它通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(fieldprogrammable gate Array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。或者该处理器611采用一个或多个集成电路,用于执行相关程序,以实现本申请实施例所提供的技术方案。
直播转码节点中的各个单元的上述和其它操作和/或功能分别为了实现图13中的方法的相应流程,为了简洁,在此不再赘述。
参见图18,图18是本申请提供的一种的下游节点硬件结构示意图。下游节点包括处理单元710和通信接口720,处理单元710用于执行各种软件程序所定义的功能,例如,用于实现直播转码节点的功能。通信接口720用于与其他计算节点进行通信交互,其他设备可以是其它物理服务器,具体地,通信接口720可以是网络适配卡。
可选地,该直播转码节点还可以包括输入/输出接口730,输入/输出接口730连接有输入/输出设备,用于接收输入的信息,输出操作结果。输入/输出接口730可以为鼠标、键盘、显示器、或者光驱等。可选地,该直播转码节点还可以包括辅助存储器740,一般也称为外存,辅助存储器740的存储介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如光盘)、或者半导体介质(例如固态硬盘)等。
可选的,直播转码节点还可以包括总线750。其中,处理单元710、通信接口720、输入/输出接口730、辅助存储器740可以通过总线750连接。总线750可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extendedindustry standard architecture,EISA)总线等。总线750可以分为地址总线、数据总线、控制总线等。为便于表示,图18中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。
处理单元710可以有多种具体实现形式,例如处理单元710可以包括处理器711和存储器712,处理器711根据存储器712中存储的程序指令执行图14所示的实施例的相关操作。处理器711可以为中央处理单元(central processing unit,CPU)。该处理器还可以是其它通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(fieldprogrammable gate Array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。或者该处理器711采用一个或多个集成电路,用于执行相关程序,以实现本申请实施例所提供的技术方案。
直播转码节点中的各个单元的上述和其它操作和/或功能分别为了实现图14中的方法的相应流程,为了简洁,在此不再赘述。
需要说明的是,本申请实施例中的存储器可以包括易失性存储器(英文:volatilememory),例如随机存取存储器(英文:random-access memory,缩写:RAM);存储器也可以包括非易失性存储器(英文:non-volatile memory),例如只读存储器(英文:read-onlymemory,缩写:ROM),快闪存储器(英文:flash memory),硬盘(英文:hard disk drive,缩写:HDD)或固态硬盘(英文:solid-state drive,缩写:SSD);存储器还可以包括上述种类的存储器的组合。
基于相同的发明构思,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任意可能的实现方式中所述的方法。
基于相同的发明构思,本申请提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任意可能的实现方式中所述的方法。
上述方案中,直播转码节点根据直播源码流产生具有原始速率的原始码流,将原始码流的具有原始速率的第一个分片数据组封装到第一数据包中,并发送第一数据包至下游节点。也就是说,直播转码节点可以将原始码流不经过解码和转码,就直接进行封装,并发送给下游节点,从而有效地减少观众看到直播所需要的时间。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、存储盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态存储盘Solid State Disk(SSD))等。
Claims (28)
1.一种多码率直播转码的数据包封装方法,其特征在于,包括:
直播转码节点接收直播源码流;
所述直播转码节点根据所述直播源码流产生具有原始速率的原始码流;
所述直播转码节点将所述原始码流中具有原始速率的第一个分片数据组封装到第一数据包中;
所述直播转码节点发送所述第一数据包至下游节点。
2.根据权利要求1所述的方法,其特征在于,所述直播转码节点接收原始码流之后,所述方法还包括:
所述直播转码节点将所述原始码流中具有原始速率的第一个分片数据组进行第一转码处理,以获取具有第一速率的第一个分片数据组;
所述直播转码节点将所述原始码流中具有原始速率的第一个分片数据组进行第二转码处理,以获取具有第二速率的第一个分片数据组;
所述直播转码节点将所述原始码流中具有原始速率的第二个分片数据组、具有第一速率的第一个分片数据组以及具有第二速率的第一个分片数据组封装到第二数据包中;
所述直播转码节点将所述第二数据包发送至所述下游节点。
3.根据权利要求2所述的方法,其特征在于,所述直播转码节点接收原始码流之后,所述方法还包括:
所述直播转码节点将所述原始码流中具有原始速率的第二个分片数据组进行第一转码处理,以获取具有第一速率的第二个分片数据组;
所述直播转码节点将所述原始码流中具有原始速率的第二个分片数据组进行第二转码处理,以获取具有第二速率的第二个分片数据组;
所述直播转码节点将所述原始码流中具有原始速率的第三个分片数据组、具有第一速率的第二个分片数据组以及具有第二速率的第二个分片数据组封装到第三数据包中;
所述直播转码节点将所述第三数据包发送至所述下游节点。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述第一个分片数据组为所述原始码流的首个分片数据。
5.根据权利要求1至3任一项所述的方法,其特征在于,所述第一个分配数据组包括所述原始码流的首个分配数据和第二个分配数据。
6.根据权利要求1至3任一项所述的方法,其特征在于,所述下游节点为终端设备或内容分发网络CDN节点。
7.一种多码率直播转码的数据包解封装方法,包括:
下游节点接收第一数据包,所述第一数据包封装有原始码流中具有原始速率的第一分片数据组;
所述下游节点将所述第一数据包中的所述具有原始速率的第一分片数据组发送至第一终端设备。
8.根据权利要求7所述的方法,其特征在于,包括:
所述下游节点接收第二数据包,所述第二数据包封装有原始码流中具有原始速率的第二分片数据组、原始码流中具有第一速率的第一分片数据以及原始码流中具有第二速率的第一分片数据组;
所述下游节点将所述第二数据包中的具有原始速率的第二分片数据组发送至所述第一终端设备,将所述第二数据包中具有第一速率的第一分片数据组发送至第二终端设备,将所述第二数据包中具有第三速率的第一分片数据组发送至第三终端设备。
9.根据权利要求8所述的方法,其特征在于,包括:
所述下游节点接收第三数据包,所述第三数据包封装有原始码流中具有原始速率的第三分片数据、原始码流中具有第一速率的第二分片数据以及原始码流中具有第二速率的第二分片数据;
所述下游节点将所述第三数据包中的具有原始速率的第三分片数据发送至所述第一终端设备,将所述第二数据包中具有第一速率的第二分片数据发送至第二终端设备,将所述第二数据包中具有第三速率的第二分片数据发送至第三终端设备。
10.根据权利要求7至9任一项所述的方法,其特征在于,所述第一个分片数据组为所述原始码流的第一个分片数据。
11.根据权利要求7至9任一项所述的方法,其特征在于,所述第一个分配数据组包括所述原始码流的第一个分片数据和第二个分片数据。
12.根据权利要求7至9任一项所述的方法,其特征在于,所述下游节点为终端设备或内容分发网络CDN节点。
13.一种直播转码节点,其特征在于,包括:接收模块、产生模块、封装模块以及发送模块,
所述接收模块用于接收直播源码流;
所述产生模块用于根据所述直播源码流产生具有原始速率的原始码流;
所述封装模块用于将所述原始码流中具有原始速率的第一个分片数据组封装到第一数据包中;
所述发送模块用于发送所述第一数据包至下游节点。
14.根据权利要求13所述的节点,其特征在于,
所述封装模块用于将所述原始码流中具有原始速率的第一个分片数据组进行第一转码处理,以获取具有第一速率的第一个分片数据组;
所述封装模块用于将所述原始码流中具有原始速率的第一个分片数据组进行第二转码处理,以获取具有第二速率的第一个分片数据组;
所述封装模块用于将所述原始码流中具有原始速率的第二个分片数据组、具有第一速率的第一个分片数据组以及具有第二速率的第一个分片数据组封装到第二数据包中;
所述发送模块用于将所述第二数据包发送至所述下游节点。
15.根据权利要求14所述的节点,其特征在于,
所述封装模块用于将所述原始码流中具有原始速率的第二个分片数据组进行第一转码处理,以获取具有第一速率的第二个分片数据组;
所述封装模块用于将所述原始码流中具有原始速率的第二个分片数据组进行第二转码处理,以获取具有第二速率的第二个分片数据组;
所述封装模块用于将所述原始码流中具有原始速率的第三个分片数据组、具有第一速率的第二个分片数据组以及具有第二速率的第二个分片数据组封装到第三数据包中;
所述发送模块用于将所述第三数据包发送至所述下游节点。
16.根据权利要求13至15任一项所述的节点,其特征在于,所述第一个分片数据组为所述原始码流的首个分片数据。
17.根据权利要求13至15任一项所述的节点,其特征在于,所述第一个分配数据组包括所述原始码流的首个分配数据和第二个分配数据。
18.根据权利要求13至15任一项所述的节点,其特征在于,所述下游节点为终端设备或内容分发网络CDN节点。
19.一种下游节点,包括:接收模块以及发送模块,
所述接收模块用于接收第一数据包,所述第一数据包封装有原始码流中具有原始速率的第一分片数据组;
所述发送模块用于将所述第一数据包中的所述具有原始速率的第一分片数据组发送至第一终端设备。
20.根据权利要求19所述的节点,其特征在于,
所述接收模块用于接收第二数据包,所述第二数据包封装有原始码流中具有原始速率的第二分片数据组、原始码流中具有第一速率的第一分片数据以及原始码流中具有第二速率的第一分片数据组;
所述发送模块用于将所述第二数据包中的具有原始速率的第二分片数据组发送至所述第一终端设备,将所述第二数据包中具有第一速率的第一分片数据组发送至第二终端设备,将所述第二数据包中具有第三速率的第一分片数据组发送至第三终端设备。
21.根据权利要求20所述的节点,其特征在于,包括:
所述接收模块用于接收第三数据包,所述第三数据包封装有原始码流中具有原始速率的第三分片数据、原始码流中具有第一速率的第二分片数据以及原始码流中具有第二速率的第二分片数据;
所述发送模块用于将所述第三数据包中的具有原始速率的第三分片数据发送至所述第一终端设备,将所述第二数据包中具有第一速率的第二分片数据发送至第二终端设备,将所述第二数据包中具有第三速率的第二分片数据发送至第三终端设备。
22.根据权利要求19至21任一项所述的节点,其特征在于,所述第一个分片数据组为所述原始码流的第一分片数据。
23.根据权利要求19至21任一项所述的节点,其特征在于,所述第一个分配数据组包括所述原始码流的第一分配数据和第二个分配数据。
24.根据权利要求19至21任一项所述的节点,其特征在于,所述下游节点为终端设备或内容分发网络CDN节点。
25.一种直播转码节点,其特征在于,包括:处理器和存储器,所述处理器执行所述存储器中的代码执行如权利要求1至6任一权利要求所述的方法。
26.一种可读存储介质,其特征在于,包括指令,当所述指令在直播转码节点上运行时,使得所述直播转码节点执行如权利要求1至6任一权利要求所述的方法。
27.一种下游节点,其特征在于,包括:处理器和存储器,所述处理器执行所述存储器中的代码执行如权利要求7至12任一权利要求所述的方法。
28.一种可读存储介质,其特征在于,包括指令,当所述指令在下游节点上运行时,使得所述下游节点执行如权利要求7至12任一权利要求所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910942682.0A CN112584182B (zh) | 2019-09-30 | 2019-09-30 | 多码率直播转码的数据包封装方法以及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910942682.0A CN112584182B (zh) | 2019-09-30 | 2019-09-30 | 多码率直播转码的数据包封装方法以及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112584182A true CN112584182A (zh) | 2021-03-30 |
CN112584182B CN112584182B (zh) | 2024-01-09 |
Family
ID=75116532
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910942682.0A Active CN112584182B (zh) | 2019-09-30 | 2019-09-30 | 多码率直播转码的数据包封装方法以及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112584182B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1929462A (zh) * | 2006-07-25 | 2007-03-14 | 中山大学 | 一种数字家庭网络媒体格式转码装置及方法 |
US20110149033A1 (en) * | 2008-08-29 | 2011-06-23 | Song Zhao | Code stream conversion system and method, code stream identifying unit and solution determining unit |
CN103220550A (zh) * | 2012-01-19 | 2013-07-24 | 华为技术有限公司 | 视频转换的方法及装置 |
CN103686210A (zh) * | 2013-12-17 | 2014-03-26 | 广东威创视讯科技股份有限公司 | 实时音视频转码方法和系统 |
CN105763886A (zh) * | 2016-03-01 | 2016-07-13 | 深圳市茁壮网络股份有限公司 | 一种分布式转码方法和装置 |
CN105898319A (zh) * | 2015-12-22 | 2016-08-24 | 乐视云计算有限公司 | 视频转码方法和装置 |
CN109151614A (zh) * | 2017-06-19 | 2019-01-04 | 中兴通讯股份有限公司 | 一种降低hls直播播放延迟的方法及装置 |
-
2019
- 2019-09-30 CN CN201910942682.0A patent/CN112584182B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1929462A (zh) * | 2006-07-25 | 2007-03-14 | 中山大学 | 一种数字家庭网络媒体格式转码装置及方法 |
US20110149033A1 (en) * | 2008-08-29 | 2011-06-23 | Song Zhao | Code stream conversion system and method, code stream identifying unit and solution determining unit |
CN103220550A (zh) * | 2012-01-19 | 2013-07-24 | 华为技术有限公司 | 视频转换的方法及装置 |
CN103686210A (zh) * | 2013-12-17 | 2014-03-26 | 广东威创视讯科技股份有限公司 | 实时音视频转码方法和系统 |
CN105898319A (zh) * | 2015-12-22 | 2016-08-24 | 乐视云计算有限公司 | 视频转码方法和装置 |
CN105763886A (zh) * | 2016-03-01 | 2016-07-13 | 深圳市茁壮网络股份有限公司 | 一种分布式转码方法和装置 |
CN109151614A (zh) * | 2017-06-19 | 2019-01-04 | 中兴通讯股份有限公司 | 一种降低hls直播播放延迟的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112584182B (zh) | 2024-01-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11653036B2 (en) | Live streaming method and system, server, and storage medium | |
US11470405B2 (en) | Network video streaming with trick play based on separate trick play files | |
WO2016138844A1 (zh) | 音视频文件直播方法和系统、服务器 | |
CN108200447B (zh) | 直播数据传输方法、装置、电子设备、服务器及存储介质 | |
US20140359678A1 (en) | Device video streaming with trick play based on separate trick play files | |
EP2086240A1 (en) | A method and a system for supporting media data of various coding formats | |
US20100198981A1 (en) | Method and system for multimedia audio video transfer | |
US20140297804A1 (en) | Control of multimedia content streaming through client-server interactions | |
CN111416989A (zh) | 视频直播方法、系统及电子设备 | |
US9294791B2 (en) | Method and system for utilizing switched digital video (SDV) for delivering dynamically encoded video content | |
CN111182322B (zh) | 一种导播控制方法、装置、电子设备和存储介质 | |
EP3860120B1 (en) | Method for transmitting media data, and client and server | |
WO2019128668A1 (zh) | 视频码流处理方法、装置、网络设备和可读存储介质 | |
EP3637722A1 (en) | Method and apparatus for processing media information | |
CN114501052B (zh) | 直播数据处理方法、云平台、计算机设备和存储介质 | |
CN110602555B (zh) | 视频转码方法及装置 | |
CN112584182A (zh) | 多码率直播转码的数据包封装方法以及相关设备 | |
CN104639979A (zh) | 视频分享方法及系统 | |
CN116233490A (zh) | 视频合成方法、系统、装置、电子设备及存储介质 | |
CN111787417B (zh) | 基于人工智能ai的音视频的传输控制方法及相关设备 | |
CN111800649A (zh) | 存储视频的方法和装置以及生成视频的方法和装置 | |
KR102393158B1 (ko) | 메타데이터를 포함하는 비트 스트림을 이용한 서비스 제공 방법 및 장치 | |
WO2022100742A1 (zh) | 视频编码及视频播放方法、装置和系统 | |
Nakachi et al. | A conceptual foundation of NSCW transport design using an MMT standard | |
CN115942000B (zh) | H.264格式的视频流转码方法及装置、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220211 Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province Applicant after: Huawei Cloud Computing Technology Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Applicant before: HUAWEI TECHNOLOGIES Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |