CN111193936A - 视频流传输方法、装置、电子设备及计算机可读存储介质 - Google Patents
视频流传输方法、装置、电子设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN111193936A CN111193936A CN201911376086.7A CN201911376086A CN111193936A CN 111193936 A CN111193936 A CN 111193936A CN 201911376086 A CN201911376086 A CN 201911376086A CN 111193936 A CN111193936 A CN 111193936A
- Authority
- CN
- China
- Prior art keywords
- stream
- live
- sub
- video
- acquisition request
- 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 99
- 230000005540 biological transmission Effects 0.000 title claims abstract description 52
- 238000012545 processing Methods 0.000 claims description 33
- 230000003993 interaction Effects 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 7
- 230000002452 interceptive effect Effects 0.000 claims description 6
- 230000000153 supplemental effect Effects 0.000 claims description 6
- 230000008569 process Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 10
- 230000002829 reductive effect Effects 0.000 description 10
- 238000003780 insertion Methods 0.000 description 6
- 230000037431 insertion Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000005034 decoration Methods 0.000 description 2
- 235000019800 disodium phosphate Nutrition 0.000 description 2
- 238000005538 encapsulation Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 239000007784 solid electrolyte Substances 0.000 description 1
- 239000013589 supplement Substances 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/234363—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 altering the spatial resolution, e.g. for clients with a lower screen resolution
-
- 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/234381—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 altering the temporal resolution, e.g. decreasing the frame rate by frame skipping
-
- 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)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请实施例公开了一种视频流传输方法、装置、电子设备及计算机可读存储介质,其中,视频流传输方法包括:获取到第一客户端推送的原始直播流时,在原始直播流中插入预定帧,得到第一直播流;接着,基于预定帧,将第一直播流划分为至少两个第一切片,并基于至少两个第一切片将第一直播流划分为M路第一子流,M为大于1的整数;接着,接收到任一第二客户端发送的第一视频流获取请求时,根据第一视频流获取请求的类型,向任一第二客户端发送相应的视频流;第一视频流获取请求的类型包括第一直播流的获取请求或任一路第一子流的获取请求。实现了利用第一直播流进行P2P的功能,在技术上突破了无法在原始直播流上进行P2P的限制。
Description
技术领域
本申请实施例涉及数据传输技术领域,具体而言,本申请涉及一种视频流传输方法、装置、电子设备及计算机可读存储介质。
背景技术
基于因特网传输的直播节目已经成为一种流行的多媒体服务。为了取得更好的性能,服务提供商在直播多媒体流系统中使用了CDN(Content Delivery Network,内容分发网络)和P2P(Peer-to-Peer,点对点)技术,例如视频直播、语音广播等使用直播流的场景中。其中,P2P直播技术离不开切片,因为切片是实现不同用户间数据共享的基本数据单元,而且要求切片具有全网一致性,所以P2P直播技术要根据切片才能与其他人进行相互分享。
其中,比较常用的切片技术包括文件式切片与入侵式切片,然而,本申请发明人在具体实现过程中发现:无论是文件式切片还是入侵式切片,在切片形成过程中,都会或多或少地改变的原始直播流的特性,增加了处理复杂度,而且无论是基于文件式切片的直播系统,还是基于入侵式切片的直播系统,都无法避免的引入了另外一个独立的CDN系统,其中,文件式切片引入了静态文件CDN系统,入侵式切片引入了一个直播CDN系统,极大增加带宽成本。
发明内容
本申请实施例的目的旨在至少能解决上述的技术缺陷之一,特提出以下技术方案:
一方面,提供了一种视频流传输方法,包括:
获取到第一客户端推送的原始直播流时,在原始直播流中插入预定帧,得到第一直播流;
基于预定帧,将第一直播流划分为至少两个第一切片,并基于至少两个第一切片将第一直播流划分为M路第一子流,M为大于1的整数;
接收到任一第二客户端发送的第一视频流获取请求时,根据第一视频流获取请求的类型,向任一第二客户端发送相应的视频流;第一视频流获取请求的类型包括第一直播流的获取请求或任一路第一子流的获取请求。
一方面,提供了一种视频流传输方法,包括:
向服务器发送第一直播流的获取请求,并接收服务器返回的第一直播流并进行播放,第一直播流是服务器在第一客户端推送的原始直播流的每一视频帧中插入预定帧的直播流;
当播放第一直播流达到预定时长时,向服务器发送任一路第一子流的获取请求,并接收服务器返回的任一路第一子流,任一路第一子流是M路第一子流中的任一路,M路第一子流是服务器基于预定帧将第一直播流划分为至少两个第一切片,并基于至少两个第一切片对第一直播流进行划分得到的。
在一种可能的实现方式中,该方法还包括:
向其他第二客户端发送除任一路第一子流外的其他路第一子流的获取请求。
在一种可能的实现方式中,该方法还包括:
当根据任一路第一子流中包括的每个第一切片的编号,检测到任一第一切片丢失时,向服务器发送任一第一切片的补片获取请求,或者,向其他第二客户端发送任一第一切片的补片获取请求。
在一种可能的实现方式中,该方法还包括:
向服务器发送第二直播流的流获取请求,第二直播流是服务器对第一客户端推送的原始直播流进行转码,并在得到的转码流的每一视频帧中插入预定帧的直播流;
当播放第二直播流达到预定时长时,向服务器发送任一路第二子流的获取请求,任一路第二子流是N路第二子流中的任一路,N路第二子流是服务器基于预定帧将第二直播流划分为至少两个第二切片,并基于至少两个第二切片对第二直播流进行划分得到的。
一方面,提供了一种视频流传输方法,包括:
接收服务器发送的第一直播流,第一直播流是服务器在第一客户端推送的原始直播流的每一视频帧中插入预定帧的直播流;
当播放第一直播流达到预定时长时,接收服务器发送的任一路第一子流,任一路第一子流是M路第一子流中的任一路,M路第一子流是服务器基于预定帧将第一直播流划分为至少两个第一切片,并基于至少两个第一切片对第一直播流进行划分得到的。
在一种可能的实现方式中,该方法还包括:
接收其他第二客户端发送的除任一路第一子流外的其他路第一子流。
在一种可能的实现方式中,在接收到任一路第一子流之后,还包括:
当根据任一路第一子流中包括的每个第一切片的编号,检测到任一第一切片丢失时,接收服务器发送的任一第一切片,或者,接收其他第二客户端发送的任一第一切片。
在一种可能的实现方式中,该方法还包括:
接收服务器发送的第二直播流,第二直播流是服务器对第一客户端推送的原始直播流进行转码,并在得到的转码流的每一视频帧中插入预定帧的直播流;
当播放第二直播流达到预定时长时,接收服务器发送的任一路第二子流,任一路第二子流是N路第二子流中的任一路,N路第二子流是服务器基于预定帧将第二直播流划分为至少两个第二切片,并基于至少两个第二切片对第二直播流进行划分得到的。
一方面,提供了一种视频流传输装置,包括:
第一插入模块,用于获取到第一客户端推送的原始直播流时,在原始直播流中插入预定帧,得到第一直播流;
第一处理模块,用于基于预定帧,将第一直播流划分为至少两个第一切片,并基于至少两个第一切片将第一直播流划分为M路第一子流,M为大于1的整数;
第一发送模块,用于接收到任一第二客户端发送的第一视频流获取请求时,根据第一视频流获取请求的类型,向任一第二客户端发送相应的视频流;第一视频流获取请求的类型包括第一直播流的获取请求或任一路第一子流的获取请求。
在一种可能的实现方式中,第一插入模块用于在原始直播流的每一视频帧中插入预定帧,并确定插入的预定帧的编号,编号是依次递增的。
在一种可能的实现方式中,第一处理模块用于通过将插入预定帧的视频帧以及位于插入预定帧的视频帧之前的连续L帧音频帧划分为一个第一切片,来将第一直播流划分为各个第一切片,且将各个预定帧的编号分别确定为相对应的各个第一切片的编号,L为正整数;以及用于基于预定划分规则,根据各个第一切片的编号,将第一直播流划分为M路第一子流。
在一种可能的实现方式中,预定帧包括补充增强信息帧或Meta元数据帧。
在一种可能的实现方式中,第一发送模块在第一视频流获取请求的类型为第一直播流的获取请求时,向任一第二客户端发送第一直播流;以及在第一视频流获取请求的类型为任一路第一子流的获取请求时,向任一第二客户端发送任一路第一子流。
在一种可能的实现方式中,该装置还包括:接收模块;
接收模块,用于接收到任一第二客户端发送的针对任一第一切片的补片获取请求时,向任一第二客户端发送任一第一切片。
在一种可能的实现方式中,该装置还包括第二插入模块、第二处理模块及第二发送模块;
第二插入模块,用于对获取到的原始直播流进行转码,并在得到的转码流中插入预定帧,得到第二直播流;
第二处理模块,用于基于预定帧,将第二直播流划分为至少两个第二切片,并基于至少两个第二切片将第二直播流划分为N路第二子流,N为大于1的整数;
第二发送模块,用于接收到任一第二客户端发送的第二视频流获取请求时,根据第二视频流获取请求的类型,向任一第二客户端发送相应的视频流;第二视频流获取请求的类型包括第二直播流的获取请求或任一路第二子流的获取请求。
一方面,提供了一种视频流传输装置,包括:
第一交互模块,用于向服务器发送第一直播流的获取请求,第一直播流是服务器在第一客户端推送的原始直播流的每一视频帧中插入预定帧的直播流;
第二交互模块,用于当播放第一直播流达到预定时长时,向服务器发送任一路第一子流的获取请求,任一路第一子流是M路第一子流中的任一路,M路第一子流是服务器基于预定帧将第一直播流划分为至少两个第一切片,并基于至少两个第一切片对第一直播流进行划分得到的。
在一种可能的实现方式中,该装置还包括第一请求模块;
第一请求模块,用于向其他第二客户端发送除任一路第一子流外的其他路第一子流的获取请求。
在一种可能的实现方式中,还包括第二请求模块;
第二请求模块,用于当根据任一路第一子流中包括的每个第一切片的编号,检测到任一第一切片丢失时,向服务器发送任一第一切片的补片获取请求,或者,向其他第二客户端发送任一第一切片的补片获取请求。
在一种可能的实现方式中,该装置还包括第三交互模块与第四交互模块;
第三交互模块,用于向服务器发送第二直播流的流获取请求,第二直播流是服务器对第一客户端推送的原始直播流进行转码,并在得到的转码流的每一视频帧中插入预定帧的直播流;
第四交互模块,用于当播放第二直播流达到预定时长时,向服务器发送任一路第二子流的获取请求,任一路第二子流是N路第二子流中的任一路,N路第二子流是服务器基于预定帧将第二直播流划分为至少两个第二切片,并基于至少两个第二切片对第二直播流进行划分得到的。
一方面,提供了一种视频流传输装置,包括:
第一传输模块,用于接收服务器发送的第一直播流,第一直播流是服务器在第一客户端推送的原始直播流的每一视频帧中插入预定帧的直播流;
第二传输模块,用于当播放第一直播流达到预定时长时,接收服务器发送的任一路第一子流,任一路第一子流是M路第一子流中的任一路,M路第一子流是服务器基于预定帧将第一直播流划分为至少两个第一切片,并基于至少两个第一切片对第一直播流进行划分得到的。
在一种可能的实现方式中,该装置还包括第三传输模块;
第三传输模块,用于接收其他第二客户端发送的除任一路第一子流外的其他路第一子流。
在一种可能的实现方式中,该装置还包括第四传输模块;
第四传输模块,用于当根据任一路第一子流中包括的每个第一切片的编号,检测到任一第一切片丢失时,接收服务器发送的任一第一切片,或者,接收其他第二客户端发送的任一第一切片。
在一种可能的实现方式中,该装置还包括第五传输模块与第六传输模块;
第五传输模块,用于接收服务器发送的第二直播流,第二直播流是服务器对第一客户端推送的原始直播流进行转码,并在得到的转码流的每一视频帧中插入预定帧的直播流;
第六传输模块,用于当播放第二直播流达到预定时长时,接收服务器发送的任一路第二子流,任一路第二子流是N路第二子流中的任一路,N路第二子流是服务器基于预定帧将第二直播流划分为至少两个第二切片,并基于至少两个第二切片对第二直播流进行划分得到的。
一方面,提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行所述程序时实现上述的视频流传输方法。
一方面,提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现上述的视频流传输方法。
本申请实施例提供的视频流传输方法,通过在原始直播流中插入预定帧,得到第一直播流,入侵性小、负载小,对原始直播流本身几乎没有任何改变,其仍然是标准的直播流,从而可以在不损害直播质量的情况下,将第一直播流直接作为直播流进行分发;基于预定帧,将第一直播流划分为至少两个第一切片,并基于至少两个第一切片将第一直播流划分为M路第一子流,使得可以根据预定帧,快速简便地直接对第一直播流进行切片来形成子流,为后续子流传输提供可靠保障;接收到任一第二客户端发送的第一直播流的获取请求或任一路第一子流的获取请求时,向任一第二客户端发送相应的视频流,实现了利用第一直播流进行P2P的功能,从而通过将切片直播流与原始直播流合二为一,来将传输第一直播流的CDN和传输切片直播流的CDN合二为一,极大节省带宽及成本,在技术上突破了无法在原始直播流上进行P2P的限制。
本申请实施例附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请实施例上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本申请一个实施例的视频流传输方法的流程示意图;
图2为本申请一个实施例的切片示意图;
图3为本申请一个实施例的视频流传输过程示意图;
图4为本申请又一实施例的视频流传输方法的流程示意图;
图5为本申请另一实施例的视频流传输方法的流程示意图;
图6为本申请又一实施例的视频流传输过程示意图;
图7为本申请又一实施例的视频流传输装置的基本结构示意图;
图8为本申请另一实施例的视频流传输装置的基本结构示意图;
图9为本申请再一实施例的视频流传输装置的基本结构示意图;
图10为本申请实施例的电子设备的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本申请的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
为了更好的理解及说明本申请实施例的方案,下面对本申请实施例中所涉及到的一些技术用语进行简单说明。
直播流:承载直播内容的单条数据流。直播流虽然有很多格式,比如HLS、DASH、RTMP、FLV(FlashVideo,流媒体格式)、FMP4(fragmentedMp4,碎片Mp4)等,本申请实施例特指单条数据流就能支持的直播格式,比如FLV、FMP4;而非HLS、DASH这种天生就有切片,即天生即可利用P2P的直播流格式,故HLS、DASH不在本申请实施例的讨论范围之内。
数据元:指直播流封装格式中的数据封装单元,比如FLV的数据元是TAG,MP4的数据元是AtomBOX,HLS的数据元是TS等。
P2P(peer to peer,点对点对等网络):是指一群用户在看相同的直播频道时,他们之间可以相互建立起连接,并且相互分享数据,从而减轻从内容厂商服务器获取数据的带宽成本的一种方法。
切片(slice):是指使用P2P直播时,能够在不同用户间共享的基本数据单元,具有严格的全网一致性,一般按照规定的算法对数据流进行切分后得到。
切片索引(id):是指每个切片的序号,可根据该切片索引得知下一个切片索引,以供后续访问。它具备严格偏序性,一般采用严格递增1的方式。
子流:是指将一定序列的切片,按照一定规则形成的一道单独的数据流。比如切片索引模4等于1的切片,归为子流1。例如,切片1的切片索引为1,切片2的切片索引为2、切片3的切片索引为3、切片4的切片索引为4、切片5的切片索引为5,此时,切片索引模4等于1的切片分别为切片1与切片5,可以将切片1与切片5归为子流1。
SEI(Supplement Enhancement Information,补充增强信息)帧:是指视频编码标准规定的补充信息,该信息一般是对视频编码的补充说明,作为独立的帧出现。
直播质量:一般有首屏秒开、卡顿、端到端延迟等指标来表征用户观看直播的质量体验。
分享率:是指P2P直播系统中各终端间分享数据的带宽,占所有用户所需总流量的比例,用来评判一个直播系统的效率。
CDN(Content Delivery Network,内容分发网络),指将视频直播数据流分发给用户终端的系统。
OC节点(Outer Center node):CDN的边缘节点,该节点用于向用户终端分发直播数据流。
peer:P2P网络的节点,在本申请实施例中,任何使用直播P2P系统观看直播的终端设备,均为P2P网络中的peer。
下面以具体地实施例对本申请实施例的技术方案以及本申请实施例的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
本申请一个实施例提供了一种视频流传输方法,该方法由服务器执行,该服务器可以是独立的物理服务器、物理服务器集群或者虚拟服务器。如图1所示,该方法包括:
步骤S110,获取到第一客户端推送的原始直播流时,在原始直播流中插入预定帧,得到第一直播流。
具体地,第一客户端可以是录制视频并将录制的视频上传到服务器的客户端,例如在视频直播应用场景中,第一客户端为主播客户端。录制者可以通过其终端设备中的视频客户端(即上述的第一客户端)进行视频的录制,并在视频录制过程中,将录制的视频内容(即原始直播流)上传或推送至服务器。相对应地,服务器获取第一客户端推送的原始直播流,当服务器获取到第一客户端推送的原始直播流时,可以对该原始直播流进行存储或转发或进行其它相应处理,比如在原始直播流中插入预定帧。若服务器在原始直播流中插入预定帧,则可以得到插入预定帧后的原始直播流(记作第一直播流)。
其中,在原始直播流中插入预定帧,几乎不对原始直播流造成任何改变或损害,插入预定帧的原始直播流仍然是标准的直播流,从而当服务器接收到非P2P直播的观众客户端的视频流获取请求时,可以将插入预定帧的原始直播流(即第一直播流)发送给该用户客户端。
步骤S120,基于预定帧,将第一直播流划分为至少两个第一切片,并基于至少两个第一切片将第一直播流划分为M路第一子流,M为大于1的整数。
具体地,随着移动互联网的迅猛发展,基于P2P的视频直播技术得到了快速,且P2P直播是根据切片才能与其他人进行数据分享的,即切片是P2P直播中实现不同用户间数据共享的基本数据单元。于是,为了满足用户的P2P直播需求,服务器通过在原始直播流中插入预定帧得到第一直播流后,可以将第一直播流划分为至少两个(比如两个、三个及五个等)切片(记作第一切片)。其中,在将第一直播流划分为至少两个第一切片的过程中,可以直接根据在原始直播流中插入的预定帧,来对第一直播流进行切片,例如,在第一直播流中,将预定帧以及位于预定帧之前的若干帧划分为一个切片。
具体地,P2P直播是通过将一定序列的切片,按照预定规则形成M路子流(记作第一子流),比如将一定序列的切片中的每N个切片划分为一路子流,N为正整数,又比如将切片索引模L等于1的切片,归为一路子流,L为正整数,又比如将切片索引模L等于0的切片,归为一路子流等等。假如L为4时,且切片1的切片索引为1,切片2的切片索引为2、切片3的切片索引为3、切片4的切片索引为4、切片5的切片索引为5,在一个示例中,可以将切片索引模4等于1的切片归为一路子流,即将切片1与切片5归为一路子流;在又一个示例中,可以将切片索引模4等于0的切片归为一路子流,即将切片4归为一路子流。
具体地,在得到M路子流后,可以通过传输各路子流来实现视频内容的传输的,即服务器通过传输各路子流来实现视频内容的P2P直播,于是,服务器在将第一直播流划分为至少两个第一切片后,可以基于该至少两个第一切片将第一直播流划分为M路子流(记作第一子流),M为大于1的整数。
步骤S130,接收到任一第二客户端发送的第一视频流获取请求时,根据第一视频流获取请求的类型,向任一第二客户端发送相应的视频流;第一视频流获取请求的类型包括第一直播流的获取请求或任一路第一子流的获取请求。
具体地,第二客户端可以是观看视频的客户端,例如在视频直播应用场景中,第二客户端为观众客户端。在直播应用场景中,多个用户可能通过其客户端(即观众客户端)同时观看某个视频(例如视频V1)的直播,每个观众客户端通过向服务器发送视频流获取请求(记作第一视频流获取请求),来请求观看视频(例如视频V1)的直播,相对应地,服务器接收观众客户端发送的第一视频流获取请求。
具体地,第一视频流获取请求的类型可以是第一直播流的获取请求,也可以是任一路第一子流的获取请求。服务器接收到任一第二客户端发送的第一视频流获取请求后,可以根据第一视频流获取请求的类型,向该任一第二客户端发送相应的视频流。
本申请实施例提供的方法,通过在原始直播流中插入预定帧,得到第一直播流,入侵性小、负载小,对原始直播流本身几乎没有任何改变,其仍然是标准的直播流,从而可以在不损害直播质量的情况下,将第一直播流直接作为直播流进行分发;基于预定帧,将第一直播流划分为至少两个第一切片,并基于至少两个第一切片将第一直播流划分为M路第一子流,使得可以根据预定帧,快速简便地直接对第一直播流进行切片来形成子流,为后续子流传输提供可靠保障;接收到任一第二客户端发送的第一直播流的获取请求或任一路第一子流的获取请求时,向任一第二客户端发送相应的视频流,实现了利用第一直播流进行P2P的功能,从而通过将切片直播流与原始直播流合二为一,来将传输第一直播流的CDN和传输切片直播流的CDN合二为一,极大节省带宽及成本,在技术上突破了无法在原始直播流上进行P2P的限制。
下面以视频直播应用场景中,第一客户端为主播客户端,第二客户端为观众客户端为例,对本申请实施例的视频流传输方法进行详细介绍:
在一种可能的实现方式中,在根据第一视频流获取请求的类型,向任一第二客户端发送相应的视频流的过程中,当第一视频流获取请求的类型为第一直播流的获取请求时,向任一第二客户端发送所述第一直播流;当第一视频流获取请求的类型为任一路第一子流的获取请求时,向任一第二客户端发送所述任一路第一子流。
具体地,任一用户通过其客户端观看视频V1时,可以选择非P2P直播的方式观看视频V1,也可以选择P2P直播的方式观看视频V1。当用户选择非P2P直播的方式观看视频V1时,通过其客户端(即观众客户端)向服务器发送第一直播流的获取请求,相对应地,服务器接收第一直播流的获取请求,并向该观众客户端发送第一直播流。当用户选择P2P直播的方式观看视频V1时,由于P2P直播是通过分别传输视频流的各路子流来完成整个视频流的传输的,所以用户可以通过其客户端(即观众客户端)向服务器发送任一路第一子流(例如分成7路流的第3路子流)的获取请求,相对应地,服务器接收任一路第一子流的获取请求,并向该观众客户端发送该任一路第一子流。
在一种可能的实现方式中,在原始直播流中插入预定帧的过程中,可以在原始直播流的每一视频帧中插入预定帧,并确定插入的预定帧的编号,编号是依次递增的。
具体地,主播通过主播客户端录制的视频的原始直播流中,通常既包括音频帧又包括视频帧,即服务器获取到的是既包括音频帧又包括视频帧的原始直播流。此时,服务器在原始直播流中插入预定帧时,可以在原始直播流的每一视频帧中插入预定帧,并为该插入的各个预定帧进行编号,即确定插入的预定帧的编号。其中,服务器可以每当在原始直播流的一个视频帧中插入一个预定帧时,就为该预定帧编号,也可以在原始直播流的各视频帧中分别插入预定帧后,再依次为各个预定帧编号。
具体地,在为预定帧编号的过程中,需要确保预定帧的编号是依次递增的,例如预定帧的编号严格递增1。假如原始直播流中依次包括10个视频帧,分别为视频帧V1、视频帧V2、…、视频帧V10,且在视频帧V1中插入的预定帧为S1、在视频帧V2中插入的预定帧为S2、…、在视频帧V10中插入的预定帧为S10,则可以为S1编号为1,为S2编号为2,…、为S10编号为10,即各个预定帧的编号根据各个预定帧的先后顺序依次递增。
在一个示例中,预定帧可以是补充增强信息帧(即SEI帧),也可以是Meta元数据帧,还可以其他的数据帧,本申请实施例不对其作限制。而且,预定帧中记录着其对应的编号,比如,在原始直播流中遇到视频帧,就在其中插入SEI帧,而且在插入的SEI帧中记录着其对应的编号。其中,预定帧中不仅记录着其对应的编号,还记录着其对应的切片中包括的帧数,该帧数是指插入预定帧的视频帧以及位于插入预定帧的视频帧之前的连续L帧音频帧的总数,即该帧数为L+1。
如图2所示,给出了在视频帧中插入SEI帧这一预定帧的示意图,在图2中,每个切片与每个SEI帧是一一对应的。假如左边切片的编号为1,右边切片的编号为2,则左边切片的SEI帧中记录的编号为1、且记录的帧数为5,右边切片的SEI帧中记录的编号为2、且记录的帧数为4。
具体地,SEI帧是原始直播流的标准扩展,几乎不对原始直播流造成任何改变或损害,故插入预定帧的原始直播流(即第一直播流)仍然是标准的直播流,即第一直播流可直播代替原始直播流进行分发,供观众客户端观看。
其中,根据H.264/AVC视频编码标准,可以采用如下数据结构的SEI帧:SEIpayload type(有效载荷类型)设为0x05,类型type为未注册的用户数据,即包的数据由用户自定义。SEI payload uuid(Universally Unique Identifier,通用唯一识别码)占用16字节,SEI payload content(内容)部分设定为6字节,前4字节表示uint32_t(32位整型)的编号,后2字节表示uint16_t(16位整型)的帧数。SEI帧的数据结构如下表1所示:
表1SEI帧的数据结构
类型 | 大小 | 通用唯一识别码(uuid) | 内容 |
0X05 | 0X22 | 16字节 | 6字节 |
在一种可能的实现方式中,在基于预定帧,将第一直播流划分为至少两个第一切片,并基于至少两个第一切片将第一直播流划分为M路第一子流的过程中,可以执行如下操作:通过将插入预定帧的视频帧以及位于插入预定帧的视频帧之前的连续L帧音频帧划分为一个第一切片,来将第一直播流划分为各个第一切片,且将各个预定帧的编号分别确定为相对应的各个第一切片的编号;接着,基于预定划分规则,根据各个第一切片的编号,将第一直播流划分为M路第一子流。
具体地,在实际应用中,通过CDN的边缘节点OC对第一直播流进行切片(即上述的第一切片)的划分及子流的生成。OC在对第一直播流进行切片划分的过程中,可以利用预定帧(例如SEI帧)的编号,来将完整的第一直播流划分为各个第一切片。其中,在将第一直播流划分为各个第一切片的过程中,可以将插入预定帧的视频帧以及位于插入预定帧的视频帧之前的连续L帧(例如1帧、2帧、5帧等)音频帧划分为一个第一切片,即一个第一切片对应一个预定帖,也即每个第一切片与每个预定帧是一一对应的。
具体地,在基于预定帧,将第一直播流划分为各个第一切片的过程中,将每个预定帧的编号确定为其对应的第一切片的编号。假如依次在第一直播流中插入了10预定帧,分别为S1、S2、…、S10,S1的编号为1,S2的编号为2,…、S10的编号为10,且S1对应第一个第一切片(记作C1)、S2对应第二个第一切片(记作C2)、…、S10对应第十个第一切片(记作C10),则可以确定:第一切片C1的编号为1、第一切片C2的编号为2、…、第一切片C10的编号为10。
具体地,在将第一直播流划分为各个第一切片后,可以基于预定划分规则,根据各个第一切片的编号,将第一直播流划分为M路第一子流,M为大于1的整数。例如,将编号模4等于1的各个第一切片归为一路子流,又例如,将编号模2等于0的各个第一切片归为一路子流,再例如,将编号模3等于1的各个第一切片归为一路子流等。
在一种可能的实现方式中,还包括如下操作:接收到任一第二客户端发送的针对任一第一切片的补片获取请求时,向任一第二客户端发送任一第一切片。
具体地,当任一用户通过其对应的客户端(即观众客户端)选择P2P直播的方式观看视频V1时,该任一用户对应的客户端可以通过向服务器发送视频V1的某一路第一子流(比如分成7路流中的第5路子流)的获取请求,并接收服务器返回的该某一路第一子流。其中,观众客户端在接收到该某一路第一子流后,可以检测该某一路第一子流中包括的各个第一切片是否发生丢失。
在实际应用中,由于每一路子流是基于预定划分规则,根据各个切片的编号,对直播流进行划分得到的,即每一路子流中的各个切片的编号是满足预定划分规则的,所以观众客户端在接收到某一路第一子流后,可以根据该某一路第一子流中包括的每个第一切片的编号,检测是否存在任一第一切片的丢失;并当检测到任一第一切片丢失时,可以向服务器发送该任一第一切片的补片获取请求,相对应地,服务器接收该任一第一切片的补片获取请求,并在接收到该任一第一切片的补片获取请求后,向该观众客户端发送该任一第一切片。
在一种可能的实现方式中,服务器在获取到主播客户端推送的原始直播流后,为了适配不同分辨率的终端设备,可以先对获取到的原始直播流进行转码,得到相应的转码流,再在转码流中插入预定帧,得到插入预定帧后的原始直播流(即第二直播流)。在得到转码流后,可以基于预定帧,将第二直播流划分为至少两个第二切片,并基于至少两个第二切片将第二直播流划分为N路第二子流,N为大于1的整数;接着,接收到任一第二客户端发送的第二视频流获取请求时,根据第二视频流获取请求的类型,向任一第二客户端发送相应的视频流;其中,第二视频流获取请求的类型包括第二直播流的获取请求或任一路第二子流的获取请求。
具体地,该预定帧可以是SEI帧,也可以是Meta元数据帧,还可以是其它数据帧,本申请实施例不对其作限制。其中,本实现方式中的在转码流中插入预定帧的处理过程、基于预定帧将第二直播流划分为至少两个第二切片的处理过程、并基于至少两个第二切片将第二直播流划分为N路第二子流的处理过程以及根据第二视频流获取请求的类型,向任一第二客户端发送相应的视频流的处理过程,均与上述第一直播流中的相应处理过程类似,在此不再赘述。
具体地,图3以视频直播应用场景为例,给出了本实现方式的视频流传输的过程。在图3中,步骤S301,服务器首先获取主播推送的已录制视频的原始直播流;步骤S302,对原始直播流进行转码(对应图中的“转码”),得到相应的转码流;步骤S303,在转码流中插入预定帧(比如SEI帧、Meta元数据帧等),得到第二直播流,此时若接收到非P2P用户观看视频直播的请求,可以直接将第二直播流下发给非P2P用户的观众客户端,以供非P2P用户观看视频直播;步骤S304,对转码流进行切片及子流划分(对应图中的“切片再封装”),其中,对转码流进行切片及子流划分的处理过程,对应于上述的基于预定帧将第二直播流划分为至少两个第二切片,并基于至少两个第二切片将第二直播流划分为N路第二子流的处理过程,在此不再赘述;步骤S305,若此时接收到P2P用户观看视频直播的请求,可以根据请求,通过向P2P用户的观众客户端下发第二直播流的各路子流的方式,来将第二直播流下发给P2P用户的观众客户端,以供P2P用户观看视频直播,当然,P2P用户也可以向其他正在观看该视频直播的观众客户端发送请求,来获取第二直播流的某一路子流。
通过图3可以看出,通过本申请实施例的方法,可以将切片直播流与原始直播流合二为一,从而可以将传输第一直播流的CDN和传输切片直播流的CDN合二为一,在技术上突破了无法在原始直播流上进行P2P的限制,不仅稳定、高效,带来了更好的直播质量体验,以及较好的分享率,而且原始直播流与P2P直播流共用缓存,极大提升命中率,提高播放质量,同时减少回源带宽,节约成本。
本申请又一实施例提供了一种视频流传输方法,该方法由终端执行,终端可以是台式设备或者移动终端。如图4所示,该方法包括:步骤S410,向服务器发送第一直播流的获取请求,第一直播流是服务器在第一客户端推送的原始直播流的每一视频帧中插入预定帧的直播流;步骤S420,当播放第一直播流达到预定时长时,向服务器发送任一路第一子流的获取请求,任一路第一子流是M路第一子流中的任一路,M路第一子流是服务器基于预定帧将第一直播流划分为至少两个第一切片,并基于至少两个第一切片对第一直播流进行划分得到的。
具体地,本申请实施例是与服务器侧的视频流传输方法相对应的客户端侧的视频流传输方法,因此,可以理解的是,客户端侧的视频流传输的处理步骤是与服务器侧的视频流传输的处理步骤相对应的,服务器侧的视频流传输中相应步骤的具体描述可以参见前文中的相应描述。
本申请实施例提供的方法,开始播放时从服务器请求第一直播流,可以确保直播视频的快速秒开,快速响应用户的观看需求,提升用户观看体验;当播述第一直播流达到预定时长时,从服务器请求任一路第一子流,从而在确保用户观看需求的同时,转变为P2P直播方式,减轻从服务器获取数据的带宽成本,在一定程度上降低服务器的数据传输压力。
下面以视频直播应用场景中,第一客户端为主播客户端,第二客户端为观众客户端为例,对本申请实施例的视频流传输方法进行详细介绍:
在一种可能的实现方式中,用户通过终端设备的客户端(即观众客户端)以P2P直播方式观看视频直播(比如视频V1的直播)时,由于P2P直播方式是通过分别传输视频流的各路子流来完成整个视频流的传输的,所以用户可以通过观众客户端向服务器发送视频V1的任一路第一子流(比如分成7路流中的第5路子流)的获取请求,来获取该任一路第一子流,也可以通过向正在观看视频V1的直播的其它观看客户端,发送除该任一路第一子流外的其他路第一子流的获取请求,来获取其他路第一子流;比如可以向正在观看视频V1的直播的观众客户端Client_1发送分成7路流中的第2路子流的获取请求,来获取视频V1的分成7路流中的第2路子流,又比如可以向正在观看视频V1的直播的观众客户端Client_2发送分成7路流中的第3路子流的获取请求,来获取视频V1的分成7路流中的第3路子流等等,直至获取到视频V1的7路子流,从而可以根据该7路子流还原出第一直播流并进行直播。
在一种可能的实现方式中,观众客户端在接收到视频V1的某一路第一子流(比如V1的分成7路流中的第3路子流)后,可以检测该某一路第一子流中包括的各个第一切片是否发生丢失。由于每一路子流是基于预定划分规则,根据各个切片的编号,对直播流进行划分得到的,即每一路子流中的各个切片的编号是满足预定划分规则的,所以观众客户端在接收到某一路第一子流后,可以根据该某一路第一子流中包括的每个第一切片的编号,检测是否存在任一第一切片的丢失;并当检测到任一第一切片丢失时,可以向服务器发送该任一第一切片的补片获取请求,来获取该任一第一切片,也可以向其他观众客户端(比如观众客户端Client_2)发送该任一第一切片的补片获取请求,来获取该任一第一切片。
在一种可能的实现方式中,用户可以根据需求或终端设备支持的分辨率,选择观看相应分辨率的视频直播,当终端设备或当前网速无法支持分辨率很高的原始直播流时,可以选择观看分辨率低一些的直播流,该直播流是服务器为了适配不同分辨率的终端设备,对获取到的原始直播流进行转码,并在得到的转码流中插入预定帧的直播流。
在这种情况下,可以执行如下处理过程:向服务器发送第二直播流的流获取请求,其中,第二直播流是服务器对第一客户端推送的原始直播流进行转码,并在得到的转码流的每一视频帧中插入预定帧的直播流;接着,当播放第二直播流达到预定时长时,向服务器发送任一路第二子流的获取请求,任一路第二子流是N路第二子流中的任一路,其中,N路第二子流是服务器基于预定帧将第二直播流划分为至少两个第二切片,并基于至少两个第二切片对所述第二直播流进行划分得到的。
需要说明的是,本实现方式中的获取第二直播流的处理过程与上述获取第一直播流的处理过程相同,在此不再赘述;本实现方式中的获取任一路第二子流的处理过程与上述获取任一路第一子流的处理过程相同,在此不再赘述。
本申请又一实施例提供了一种视频流传输方法,该方法由终端执行,终端可以是台式设备或者移动终端。如图5所示,该方法包括:步骤S510,接收服务器发送的第一直播流,第一直播流是服务器在第一客户端推送的原始直播流的每一视频帧中插入预定帧的直播流;步骤S520,当播放第一直播流达到预定时长时,接收服务器发送的任一路第一子流,任一路第一子流是M路第一子流中的任一路,M路第一子流是服务器基于预定帧将所述第一直播流划分为至少两个第一切片,并基于至少两个第一切片对第一直播流进行划分得到的。
具体地,本申请实施例是与服务器侧的视频流传输方法相对应的客户端侧的视频流传输方法,因此,可以理解的是,客户端侧的视频流传输的处理步骤是与服务器侧的视频流传输的处理步骤相对应的,服务器侧的视频流传输中相应步骤的具体描述可以参见前文中的相应描述。
下面以视频直播应用场景中,第一客户端为主播客户端,第二客户端为观众客户端为例,对本申请实施例的视频流传输方法进行详细介绍:
具体地,观众客户端接收到服务器发送的任一路第一子流后,可以接收其他第二客户端返回的除上述的任一路第一子流外的其他路第一子流。其中,观众客户端可以通过向其他第二客户端发送除任一路第一子流外的其他路第一子流的获取请求,来接收其他第二客户端返回的其他路第一子流。
具体地,观众客户端接收到某一路第一子流后,可以检测该某一路第一子流中包括的各个第一切片是否发生丢失,当检测到任一第一切片丢失时,可以接收服务器发送的该任一第一切片,或者,接收其他第二客户端发送的该任一第一切片。其中,可以通过向服务器发送该任一第一切片的补片获取请求,来获取该任一第一切片,也可以向其他观众客户端(比如观众客户端Client_2)发送该任一第一切片的补片获取请求,来获取该任一第一切片。
具体地,观众客户端根据自身需求,可以接收服务器发送的第二直播流,第二直播流是服务器为了适配不同分辨率的终端设备,对第一客户端推送的原始直播流进行转码,并在得到的转码流的每一视频帧中插入预定帧的直播流;当播放第二直播流达到预定时长时,接收服务器发送的任一路第二子流,任一路第二子流是N路第二子流中的任一路,N路第二子流是服务器基于预定帧将第二直播流划分为至少两个第二切片,并基于至少两个第二切片对第二直播流进行划分得到的。其中,本实现方式中的获取第二直播流的处理过程与上述获取第一直播流的处理过程相同,在此不再赘述;本实现方式中的获取任一路第二子流的处理过程与上述获取任一路第一子流的处理过程相同,在此不再赘述。
具体地,图6给出了本实现方式中的观众客户端与服务器进行交互的过程示意图,在图6中,步骤S601,主播客户端将录制的视频的原始直播流上传服务器;步骤S602,服务器在原始直播流中打上编号,即在原始直播流中插入预定帧,并按编号依次递增的顺序为各个预定帧打上编号,得到打上编号的原始直播流(记作第一直播流),其中,如果需要对原始直播流进行转码,则在步骤S602之前执行对原始直播流进行转码的步骤S603,并在步骤S602中对转码得到的转码流中打上编号,即在转码流中插入预定帧,并按编号依次递增的顺序为各个预定帧打上编号,得到打上编号的转码流(记作第二直播流);步骤S604,服务器将经过步骤S602得到的第一直播流或第二直播流分发到SOC,以通过OC向观众客户端发送直播数据,其中,SOC为SEI帧的中间元,OC为CDN的边缘节点;步骤S605,观众客户端通过CDN的边缘节点OC从服务器获取第一直播流,来以非P2P直播方式观看视频,或者,步骤S606,观众客户端通过CDN的边缘节点OC从服务器获取第一直播流的M路第一子流中的任一路,比如子流1,来以P2P直播方式观看视频;步骤S607,观众客户端检测到获取到的任一路第一子流中的任一切片(比如子流的切片5)丢失时,通过向CDN的边缘节点OC发送补片请求,来从服务器获取该丢失的切片,以进行P2P直播。
图7为本申请另一实施例提供的一种视频流传输装置的基本结构示意图,如图7所示,该装置700可以包括第一插入模块701、第一处理模块702及第一发送模块703,其中:
第一插入模块701,用于获取到第一客户端推送的原始直播流时,在原始直播流中插入预定帧,得到第一直播流;
第一处理模块702,用于基于预定帧,将第一直播流划分为至少两个第一切片,并基于至少两个第一切片将第一直播流划分为M路第一子流,M为大于1的整数;
第一发送模块703,用于接收到任一第二客户端发送的第一视频流获取请求时,根据第一视频流获取请求的类型,向任一第二客户端发送相应的视频流;第一视频流获取请求的类型包括第一直播流的获取请求或任一路第一子流的获取请求。
在一种可能的实现方式中,第一插入模块用于在原始直播流的每一视频帧中插入预定帧,并确定插入的预定帧的编号,编号是依次递增的。
在一种可能的实现方式中,第一处理模块用于通过将插入预定帧的视频帧以及位于插入预定帧的视频帧之前的连续L帧音频帧划分为一个第一切片,来将第一直播流划分为各个第一切片,且将各个预定帧的编号分别确定为相对应的各个第一切片的编号,L为正整数;以及用于基于预定划分规则,根据各个第一切片的编号,将第一直播流划分为M路第一子流。
在一种可能的实现方式中,预定帧包括补充增强信息帧或Meta元数据帧。
在一种可能的实现方式中,第一发送模块在第一视频流获取请求的类型为第一直播流的获取请求时,向任一第二客户端发送第一直播流;以及在第一视频流获取请求的类型为任一路第一子流的获取请求时,向任一第二客户端发送任一路第一子流。
在一种可能的实现方式中,该装置还包括:接收模块;
接收模块,用于接收到任一第二客户端发送的针对任一第一切片的补片获取请求时,向任一第二客户端发送任一第一切片。
在一种可能的实现方式中,该装置还包括第二插入模块、第二处理模块及第二发送模块;
第二插入模块,用于对获取到的原始直播流进行转码,并在得到的转码流中插入预定帧,得到第二直播流;
第二处理模块,用于基于预定帧,将第二直播流划分为至少两个第二切片,并基于至少两个第二切片将第二直播流划分为N路第二子流,N为大于1的整数;
第二发送模块,用于接收到任一第二客户端发送的第二视频流获取请求时,根据第二视频流获取请求的类型,向任一第二客户端发送相应的视频流;第二视频流获取请求的类型包括第二直播流的获取请求或任一路第二子流的获取请求。
本申请实施例提供的装置,通过在原始直播流中插入预定帧,得到第一直播流,入侵性小、负载小,对原始直播流本身几乎没有任何改变,其仍然是标准的直播流,从而可以在不损害直播质量的情况下,将第一直播流直接作为直播流进行分发;基于预定帧,将第一直播流划分为至少两个第一切片,并基于至少两个第一切片将第一直播流划分为M路第一子流,使得可以根据预定帧,快速简便地直接对第一直播流进行切片来形成子流,为后续子流传输提供可靠保障;接收到任一第二客户端发送的第一直播流的获取请求或任一路第一子流的获取请求时,向任一第二客户端发送相应的视频流,实现了利用第一直播流进行P2P的功能,从而通过将切片直播流与原始直播流合二为一,来将传输第一直播流的CDN和传输切片直播流的CDN合二为一,极大节省带宽及成本,在技术上突破了无法在原始直播流上进行P2P的限制。
图8为本申请再一实施例提供的一种视频流传输装置的基本结构示意图,如图8所示,该装置800可以包括第一交互模块801、第二交互模块802,其中:
第一交互模块801,用于向服务器发送第一直播流的获取请求,并接收服务器返回的第一直播流并进行播放,第一直播流是服务器在第一客户端推送的原始直播流中插入预定帧的直播流;
第二交互模块802,用于当播放第一直播流达到预定时长时,向服务器发送任一路第一子流的获取请求,并接收服务器返回的任一路第一子流,任一路第一子流是M路第一子流中的任一路,M路第一子流是服务器基于预定帧将第一直播流划分为至少两个第一切片,并基于至少两个第一切片对第一直播流进行划分得到的。
在一种可能的实现方式中,该装置还包括第一请求模块;
第一请求模块,用于向其他第二客户端发送除任一路第一子流外的其他路第一子流的获取请求,并接收其他第二客户端返回的其他路第一子流。
在一种可能的实现方式中,还包括第二请求模块;
第二请求模块,用于当根据任一路第一子流中包括的每个第一切片的编号,检测到任一第一切片丢失时,向服务器发送任一第一切片的补片获取请求,并接收服务器返回的任一第一切片,或者,向其他第二客户端发送任一第一切片的补片获取请求,并接收其他第二客户端返回的任一第一切片。
在一种可能的实现方式中,该装置还包括第三交互模块与第四交互模块;
第三交互模块,用于向服务器发送第二直播流的流获取请求,并接收服务器返回的第二直播流并进行播放,第二直播流是服务器对第一客户端推送的原始直播流进行转码,并在得到的转码流中插入预定帧的直播流;
第四交互模块,用于当播放第二直播流达到预定时长时,向服务器发送任一路第二子流的获取请求,并接收服务器返回的任一路第二子流,任一路第二子流是N路第二子流中的任一路,N路第二子流是服务器基于预定帧将第二直播流划分为至少两个第二切片,并基于至少两个第二切片对第二直播流进行划分得到的。
本申请实施例提供的装置,开始播放时从服务器获取第一直播流,可以确保直播视频的快速秒开,快速响应用户的观看需求,提升用户观看体验;当播述第一直播流达到预定时长时,从服务器获取任一路第一子流,从而在确保用户观看需求的同时,转变为P2P直播方式,减轻从服务器获取数据的带宽成本,在一定程度上降低服务器的数据传输压力。
需要说明的是,本实施例为与上述的方法项实施例相对应的装置项实施例,装置项实施例可与上述方法项实施例互相配合实施。上述方法项实施例中提到的相关技术细节在装置项实施例中依然有效,为了减少重复,这里不再赘述。相应地,装置项实施例中提到的相关技术细节也可应用在上述方法项实施例中。
图9为本申请再一实施例提供的一种视频流传输装置的基本结构示意图,如图9所示,该装置900可以包括第一传输模块901、第二传输模块902,其中:
第一传输模块901,用于接收服务器发送的第一直播流,第一直播流是服务器在第一客户端推送的原始直播流的每一视频帧中插入预定帧的直播流;
第二传输模块902,用于当播放第一直播流达到预定时长时,接收服务器发送的任一路第一子流,任一路第一子流是M路第一子流中的任一路,M路第一子流是服务器基于预定帧将第一直播流划分为至少两个第一切片,并基于至少两个第一切片对第一直播流进行划分得到的。
在一种可能的实现方式中,该装置还包括第三传输模块;
第三传输模块,用于接收其他第二客户端发送的除任一路第一子流外的其他路第一子流。
在一种可能的实现方式中,该装置还包括第四传输模块;
第四传输模块,用于当根据任一路第一子流中包括的每个第一切片的编号,检测到任一第一切片丢失时,接收服务器发送的任一第一切片,或者,接收其他第二客户端发送的任一第一切片。
在一种可能的实现方式中,该装置还包括第五传输模块与第六传输模块;
第五传输模块,用于接收服务器发送的第二直播流,第二直播流是服务器对第一客户端推送的原始直播流进行转码,并在得到的转码流的每一视频帧中插入预定帧的直播流;
第六传输模块,用于当播放第二直播流达到预定时长时,接收服务器发送的任一路第二子流,任一路第二子流是N路第二子流中的任一路,N路第二子流是服务器基于预定帧将第二直播流划分为至少两个第二切片,并基于至少两个第二切片对第二直播流进行划分得到的。
本申请实施例提供的装置,开始播放时从服务器接收第一直播流,可以确保直播视频的快速秒开,快速响应用户的观看需求,提升用户观看体验;当播述第一直播流达到预定时长时,从服务器接收任一路第一子流,从而在确保用户观看需求的同时,转变为P2P直播方式,减轻从服务器获取数据的带宽成本,在一定程度上降低服务器的数据传输压力。
需要说明的是,本实施例为与上述的方法项实施例相对应的装置项实施例,装置项实施例可与上述方法项实施例互相配合实施。上述方法项实施例中提到的相关技术细节在装置项实施例中依然有效,为了减少重复,这里不再赘述。相应地,装置项实施例中提到的相关技术细节也可应用在上述方法项实施例中。
本申请另一实施例提供了一种电子设备,如图10所示,图10所示的电子设备1000包括:处理器1001和存储器1003。其中,处理器1001和存储器1003相连,如通过总线1002相连。进一步地,电子设备1000还可以包括收发器1004。需要说明的是,实际应用中收发器1004不限于一个,该电子设备1000的结构并不构成对本申请实施例的限定。
其中,处理器1001应用于本申请实施例中,用于实现图7所示的第一插入模块、第一处理模块及第一发送模块的功能。或者,处理器1001应用于本申请实施例中,用于实现图8所示的第一交互模块与第二交互模块的功能。或者,处理器1001应用于本申请实施例中,用于实现图9所示的第一传输模块与第二传输模块的功能。
处理器1001可以是CPU,通用处理器,DSP,ASIC,FPGA或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器1001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线1002可包括一通路,在上述组件之间传送信息。总线1002可以是PCI总线或EISA总线等。总线1002可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器1003可以是ROM或可存储静态信息和指令的其他类型的静态存储设备,RAM或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM、CD-ROM或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
存储器1003用于存储执行本申请方案的应用程序代码,并由处理器1001来控制执行。处理器1001用于执行存储器1003中存储的应用程序代码,以实现图7或者图8或者图9所示实施例提供的视频流传输装置的动作。
本申请实施例提供的电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时,在一种情况下,可实现:通过在原始直播流中插入预定帧,得到第一直播流,入侵性小、负载小,对原始直播流本身几乎没有任何改变,其仍然是标准的直播流,从而可以在不损害直播质量的情况下,将第一直播流直接作为直播流进行分发;基于预定帧,将第一直播流划分为至少两个第一切片,并基于至少两个第一切片将第一直播流划分为M路第一子流,使得可以根据预定帧,快速简便地直接对第一直播流进行切片来形成子流,为后续子流传输提供可靠保障;接收到任一第二客户端发送的第一直播流的获取请求或任一路第一子流的获取请求时,向任一第二客户端发送相应的视频流,实现了利用第一直播流进行P2P的功能,从而通过将切片直播流与原始直播流合二为一,来将传输第一直播流的CDN和传输切片直播流的CDN合二为一,极大节省带宽及成本,在技术上突破了无法在原始直播流上进行P2P的限制。
在另一种情况下,可实现:开始播放时从服务器获取第一直播流,可以确保直播视频的快速秒开,快速响应用户的观看需求,提升用户观看体验;当播述第一直播流达到预定时长时,从服务器获取任一路第一子流,从而在确保用户观看需求的同时,转变为P2P直播方式,减轻从服务器获取数据的带宽成本,在一定程度上降低服务器的数据传输压力。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现上述实施例所示的方法。
在一种情况下,可实现:通过在原始直播流中插入预定帧,得到第一直播流,入侵性小、负载小,对原始直播流本身几乎没有任何改变,其仍然是标准的直播流,从而可以在不损害直播质量的情况下,将第一直播流直接作为直播流进行分发;基于预定帧,将第一直播流划分为至少两个第一切片,并基于至少两个第一切片将第一直播流划分为M路第一子流,使得可以根据预定帧,快速简便地直接对第一直播流进行切片来形成子流,为后续子流传输提供可靠保障;接收到任一第二客户端发送的第一直播流的获取请求或任一路第一子流的获取请求时,向任一第二客户端发送相应的视频流,实现了利用第一直播流进行P2P的功能,从而通过将切片直播流与原始直播流合二为一,来将传输第一直播流的CDN和传输切片直播流的CDN合二为一,极大节省带宽及成本,在技术上突破了无法在原始直播流上进行P2P的限制。
在另一种情况下,可实现:开始播放时从服务器获取第一直播流,可以确保直播视频的快速秒开,快速响应用户的观看需求,提升用户观看体验;当播述第一直播流达到预定时长时,从服务器获取任一路第一子流,从而在确保用户观看需求的同时,转变为P2P直播方式,减轻从服务器获取数据的带宽成本,在一定程度上降低服务器的数据传输压力。
本申请实施例提供的计算机可读存储介质适用于上述方法的任一实施例。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上所述仅是本申请的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (15)
1.一种视频流传输方法,其特征在于,包括:
获取到第一客户端推送的原始直播流时,在所述原始直播流中插入预定帧,得到第一直播流;
基于所述预定帧,将所述第一直播流划分为至少两个第一切片,并基于所述至少两个第一切片将所述第一直播流划分为M路第一子流,M为大于1的整数;
接收到任一第二客户端发送的第一视频流获取请求时,根据所述第一视频流获取请求的类型,向所述任一第二客户端发送相应的视频流;所述第一视频流获取请求的类型包括第一直播流的获取请求或任一路第一子流的获取请求。
2.根据权利要求1所述的方法,其特征在于,所述在所述原始直播流中插入预定帧,包括:
在所述原始直播流的每一视频帧中插入预定帧,并确定插入的预定帧的编号,所述编号是依次递增的。
3.根据权利要求2所述的方法,其特征在于,所述基于所述预定帧,将所述第一直播流划分为至少两个第一切片,并基于所述至少两个第一切片将所述第一直播流划分为M路第一子流,包括:
通过将插入预定帧的视频帧以及位于插入预定帧的视频帧之前的连续L帧音频帧划分为一个第一切片,来将所述第一直播流划分为各个第一切片,且将各个预定帧的编号分别确定为相对应的各个第一切片的编号,L为正整数;
基于预定划分规则,根据各个第一切片的编号,将所述第一直播流划分为M路第一子流。
4.根据权利要求1所述的方法,其特征在于,所述预定帧包括补充增强信息帧或Meta元数据帧。
5.根据权利要求1所述的方法,其特征在于,所述根据所述第一视频流获取请求的类型,向所述任一第二客户端发送相应的视频流,包括:
当第一视频流获取请求的类型为第一直播流的获取请求时,向所述任一第二客户端发送所述第一直播流;
当第一视频流获取请求的类型为任一路第一子流的获取请求时,向所述任一第二客户端发送所述任一路第一子流。
6.根据权利要求1所述的方法,其特征在于,该方法还包括:
接收到任一第二客户端发送的针对任一第一切片的补片获取请求时,向所述任一第二客户端发送所述任一第一切片。
7.根据权利要求1-6任一所述的方法,其特征在于,该方法还包括:
对获取到的原始直播流进行转码,并在得到的转码流中插入所述预定帧,得到第二直播流;
基于所述预定帧,将所述第二直播流划分为至少两个第二切片,并基于所述至少两个第二切片将所述第二直播流划分为N路第二子流,N为大于1的整数;
接收到任一第二客户端发送的第二视频流获取请求时,根据所述第二视频流获取请求的类型,向所述任一第二客户端发送相应的视频流;所述第二视频流获取请求的类型包括第二直播流的获取请求或任一路第二子流的获取请求。
8.一种视频流传输方法,其特征在于,包括:
向服务器发送第一直播流的获取请求,所述第一直播流是服务器在第一客户端推送的原始直播流的每一视频帧中插入预定帧的直播流;
当播放所述第一直播流达到预定时长时,向所述服务器发送任一路第一子流的获取请求,所述任一路第一子流是M路第一子流中的任一路,所述M路第一子流是服务器基于预定帧将所述第一直播流划分为至少两个第一切片,并基于所述至少两个第一切片对所述第一直播流进行划分得到的。
9.根据权利要求8所述的方法,其特征在于,该方法还包括:
向其他第二客户端发送除所述任一路第一子流外的其他路第一子流的获取请求。
10.一种视频流传输方法,其特征在于,包括:
接收服务器发送的第一直播流,所述第一直播流是服务器在第一客户端推送的原始直播流的每一视频帧中插入预定帧的直播流;
当播放所述第一直播流达到预定时长时,接收服务器发送的任一路第一子流,所述任一路第一子流是M路第一子流中的任一路,所述M路第一子流是服务器基于预定帧将所述第一直播流划分为至少两个第一切片,并基于所述至少两个第一切片对所述第一直播流进行划分得到的。
11.一种视频流传输装置,其特征在于,包括:
第一插入模块,用于获取到第一客户端推送的原始直播流时,在所述原始直播流中插入预定帧,得到第一直播流;
第一处理模块,用于基于所述预定帧,将所述第一直播流划分为至少两个第一切片,并基于所述至少两个第一切片将所述第一直播流划分为M路第一子流,M为大于1的整数;
第一发送模块,用于接收到任一第二客户端发送的第一视频流获取请求时,根据所述第一视频流获取请求的类型,向所述任一第二客户端发送相应的视频流;所述第一视频流获取请求的类型包括第一直播流的获取请求或任一路第一子流的获取请求。
12.一种视频流传输装置,其特征在于,包括:
第一交互模块,用于向服务器发送第一直播流的获取请求,所述第一直播流是服务器在第一客户端推送的原始直播流的每一视频帧中插入预定帧的直播流;
第二交互模块,用于当播放所述第一直播流达到预定时长时,向所述服务器发送任一路第一子流的获取请求,所述任一路第一子流是M路第一子流中的任一路,所述M路第一子流是服务器基于预定帧将所述第一直播流划分为至少两个第一切片,并基于所述至少两个第一切片对所述第一直播流进行划分得到的。
13.一种视频流传输装置,其特征在于,包括:
第一传输模块,用于接收服务器发送的第一直播流,所述第一直播流是服务器在第一客户端推送的原始直播流的每一视频帧中插入预定帧的直播流;
第二传输模块,用于当播放所述第一直播流达到预定时长时,接收服务器发送的任一路第一子流,所述任一路第一子流是M路第一子流中的任一路,所述M路第一子流是服务器基于预定帧将所述第一直播流划分为至少两个第一切片,并基于所述至少两个第一切片对所述第一直播流进行划分得到的。
14.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1-10任一项所述的方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现权利要求1-10任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911376086.7A CN111193936B (zh) | 2019-12-27 | 2019-12-27 | 视频流传输方法、装置、电子设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911376086.7A CN111193936B (zh) | 2019-12-27 | 2019-12-27 | 视频流传输方法、装置、电子设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111193936A true CN111193936A (zh) | 2020-05-22 |
CN111193936B CN111193936B (zh) | 2021-11-12 |
Family
ID=70707700
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911376086.7A Active CN111193936B (zh) | 2019-12-27 | 2019-12-27 | 视频流传输方法、装置、电子设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111193936B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111885393A (zh) * | 2020-07-31 | 2020-11-03 | 广州华多网络科技有限公司 | 一种直播方法、系统、存储介质及设备 |
CN112153022A (zh) * | 2020-09-11 | 2020-12-29 | 上海七牛信息技术有限公司 | 一种rtmp快速发布和订阅方法 |
WO2022017149A1 (zh) * | 2020-07-20 | 2022-01-27 | 华为技术有限公司 | 一种虚拟现实vr场景的视频处理方法及相关设备 |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110274155A1 (en) * | 2010-05-07 | 2011-11-10 | The Board Of Trustees Of The Leland Stanford Junior University | Apparatus, system, and method for distributed video transcoding |
CN102291607A (zh) * | 2010-06-21 | 2011-12-21 | 埃森哲环球服务有限公司 | 精确到帧的内容插入系统 |
WO2012164360A1 (en) * | 2011-06-02 | 2012-12-06 | Nds Limited | Content insertion in adaptive streams |
CN104967866A (zh) * | 2015-05-13 | 2015-10-07 | 浙江树人大学 | 一种动态自适应的p2p直播流媒体子流调度方法 |
CN105392068A (zh) * | 2015-11-04 | 2016-03-09 | 合一网络技术(北京)有限公司 | 分布式多传输信道网络直播视频并行分发方法及系统 |
CN105898324A (zh) * | 2015-12-07 | 2016-08-24 | 乐视云计算有限公司 | 视频水印隐藏插入方法及装置 |
CN107277134A (zh) * | 2017-06-19 | 2017-10-20 | 网宿科技股份有限公司 | 一种基于对等网络的数据传输方法及系统 |
US20180247550A1 (en) * | 2015-11-19 | 2018-08-30 | Shenzhen Eaglesoul Technology Co., Ltd. | Image synchronous display method and device |
CN108600859A (zh) * | 2018-03-30 | 2018-09-28 | 深圳市网心科技有限公司 | 一种数据切片方法及系统 |
CN109495505A (zh) * | 2018-12-21 | 2019-03-19 | 北京金山云网络技术有限公司 | 流媒体协议转换方法、装置、系统及计算机可读介质 |
CN109560901A (zh) * | 2018-11-14 | 2019-04-02 | 广州虎牙信息科技有限公司 | 一种数据重传方法、装置、终端设备及存储介质 |
CN109618208A (zh) * | 2018-12-25 | 2019-04-12 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种直播流分布式切片同步方法及装置 |
CN110024413A (zh) * | 2016-06-30 | 2019-07-16 | 斯尼弗卡特公司 | 用于在流内容中拼接广告的系统和方法 |
CN110086850A (zh) * | 2019-03-19 | 2019-08-02 | 视联动力信息技术股份有限公司 | 一种文件的处理方法和视联网网盘系统 |
CN110099288A (zh) * | 2014-03-24 | 2019-08-06 | 高通股份有限公司 | 处理连续的多周期内容 |
-
2019
- 2019-12-27 CN CN201911376086.7A patent/CN111193936B/zh active Active
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110274155A1 (en) * | 2010-05-07 | 2011-11-10 | The Board Of Trustees Of The Leland Stanford Junior University | Apparatus, system, and method for distributed video transcoding |
CN102291607A (zh) * | 2010-06-21 | 2011-12-21 | 埃森哲环球服务有限公司 | 精确到帧的内容插入系统 |
WO2012164360A1 (en) * | 2011-06-02 | 2012-12-06 | Nds Limited | Content insertion in adaptive streams |
CN110099288A (zh) * | 2014-03-24 | 2019-08-06 | 高通股份有限公司 | 处理连续的多周期内容 |
CN104967866A (zh) * | 2015-05-13 | 2015-10-07 | 浙江树人大学 | 一种动态自适应的p2p直播流媒体子流调度方法 |
CN105392068A (zh) * | 2015-11-04 | 2016-03-09 | 合一网络技术(北京)有限公司 | 分布式多传输信道网络直播视频并行分发方法及系统 |
US20180247550A1 (en) * | 2015-11-19 | 2018-08-30 | Shenzhen Eaglesoul Technology Co., Ltd. | Image synchronous display method and device |
CN105898324A (zh) * | 2015-12-07 | 2016-08-24 | 乐视云计算有限公司 | 视频水印隐藏插入方法及装置 |
CN110024413A (zh) * | 2016-06-30 | 2019-07-16 | 斯尼弗卡特公司 | 用于在流内容中拼接广告的系统和方法 |
CN107277134A (zh) * | 2017-06-19 | 2017-10-20 | 网宿科技股份有限公司 | 一种基于对等网络的数据传输方法及系统 |
CN108600859A (zh) * | 2018-03-30 | 2018-09-28 | 深圳市网心科技有限公司 | 一种数据切片方法及系统 |
CN109560901A (zh) * | 2018-11-14 | 2019-04-02 | 广州虎牙信息科技有限公司 | 一种数据重传方法、装置、终端设备及存储介质 |
CN109495505A (zh) * | 2018-12-21 | 2019-03-19 | 北京金山云网络技术有限公司 | 流媒体协议转换方法、装置、系统及计算机可读介质 |
CN109618208A (zh) * | 2018-12-25 | 2019-04-12 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种直播流分布式切片同步方法及装置 |
CN110086850A (zh) * | 2019-03-19 | 2019-08-02 | 视联动力信息技术股份有限公司 | 一种文件的处理方法和视联网网盘系统 |
Non-Patent Citations (1)
Title |
---|
邓达等: ""基于CDN-P2P流媒体直播系统方案设计实现"", 《计算机工程与设计》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022017149A1 (zh) * | 2020-07-20 | 2022-01-27 | 华为技术有限公司 | 一种虚拟现实vr场景的视频处理方法及相关设备 |
CN111885393A (zh) * | 2020-07-31 | 2020-11-03 | 广州华多网络科技有限公司 | 一种直播方法、系统、存储介质及设备 |
CN112153022A (zh) * | 2020-09-11 | 2020-12-29 | 上海七牛信息技术有限公司 | 一种rtmp快速发布和订阅方法 |
CN112153022B (zh) * | 2020-09-11 | 2022-09-13 | 上海七牛信息技术有限公司 | 一种rtmp快速发布和订阅方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111193936B (zh) | 2021-11-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11470405B2 (en) | Network video streaming with trick play based on separate trick play files | |
CN105230024B (zh) | 一种媒体表示自适应方法、装置及计算机存储介质 | |
CN111193936B (zh) | 视频流传输方法、装置、电子设备及计算机可读存储介质 | |
RU2652099C2 (ru) | Устройство передачи, способ передачи, устройство приема и способ приема | |
US10277927B2 (en) | Movie package file format | |
US10326811B2 (en) | Communication apparatus, communication data generation method, and communication data processing method | |
US10863211B1 (en) | Manifest data for server-side media fragment insertion | |
US20140359678A1 (en) | Device video streaming with trick play based on separate trick play files | |
CN107634930B (zh) | 一种媒体数据的获取方法和装置 | |
JP2016530751A (ja) | 品質対ビットレートが変動するメディアデータストリームの品質を決定するための概念 | |
US20140297804A1 (en) | Control of multimedia content streaming through client-server interactions | |
US8402485B2 (en) | Advertisement inserting VOD delivery method and VOD server | |
CN108810657B (zh) | 一种设置视频封面的方法和系统 | |
WO2014193996A2 (en) | Network video streaming with trick play based on separate trick play files | |
US20140052824A1 (en) | Conveying state information for streaming media | |
CN106789976A (zh) | 媒体文件的播放方法、服务端、客户端及系统 | |
CN105228001A (zh) | 一种flv格式视频在线播放的方法及系统 | |
CN103747285A (zh) | 一种节目播放方法和服务端、客户端 | |
RU2651241C2 (ru) | Передающее устройство, способ передачи, приемное устройство и способ приема | |
CN106331763B (zh) | 无缝播放分片媒体文件的方法及实现该方法的装置 | |
CN112218128B (zh) | 广告视频的播放方法、播放客户端及可读存储介质 | |
KR102176404B1 (ko) | 통신 장치, 통신 데이터 생성 방법, 및 통신 데이터 처리 방법 | |
CN114401376B (zh) | 一种多画面视频播放方法及装置 | |
CN105491394B (zh) | 发送mmt包的方法及装置、接收mmt包的方法 | |
US10104142B2 (en) | Data processing device, data processing method, program, recording medium, and data processing system |
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 |