CN113824985B - 直播拉流方法、装置、设备、存储介质及计算机程序产品 - Google Patents
直播拉流方法、装置、设备、存储介质及计算机程序产品 Download PDFInfo
- Publication number
- CN113824985B CN113824985B CN202111097020.1A CN202111097020A CN113824985B CN 113824985 B CN113824985 B CN 113824985B CN 202111097020 A CN202111097020 A CN 202111097020A CN 113824985 B CN113824985 B CN 113824985B
- Authority
- CN
- China
- Prior art keywords
- frame
- live video
- video stream
- standby
- main
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 52
- 238000004590 computer program Methods 0.000 title abstract description 15
- 230000004044 response Effects 0.000 claims description 21
- 230000003068 static effect Effects 0.000 abstract description 9
- 238000004891 communication Methods 0.000 description 11
- 238000012545 processing Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
- H04N21/2187—Live feed
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/238—Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
- H04N21/2383—Channel coding or modulation of digital bit-stream, e.g. QPSK modulation
-
- 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/262—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
-
- 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/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/647—Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
- H04N21/64746—Control signals issued by the network directed to the server or the client
- H04N21/64761—Control signals issued by the network directed to the server or the client directed to the server
- H04N21/64776—Control signals issued by the network directed to the server or the client directed to the server for requesting retransmission, e.g. of data packets lost or corrupted during transmission from server
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本公开提供了一种直播拉流方法、装置、电子设备、计算机可读存储介质及计算机程序产品,涉及媒体云技术领域。该方法包括:响应于拉取自主直播视频流的第一非I帧的第一参考帧丢失,将拉流源从主直播视频流切换至预设的备用直播视频流;根据帧时序差在备用直播视频流中确定与第一非I帧对应的第二非I帧;利用与第二非I帧对应的第二参考帧编码得到第二非I帧的实际画面。该方法在保持推流端在向外推主直播视频流的同时,还同时控制推流端额外的向外推备用直播视频流,以使拉流端从主直播视频流中拉取的非I帧的参考帧丢失时,还可以通过将拉流源切换至备用直播视频流的方式来快速呈现后续画面,从而减少画面静止或黑屏的出现概率。
Description
技术领域
本公开涉及音视频数据处理技术领域,具体涉及媒体云技术领域,尤其涉及一种直播拉流方法、装置、电子设备、计算机可读存储介质及计算机程序产品。
背景技术
为了减少数据传输量,通常采用一个I帧(内部编码帧,或称关键帧)、多个P帧(前向预测帧,或称前向参考帧)或B帧(双向内插帧,或称双向参考帧)的方式来构成一个帧编码组。其中,区别于仅需帧内数据即可解码出完整画面的I帧,P帧需要参考所在帧编码组内的I帧以帧间编码的方式才能编码得到实际画面,B帧则需要同时参照帧编码组内的前后双方的视频帧才能编码得到实际画面。
而视频直播过程中网络抖动、不稳定情况下容易丢帧。如果发生丢帧,则等待到下一个参考帧(在仅由I帧和P帧构成的帧编码组中,参考帧为I帧)才开始重新开始解码播放。若下一个参考帧序列距离特别远的话,可能用户会出现一段时间的无画面可观看的情况发生(画面静止或者黑屏)。
因此,如何避免因参考帧丢失导致的画面静止或黑屏现象发生,是本领域技术人员亟待解决的问题。
发明内容
本公开实施例提出了一种直播拉流方法、装置、电子设备、计算机可读存储介质及计算机程序产品。
第一方面,本公开实施例提出了一种直播拉流方法,包括:响应于拉取自主直播视频流的第一非I帧的第一参考帧丢失,将拉流源从主直播视频流切换至预设的备用直播视频流,备用直播视频流与主直播视频流之间存在帧时序差;根据帧时序差在备用直播视频流中确定与第一非I帧对应的第二非I帧;利用与第二非I帧对应的第二参考帧编码得到第二非I帧的实际画面。
第二方面,本公开实施例提出了一种直播拉流装置,包括:备用直播视频流切换单元,被配置成响应于拉取自主直播视频流的第一非I帧的第一参考帧丢失,将拉流源从主直播视频流切换至预设的备用直播视频流,备用直播视频流与主直播视频流之间存在帧时序差;相同非I帧确定单元,被配置成根据帧时序差在所述备用直播视频流中确定与第一非I帧对应的第二非I帧;第二非I帧画面编码单元,被配置成利用与第二非I帧对应的第二参考帧编码得到第二非I帧的实际画面。
第三方面,本公开实施例提供了一种电子设备,该电子设备包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,该指令被至少一个处理器执行,以使至少一个处理器执行时能够实现如第一方面中任一实现方式描述的直播拉流方法。
第四方面,本公开实施例提供了一种存储有计算机指令的非瞬时计算机可读存储介质,该计算机指令用于使计算机执行时能够实现如第一方面中任一实现方式描述的直播拉流方法。
第五方面,本公开实施例提供了一种包括计算机程序的计算机程序产品,该计算机程序在被处理器执行时能够实现如第一方面中任一实现方式描述的直播拉流方法。
本公开实施例提供的直播拉流方法包括:响应于拉取自主直播视频流的第一非I帧的第一参考帧丢失,将拉流源从主直播视频流切换至预设的备用直播视频流,备用直播视频流与主直播视频流之间存在帧时序差;根据帧时序差在备用直播视频流中确定与第一非I帧对应的第二非I帧;利用与第二非I帧对应的第二参考帧编码得到第二非I帧的实际画面。
针对仅从单一的主直播视频流拉取是因丢帧导致的画面静止或黑屏问题,本公开实施例在保持推流端在向外推主直播视频流的同时,还同时控制推流端额外的向外推备用直播视频流,以使拉流端从主直播视频流中拉取的非I帧的参考帧丢失时,还可以通过将拉流源切换至备用直播视频流的方式来快速呈现后续画面,从而减少画面静止或黑屏的出现概率。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本公开的其它特征、目的和优点将会变得更明显:
图1是本公开可以应用于其中的示例性系统架构;
图2为本公开实施例提供的一种直播拉流方法的流程图;
图3为本公开实施例提供的另一种直播拉流方法的流程图;
图4为本公开实施例提供的一种对应于图3所示方案的主备流帧时序差别示意图;
图5为本公开实施例提供的一种切换回主直播视频流的方法的示意图;
图6为本公开实施例提供的一种直播拉流装置的结构框图;
图7为本公开实施例提供的一种适用于执行直播拉流方法的电子设备的结构示意图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。
本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
图1示出了可以应用本公开的直播拉流方法、装置、电子设备及计算机可读存储介质的实施例的示例性系统架构100。
如图1所示,系统架构100可以包括推流设备101、网络102和拉流设备103、104、105。网络102用以在推流设备101和拉流设备103、104、105之间提供通信链路的介质。网络102可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用拉流设备103、104、105拉取推流设备101通过网络102向外推的直播数据流,且在本公开中,推流设备101至少同时向外推两路存在帧时序差的直播数据流,而拉流设备103、104、105则可以通过切换拉流源的方式选择从不同的直播数据流中进行拉流。推流设备101和拉流设备103、104、105上可以安装有各种用于实现两者之间进行信息通讯的应用,例如直播类应用、数据传输类应用等。
推流设备101和拉流设备103、104、105可以是硬件,也可以是软件。当推流设备101为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器;服务器为软件时,可以实现成多个软件或软件模块,也可以实现成单个软件或软件模块,在此不做具体限定。当拉流设备103、104、105为硬件时,可以是具有显示屏的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等;当拉流设备103、104、105为软件时,可以安装在上述所列举的电子设备中,其可以实现成多个软件或软件模块,也可以实现成单个软件或软件模块,在此不做具体限定。
拉流设备103、104、105通过内置的各种应用可以提供各种服务,以可以提供为设备前的直播观看用户提供防因丢失参考帧导致的直播画面静止或黑屏现象的新版直播类应用为例,推流设备101在运行该新版直播类应用时可实现如下效果:首先,通过网络102默认拉取推流设备101所推的主直播视频流;然后,在拉取自主直播视频流的第一非I帧的第一参考帧丢失时,将拉流源从主直播视频流切换至推流设备101所推的备用直播视频流;接着,根据帧时序差在备用直播视频流中确定与第一非I帧对应的第二非I帧;最后,利用与第二非I帧对应的第二参考帧编码得到第二非I帧的实际画面。
进一步的在拉流设备103、104、105从备用直播视频流中拉取完第二非I帧所在帧编码组的所有帧且完成画面呈现后,还可以考虑将拉流源切换回主直播视频流。
本公开后续各实施例所提供的直播拉流方法一般由拉流设备103、104、105来执行,相应地,直播拉流装置一般也设置于拉流设备103、104、105中。
应该理解,图1中的推流设备、网络和拉流设备的数目仅仅是示意性的。根据实现需要,可以具有任意数目的推流设备、网络和拉流设备。
请参考图2,图2为本公开实施例提供的一种直播拉流方法的流程图,其中流程200包括以下步骤:
步骤201:响应于拉取自主直播视频流的第一非I帧的第一参考帧丢失,将拉流源从主直播视频流切换至预设的备用直播视频流;
本步骤旨在由直播拉流方法的执行主体(例如图1所示的拉流设备103、104、105)在发现拉取自主直播视频流的第一非I帧的第一参考帧丢失时,将拉流源从主直播视频流切换至预设的备用直播视频流。即默认的拉流源为主直播视频流,第一非I帧为P帧或B帧,在第一非I帧为P帧时,其对应的第一参考帧将为同一帧编码组中时序在前的I帧;在第一非I帧为B帧时,其第一参考帧为其前后各一已经完成编码的视频帧。
其中,备用直播视频流与主直播视频流之间存在帧时序差,以便于根据该帧时序差避免因与时间点产生的数据丢失问题导致的备用直播视频流也同样丢失了与第一参考帧相同的参考帧,同时帧时序差也使得能够在备用直播视频流中快速找到与第一非I帧对应的第一参考帧的相同参考帧。
具体的,帧时序差的最大值一般不超过一个帧编码组中非I帧的总帧数,以便快速定位同一帧编码组中的参考帧,而在不超过总帧数的情况下的具体数值可根据备用直播视频流的数量、实际应用场景所有可能存在的影响因素综合确定,而在有多条备用直播视频流时,也根据可以实际情况设置各备用直播视频流分别与主直播视频流的帧时序差,例如各不相同或允许有几条相同等等,此处不做具体限定。
步骤202:根据帧时序差在备用直播视频流中确定与第一非I帧对应的第二非I帧;
在步骤201的基础上,本步骤旨在由上述执行主体根据帧时序差在备用直播视频流中确定与第一非I帧对应的第二非I帧。
本步骤虽然分别使用第一非I帧和第二非I帧的命名方式来区分两个视频帧,但实际上在本公开所针对的直播场景下,来自于主直播视频流的第一非I帧和来自与备用直播视频流的第二非I帧实际上是拥有相同数据内容的视频帧,区别仅在于两者所隶属的直播视频流不同以及第二非I帧对应的第二参考帧可能仍能够从备用直播视频流中获取到,进而使得第二非I帧能够通过参考第二参考帧完成自身视频画面的编码,进而得以呈现相应的画面。
为在备用直播视频流中确定与第一非I帧对应的第二非I帧,可根据第一非I帧的时间戳,并进而根据该时间戳确定具体所在的帧编码组(在可直接确定出所在的帧编码组的情况下,也可以反过来),进而根据时间戳和帧编码组、帧时序差在备用直播视频流中确定相同的帧编码组,以及将在相同帧编码组中相同位置的视频帧确定为第二非I帧。
步骤203:利用与第二非I帧对应的第二参考帧编码得到第二非I帧的实际画面。
在步骤202的基础上,本步骤旨在由上述执行主体利用与第二非I帧对应的第二参考帧编码得到第二非I帧的实际画面。即第二非I帧将通过参考第二参考帧的视频内容,以帧间编码的方式编码得到该实际画面。
针对仅从单一的主直播视频流拉取是因丢帧导致的画面静止或黑屏问题,本公开实施例提供的直播拉流方法在保持推流端在向外推主直播视频流的同时,还同时控制推流端额外的向外推备用直播视频流,以使拉流端从主直播视频流中拉取的非I帧的参考帧丢失时,还可以通过将拉流源切换至备用直播视频流的方式来快速呈现后续画面,从而减少画面静止或黑屏的出现概率。
为了加深对如何设置备用直播视频流、帧时序差具体数值的理解,本公开还通过下述内容分别以仅有一条备用直播视频流和存在多条备用直播视频流为例,给出了设置帧时序差的指导思想,以及一个优选方案:
图3所示的流程300针对存在多条备用直播视频流的情况,给出了一套完整的实现方案,包括以下步骤:
步骤301:响应于拉取自主直播视频流的第一非I帧的第一参考帧丢失,将与第一参考帧具有最小帧数差的第二参考帧所在的备用直播视频流确定为目标备用直播视频流;
本实施例在本步骤中,旨在由上述执行主体在多条备用直播视频流中选择能够最快获取到第二参考帧的备用直播视频流,即将与第一参考帧具有最小帧数差的第二参考帧所在的备用直播视频流确定为目标备用直播视频流。
既然不同的备用直播视频流能够拥有相对主直播视频流的第一参考帧的不同帧数差,说明不同备用直播视频流各自相对主直播视频流的帧时序差各不相同,从而便于明确目标备用直播视频流,以便于在不同的时间点都能够较快速的找到第二参考帧。
步骤302:将拉流源从主直播视频流切换至目标备用直播视频流;
步骤303:根据帧时序差在备用直播视频流中确定与第一非I帧对应的第二非I帧;
步骤304:利用与第二非I帧对应的第二参考帧编码得到第二非I帧的实际画面。
如图4示出的示意图可以看出,该示意图中共存在5条直播视频流(均采用I帧和P帧来构成帧编码组的方式),按照从上到下的顺序依次为1条主直播视频流、与主直播视频流之间的帧时序差分别为1、2、3、4的4条不同备用直播视频流。如图4所示,每个帧编码组由开头的1个I帧和后续的4个P帧构成,因此通过设置总数为4、帧时序差各不相同的备用直播视频流,将能够为在任意P帧的I帧丢失时都能够快速的在某一个备用直播视频流中找到相应的I帧。
假定当前应呈现主直播视频流中从左往右数的第3个视频帧—第2个P帧的画面,但其参考帧-最左侧的I帧丢失,那么目标备用直播视频流应当选择图4中的备流2(假定拉流源切换不存在时间损耗);若当前应当呈现第4个视频帧-第3个P帧的画面,但同样是最左侧的I帧丢失,那么目标备用直播视频流应当选择图4中的备流3。如果考虑拉流源切换存在时间损耗,则可以进行适应性的错位调整即可。
区别于图3和图4所示的多备用直播视频流方案,在仅有一条备用直播视频流时,则可以控制备用直播视频流与主直播视频流之间的帧时序差为预设的帧编码组中帧总数的半数。假定一个帧编码组由1个I帧和3个P帧构成,那么此时的帧总数为4,其半数就为2,即该唯一的备用直播视频流与主直播视频流的帧时序差为2。若帧总数为无法整除2的奇数,那么其小数结果的相邻整数均可。
另外,在仅有一条备用直播视频流时,还可以控制备用直播视频流采用全I帧编码的方式,虽然此种方式会导致推流设备拥有较大的推流压力,但全I帧编码可以尽可能的减少延时,在用完后也可以再及时的切换回主直播视频流,对短时间从此种备用直播视频流进行拉流的拉流端来说负载在允许范围内。
在上述任意实施例的基础上,本实施例对在何时切换回主直播视频流进行了思考,以在排除主直播视频流存在的参考帧丢失问题后尽快切换回稳定性保障能力更强的主直播视频流,请参见图5所示的流程500中包含的下述步骤:
步骤501:利用与位于第二非I帧后的其它非I帧对应的参考帧编码得到其它非I帧的实际画面;
由于在先参考帧的丢失,将链式的影响同一帧编码组内后续其它非I帧的编码,因此继续采用来自备用直播视频流的视频帧呈现画面的过程至少要持续至完成整个帧编码组内所有视频帧。即由上述执行主体利用与位于第二非I帧后的其它非I帧对应的参考帧编码得到其它非I帧的实际画面。
步骤502:响应于第二非I帧所在的帧编码组中所有的视频帧均编码完成且主直播视频流中下一个帧编码组的I帧未丢失,将拉流源从备用直播视频流切换回主直播视频流。
在步骤501的基础上,本步骤旨在由上述执行主体在第二非I帧所在的帧编码组中所有的视频帧均编码完成且主直播视频流中下一个帧编码组的I帧未丢失时,将拉流源从备用直播视频流切换回主直播视频流。
反之,若主直播视频流中下一个帧编码组的I帧也丢失了,那将继续保持至下一个帧编码组的所有视频帧的画面呈现完成,直至主直播视频流中后续的某个帧编码组的I帧未丢失。
为加深理解,本公开还结合一个具体以I帧和P帧构成的帧编码组的场景,给出了一套完整的处理方案:
响应于拉取自主直播视频流的第一P帧对应的第一I帧丢失,将拉流源从主直播视频流切换至备用直播视频流;
假定第一P帧为图4所示的从左至右的第2个P帧,那么该第2个P帧对应的第一I帧即为最左侧I帧。
根据帧时序差在备用直播视频流中确定与第一P帧对应的第二P帧;
仍以图4为例,将备流2中从左往右的第4个P帧确定为第二P帧。
利用与第二P帧对应的第二I帧编码得到第二P帧的实际画面。
承接上例,此时的第二I帧即为备流2中位于从左至右的第3帧的I帧。
进一步参考图6,作为对上述各图所示方法的实现,本公开提供了一种直播拉流装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图6所示,本实施例的直播拉流装置600可以包括:备用直播视频流切换单元601、相同非I帧确定单元602、第二非I帧画面编码单元603。其中,备用直播视频流切换单元601,被配置成响应于拉取自主直播视频流的第一非I帧的第一参考帧丢失,将拉流源从主直播视频流切换至预设的备用直播视频流;其中,备用直播视频流与主直播视频流之间存在帧时序差;相同非I帧确定单元602,被配置成根据帧时序差在备用直播视频流中确定与第一非I帧对应的第二非I帧;第二非I帧画面编码单元603,被配置成利用与第二非I帧对应的第二参考帧编码得到第二非I帧的实际画面。
在本实施例中,直播拉流装置600中:备用直播视频流切换单元601、相同非I帧确定单元602、第二非I帧画面编码单元603的具体处理及其所带来的技术效果可分别参考图2对应实施例中的步骤201-203的相关说明,在此不再赘述。
在本实施例的一些可选的实现方式中,直播拉流装置600中还可以包括:
全I帧编码单元,被配置成响应于仅有一条备用直播视频流,控制备用直播视频流采用全I帧编码。
在本实施例的一些可选的实现方式中,直播拉流装置600中还可以包括:
非全I帧编码单元,被配置成响应于仅有一条备用直播视频流且备用直播视频流未采用全I帧编码,控制备用直播视频流与主直播视频流之间的帧时序差为预设的帧编码组中帧总数的半数。
在本实施例的一些可选的实现方式中,直播拉流装置600中还可以包括:
目标备用直播视频流确定单元,被配置成在将拉流源从主直播视频流切换至预设的备用直播视频流之前,响应于预先设置与主直播视频流具有不同帧时序差的多条备用直播视频流,将与第一参考帧具有最小帧数差的第二参考帧所在的备用直播视频流确定为目标备用直播视频流;
对应的,备用直播视频流切换单元601可以被进一步配置成:
将拉流源从主直播视频流切换至目标备用直播视频流。
在本实施例的一些可选的实现方式中,直播拉流装置600中还可以包括:
同帧编码组继续编码单元,被配置成在利用与第二非I帧对应的第二参考帧编码得到第二非I帧的实际画面之后,利用与位于第二非I帧后的其它非I帧对应的参考帧编码得到其它非I帧的实际画面;
主直播视频流切换单元,被配置成响应于第二非I帧所在的帧编码组中所有的视频帧均编码完成且主直播视频流中下一个帧编码组的I帧未丢失,将拉流源从备用直播视频流切换回主直播视频流。
在本实施例的一些可选的实现方式中,备用直播视频流切换单元601可以被进一步配置成:
响应于拉取自主直播视频流的第一P帧对应的第一I帧丢失,将拉流源从主直播视频流切换至备用直播视频流;
对应的,相同非I帧确定单元602可以被进一步配置成:
根据帧时序差在备用直播视频流中确定与第一P帧对应的第二P帧;
对应的,第二非I帧画面编码单元603可以被进一步配置成:
利用与第二P帧对应的第二I帧编码得到第二P帧的实际画面。
本实施例作为对应于上述方法实施例的装置实施例存在。
针对仅从单一的主直播视频流拉取是因丢帧导致的画面静止或黑屏问题,本公开实施例提供的直播拉流装置在保持推流端在向外推主直播视频流的同时,还同时控制推流端额外的向外推备用直播视频流,以使拉流端从主直播视频流中拉取的非I帧的参考帧丢失时,还可以通过将拉流源切换至备用直播视频流的方式来快速呈现后续画面,从而减少画面静止或黑屏的出现概率。
根据本公开的实施例,本公开还提供了一种电子设备,该电子设备包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,该指令被至少一个处理器执行,以使至少一个处理器执行时能够实现上述任意实施例所描述的直播拉流方法。
根据本公开的实施例,本公开还提供了一种可读存储介质,该可读存储介质存储有计算机指令,该计算机指令用于使计算机执行时能够实现上述任意实施例所描述的直播拉流方法。
本公开实施例提供了一种计算机程序产品,该计算机程序在被处理器执行时能够实现上述任意实施例所描述的直播拉流方法。
图7示出了可以用来实施本公开的实施例的示例电子设备700的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图7所示,设备700包括计算单元701,其可以根据存储在只读存储器(ROM)702中的计算机程序或者从存储单元708加载到随机访问存储器(RAM)703中的计算机程序,来执行各种适当的动作和处理。在RAM 703中,还可存储设备700操作所需的各种程序和数据。计算单元701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
设备700中的多个部件连接至I/O接口705,包括:输入单元706,例如键盘、鼠标等;输出单元707,例如各种类型的显示器、扬声器等;存储单元708,例如磁盘、光盘等;以及通信单元709,例如网卡、调制解调器、无线通信收发机等。通信单元709允许设备700通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元701可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元701的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元701执行上文所描述的各个方法和处理,例如直播拉流方法。例如,在一些实施例中,直播拉流方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元708。在一些实施例中,计算机程序的部分或者全部可以经由ROM 702和/或通信单元709而被载入和/或安装到设备700上。当计算机程序加载到RAM 703并由计算单元701执行时,可以执行上文描述的直播拉流方法的一个或多个步骤。备选地,在其他实施例中,计算单元701可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行直播拉流方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决传统物理主机与虚拟专用服务器(VPS,Virtual Private Server)服务中存在的管理难度大,业务扩展性弱的缺陷。
针对仅从单一的主直播视频流拉取是因丢帧导致的画面静止或黑屏问题,本公开实施例在保持推流端在向外推主直播视频流的同时,还同时控制推流端额外的向外推备用直播视频流,以使拉流端从主直播视频流中拉取的非I帧的参考帧丢失时,还可以通过将拉流源切换至备用直播视频流的方式来快速呈现后续画面,从而减少画面静止或黑屏的出现概率。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (10)
1.一种直播拉流方法,包括:
响应于拉取自主直播视频流的第一非I帧的第一参考帧丢失,将拉流源从所述主直播视频流切换至预设的备用直播视频流;其中,所述备用直播视频流与所述主直播视频流之间存在帧时序差;
根据所述帧时序差在所述备用直播视频流中确定与所述第一非I帧对应的第二非I帧;
利用与所述第二非I帧对应的第二参考帧编码得到所述第二非I帧的实际画面;
利用与位于所述第二非I帧后的其它非I帧对应的参考帧编码得到所述其它非I帧的实际画面;
响应于所述第二非I帧所在的帧编码组中所有的视频帧均编码完成且所述主直播视频流中下一个帧编码组的I帧未丢失,将所述拉流源从所述备用直播视频流切换回所述主直播视频流;
在将拉流源从所述主直播视频流切换至预设的备用直播视频流之前,还包括:
响应于预先设置与所述主直播视频流具有不同帧时序差的多条备用直播视频流,将与所述第一参考帧具有最小帧数差的第二参考帧所在的备用直播视频流确定为目标备用直播视频流;
对应的,所述将拉流源从所述主直播视频流切换至预设的备用直播视频流,包括:将拉流源从所述主直播视频流切换至所述目标备用直播视频流。
2.根据权利要求1所述的方法,还包括:
响应于仅有一条备用直播视频流,控制所述备用直播视频流采用全I帧编码。
3.根据权利要求1所述的方法,还包括:
响应于仅有一条备用直播视频流且所述备用直播视频流未采用全I帧编码,控制所述备用直播视频流与所述主直播视频流之间的帧时序差为预设的帧编码组中帧总数的半数。
4.根据权利要求1-3任一项所述的方法,其中,所述响应于拉取自主直播视频流的第一非I帧的第一参考帧丢失,将拉流源从所述主直播视频流切换至预设的备用直播视频流,包括:
响应于拉取自所述主直播视频流的第一P帧对应的第一I帧丢失,将所述拉流源从所述主直播视频流切换至所述备用直播视频流;
对应的,所述根据所述帧时序差在所述备用直播视频流中确定与所述第一非I帧对应的第二非I帧,包括:
根据所述帧时序差在所述备用直播视频流中确定与所述第一P帧对应的第二P帧;
对应的,所述利用与所述第二非I帧对应的第二参考帧编码得到所述第二非I帧的实际画面,包括:
利用与所述第二P帧对应的第二I帧编码得到所述第二P帧的实际画面。
5.一种直播拉流装置,包括:
备用直播视频流切换单元,被配置成响应于拉取自主直播视频流的第一非I帧的第一参考帧丢失,将拉流源从所述主直播视频流切换至预设的备用直播视频流;其中,所述备用直播视频流与所述主直播视频流之间存在帧时序差;
相同非I帧确定单元,被配置成根据所述帧时序差在所述备用直播视频流中确定与所述第一非I帧对应的第二非I帧;
第二非I帧画面编码单元,被配置成利用与所述第二非I帧对应的第二参考帧编码得到所述第二非I帧的实际画面;
同帧编码组继续编码单元,被配置成在利用与所述第二非I帧对应的第二参考帧编码得到所述第二非I帧的实际画面之后,利用与位于所述第二非I帧后的其它非I帧对应的参考帧编码得到所述其它非I帧的实际画面;
主直播视频流切换单元,被配置成响应于所述第二非I帧所在的帧编码组中所有的视频帧均编码完成且所述主直播视频流中下一个帧编码组的I帧未丢失,将所述拉流源从所述备用直播视频流切换回所述主直播视频流;
目标备用直播视频流确定单元,被配置成在将拉流源从所述主直播视频流切换至预设的备用直播视频流之前,响应于预先设置与所述主直播视频流具有不同帧时序差的多条备用直播视频流,将与所述第一参考帧具有最小帧数差的第二参考帧所在的备用直播视频流确定为目标备用直播视频流;对应的,所述备用直播视频流切换单元被进一步配置成:将拉流源从所述主直播视频流切换至所述目标备用直播视频流。
6.根据权利要求5所述的装置,还包括:
全I帧编码单元,被配置成响应于仅有一条备用直播视频流,控制所述备用直播视频流采用全I帧编码。
7.根据权利要求5所述的装置,还包括:
非全I帧编码单元,被配置成响应于仅有一条备用直播视频流且所述备用直播视频流未采用全I帧编码,控制所述备用直播视频流与所述主直播视频流之间的帧时序差为预设的帧编码组中帧总数的半数。
8.根据权利要求5-7任一项所述的装置,其中,所述备用直播视频流切换单元被进一步配置成:
响应于拉取自所述主直播视频流的第一P帧对应的第一I帧丢失,将所述拉流源从所述主直播视频流切换至所述备用直播视频流;
对应的,所述相同非I帧确定单元被进一步配置成:
根据所述帧时序差在所述备用直播视频流中确定与所述第一P帧对应的第二P帧;
对应的,所述第二非I帧画面编码单元被进一步配置成:
利用与所述第二P帧对应的第二I帧编码得到所述第二P帧的实际画面。
9.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-4中任一项所述的直播拉流方法。
10.一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行权利要求1-4中任一项所述的直播拉流方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111097020.1A CN113824985B (zh) | 2021-09-18 | 2021-09-18 | 直播拉流方法、装置、设备、存储介质及计算机程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111097020.1A CN113824985B (zh) | 2021-09-18 | 2021-09-18 | 直播拉流方法、装置、设备、存储介质及计算机程序产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113824985A CN113824985A (zh) | 2021-12-21 |
CN113824985B true CN113824985B (zh) | 2023-08-22 |
Family
ID=78914926
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111097020.1A Active CN113824985B (zh) | 2021-09-18 | 2021-09-18 | 直播拉流方法、装置、设备、存储介质及计算机程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113824985B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103152576A (zh) * | 2013-03-21 | 2013-06-12 | 浙江宇视科技有限公司 | 一种适用于组播抗丢包的视频编码及解码装置 |
CN103533387A (zh) * | 2013-10-21 | 2014-01-22 | 腾讯科技(深圳)有限公司 | 一种视频直播控制方法、设备及系统 |
CN103856806A (zh) * | 2012-11-28 | 2014-06-11 | 腾讯科技(北京)有限公司 | 视频流切换方法、装置及系统 |
CN104902289A (zh) * | 2015-06-29 | 2015-09-09 | 秦永红 | 一种rtmp流媒体直播系统热备份的设计方法及其系统 |
CN106713963A (zh) * | 2016-11-28 | 2017-05-24 | 天脉聚源(北京)科技有限公司 | 一种对齐视频流的播放进度的方法及装置 |
CN108012161A (zh) * | 2017-11-10 | 2018-05-08 | 广州华多网络科技有限公司 | 视频直播方法、系统和终端设备 |
CN110198311A (zh) * | 2019-05-21 | 2019-09-03 | 腾讯科技(深圳)有限公司 | 一种数据流处理方法、装置、设备及介质 |
CN111131862A (zh) * | 2020-01-02 | 2020-05-08 | 山东云缦智能科技有限公司 | 一种实现cmaf直播源自动主备切换的实现方法 |
CN111404882A (zh) * | 2020-03-02 | 2020-07-10 | 广州华多网络科技有限公司 | 媒体流处理方法及装置 |
CN112822503A (zh) * | 2020-12-30 | 2021-05-18 | 腾讯科技(深圳)有限公司 | 直播视频流的播放方法、装置、设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11463651B2 (en) * | 2019-12-23 | 2022-10-04 | Carrier Corporation | Video frame-based media stream bandwidth reduction |
-
2021
- 2021-09-18 CN CN202111097020.1A patent/CN113824985B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103856806A (zh) * | 2012-11-28 | 2014-06-11 | 腾讯科技(北京)有限公司 | 视频流切换方法、装置及系统 |
CN103152576A (zh) * | 2013-03-21 | 2013-06-12 | 浙江宇视科技有限公司 | 一种适用于组播抗丢包的视频编码及解码装置 |
CN103533387A (zh) * | 2013-10-21 | 2014-01-22 | 腾讯科技(深圳)有限公司 | 一种视频直播控制方法、设备及系统 |
CN104902289A (zh) * | 2015-06-29 | 2015-09-09 | 秦永红 | 一种rtmp流媒体直播系统热备份的设计方法及其系统 |
CN106713963A (zh) * | 2016-11-28 | 2017-05-24 | 天脉聚源(北京)科技有限公司 | 一种对齐视频流的播放进度的方法及装置 |
CN108012161A (zh) * | 2017-11-10 | 2018-05-08 | 广州华多网络科技有限公司 | 视频直播方法、系统和终端设备 |
CN110198311A (zh) * | 2019-05-21 | 2019-09-03 | 腾讯科技(深圳)有限公司 | 一种数据流处理方法、装置、设备及介质 |
CN111131862A (zh) * | 2020-01-02 | 2020-05-08 | 山东云缦智能科技有限公司 | 一种实现cmaf直播源自动主备切换的实现方法 |
CN111404882A (zh) * | 2020-03-02 | 2020-07-10 | 广州华多网络科技有限公司 | 媒体流处理方法及装置 |
CN112822503A (zh) * | 2020-12-30 | 2021-05-18 | 腾讯科技(深圳)有限公司 | 直播视频流的播放方法、装置、设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
Eliminating periodical key frame in online lecture broadcasting by Peer-Assisted Reference Frame Synchronization;Weikai Xie;《2010 IEEE International Symposium on Broadband Multimedia Systems and Broadcasting (BMSB)》;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113824985A (zh) | 2021-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102039778B1 (ko) | 서버에서 멀티 비트 레이트 스트림 미디어를 적응적으로 제공하기 위한 방법 및 장치 | |
CN111757158A (zh) | 音视频同步播放方法、装置、设备和存储介质 | |
EP3934249A1 (en) | Method for coding video and related device | |
US11356739B2 (en) | Video playback method, terminal apparatus, and storage medium | |
CN113825020B (zh) | 视频清晰度切换方法、装置、设备、存储介质及程序产品 | |
CN113490055A (zh) | 数据处理方法和装置 | |
CN111836076A (zh) | 视频分辨率切换方法及装置、电子设备 | |
CN114422799B (zh) | 视频文件的解码方法、装置、电子设备、程序产品 | |
US20240340507A1 (en) | Methods, systems, and media for streaming video content using adaptive buffers | |
CN110636338A (zh) | 一种视频清晰度的切换方法、装置、电子设备及存储介质 | |
CN113824985B (zh) | 直播拉流方法、装置、设备、存储介质及计算机程序产品 | |
CN113627363B (zh) | 视频文件的处理方法、装置、设备以及存储介质 | |
EP3264284A1 (en) | Data processing method and device | |
CN115767149A (zh) | 一种视频数据的传输方法和装置 | |
CN117061827B (zh) | 图像帧处理方法、装置、设备及存储介质 | |
CN113965714B (zh) | 视频流的处理方法、装置、电子设备及存储介质 | |
CN113727183B (zh) | 直播推流方法、装置、设备、存储介质及计算机程序产品 | |
CN112383676B (zh) | 一种视频文件处理方法、装置、电子设备以及存储介质 | |
CN113556621B (zh) | 码流切换的方法、服务器、客户端、设备以及存储介质 | |
CN117915026B (zh) | 一种输入视频信息自动显示方法、装置、设备及存储介质 | |
CN117812382A (zh) | 视频数据处理方法、装置、设备及存储介质 | |
CN115567757A (zh) | 播放处理方法、装置、设备及存储介质 | |
CN117097904A (zh) | 一种视频编码方法、装置、电子设备及介质 | |
CN113824965A (zh) | 一种视频编码方法、装置及电子设备 | |
CN117956226A (zh) | 云手机的视频解码方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |