CN117768687A - 直播流切换方法和装置 - Google Patents

直播流切换方法和装置 Download PDF

Info

Publication number
CN117768687A
CN117768687A CN202311804621.0A CN202311804621A CN117768687A CN 117768687 A CN117768687 A CN 117768687A CN 202311804621 A CN202311804621 A CN 202311804621A CN 117768687 A CN117768687 A CN 117768687A
Authority
CN
China
Prior art keywords
stream
live
key frame
transcoding
streams
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202311804621.0A
Other languages
English (en)
Inventor
张捷
郑南岭
董浩
廖大达
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Bilibili Technology Co Ltd
Original Assignee
Shanghai Bilibili Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Bilibili Technology Co Ltd filed Critical Shanghai Bilibili Technology Co Ltd
Priority to CN202311804621.0A priority Critical patent/CN117768687A/zh
Publication of CN117768687A publication Critical patent/CN117768687A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本申请实施例提供了一种直播流切换方法和装置,所述方法包括:对主播端推送的源流进行转码得到一个或多个转码流,其中,所述源流与所述一个或多个转码流的GOP结构一一对齐;根据所述源流中的关键帧对应的时间戳确定所述一个或多个转码流中的关键帧对应的时间戳;响应于观众端发送的码流切换请求,从所述源流和所述一个或多个转码流中确定目标直播流,并向所述观众端发送携带所述关键帧对应的时间戳的目标直播流。通过直播服务器在转码时确保各个转码流与源流有完全一致的GOP结构,并确保各个转码流与源流的关键帧对应的时间戳一致,从而在观众端需要切换码流时,能够依据关键帧对应的时间戳做到无缝切换,以使用户观看时能获得无缝连续的观看体验。

Description

直播流切换方法和装置
技术领域
本申请实施例涉及互联网技术领域,尤其涉及一种直播流切换方法、装置、计算机设备及计算机可读存储介质。
背景技术
通常而言,视频码率越高,视频质量和清晰度就越高,但同时也需要更大的带宽来传输这些数据。在直播场景下,为了更好地适应播放端的网络带宽情况,例如,网络好则可以看更高清的内容,网络差则优先保证直播的流畅,通常会对直播流进行实时转码,以输出不同码率的视音频码流,如高码率、中码率、低码率等,每档视音频码流可能对应不同的分辨率、帧率。但是,现有方案中的这些实时的转码流之间是相互独立的,当切换视音频码流时,需要重新加载,用户观看时至少会有明显的卡顿的感觉,观看体验较差。
发明内容
本申请实施例的目的是提供一种直播流切换方法、装置、计算机设备及计算机可读存储介质,用于解决以下问题:现有实时的转码流之间是相互独立的,当切换视音频码流时,需要重新加载,用户观看时至少会有明显的卡顿的感觉,观看体验较差。
本申请实施例的一个方面提供了一种直播流切换方法,应用于直播服务器,所述方法包括:
对主播端推送的源流进行转码得到一个或多个转码流,其中,所述源流与所述一个或多个转码流的GOP结构一一对齐;
根据所述源流中的关键帧对应的时间戳确定所述一个或多个转码流中的关键帧对应的时间戳;
响应于观众端发送的码流切换请求,从所述源流和所述一个或多个转码流中确定目标直播流,并向所述观众端发送携带所述关键帧对应的时间戳的目标直播流。
可选地,所述对主播端推送的源流进行转码得到一个或多个转码流,包括:
对主播端推送的源流进行解码处理以得到所述源流中的关键帧;
根据所述源流中的关键帧进行转码生成所述一个或多个转码流的关键帧。
可选地,所述对主播端推送的源流进行转码得到一个或多个转码流,包括:
在检测到所述直播服务器当前可用的内存资源达到预设阈值的情况下,启动预置的转码程序;
通过所述预置的转码程序对主播端推送的源流进行转码得到一个或多个转码流。
可选地,在所述响应于观众端发送的码流切换请求,从所述源流和所述一个或多个转码流中确定目标直播流的步骤之前,所述方法还包括:
接收观众端发送的直播流获取请求;
根据所述直播流获取请求从所述源流和所述一个或多个转码流中确定第一直播流;
向所述观众端发送携带所述关键帧对应的时间戳的第一直播流。
可选地,所述向所述观众端发送携带所述关键帧对应的时间戳的目标直播流,包括:
从所述码流切换请求中提取得到下一个关键帧对应的时间戳;
根据所述下一个关键帧对应的时间戳,向所述观众端发送携带所述关键帧对应的时间戳的目标直播流。
本申请实施例的一个方面又提供了一种直播流切换方法,应用于观众端,所述方法包括:
在播放直播服务器分发的第一直播流的情况下,响应于用户输入的码流切换操作,确定当前播放的所述第一直播流中的下一个关键帧对应的时间戳,并向所述直播服务器发送码流切换请求;
接收所述直播服务器响应所述码流切换请求返回的携带关键帧对应的时间戳的目标直播流;
根据所述下一个关键帧对应的时间戳和所述目标直播流中关键帧对应的时间戳,将当前播放的所述第一直播流切换为播放所述目标直播流。
可选地,所述根据所述下一个关键帧对应的时间戳和所述目标直播流中关键帧对应的时间戳,将当前播放的所述第一直播流切换为播放所述目标直播流,包括:
根据所述下一个关键帧对应的时间戳和所述目标直播流中关键帧对应的时间戳,从所述目标直播流中确定与所述下一个关键帧对应的目标关键帧的位置;
根据所述目标关键帧的位置,将当前播放的所述第一直播流切换为播放所述目标直播流。
可选地,所述码流切换请求中携带所述下一个关键帧对应的时间戳,以接收所述直播服务器根据所述下一个关键帧对应的时间戳返回的目标直播流。
本申请实施例的一个方面又提供了一种直播流切换装置,应用于直播服务器,所述装置包括:
转码模块,用于对主播端推送的源流进行转码得到一个或多个转码流,其中,所述源流与所述一个或多个转码流的GOP结构一一对齐;
时间戳确定模块,用于根据所述源流中的关键帧对应的时间戳确定所述一个或多个转码流中的关键帧对应的时间戳;
目标直播流发送模块,用于响应于观众端发送的码流切换请求,从所述源流和所述一个或多个转码流中确定目标直播流,并向所述观众端发送携带所述关键帧对应的时间戳的目标直播流。
本申请实施例的一个方面又提供了一种直播流切换装置,应用于观众端,所述装置包括:
码流切换请求发送模块,用于在播放直播服务器分发的第一直播流的情况下,响应于用户输入的码流切换操作,确定当前播放的所述第一直播流中的下一个关键帧对应的时间戳,并向所述直播服务器发送码流切换请求;
目标直播流接收模块,用于接收所述直播服务器响应所述码流切换请求返回的携带关键帧对应的时间戳的目标直播流;
直播流切换模块,用于根据所述下一个关键帧对应的时间戳和所述目标直播流中关键帧对应的时间戳,将当前播放的所述第一直播流切换为播放所述目标直播流。
本申请实施例的一个方面又提供了一种计算机设备,所述计算机设备包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述的直播流切换方法的步骤。
本申请实施例的一个方面又提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行所述计算机程序时实现如上述的直播流切换方法的步骤。
本申请实施例提供的直播流切换方法、装置、设备及计算机可读存储介质,通过直播服务器在转码时确保各个转码流与源流有完全一致的GOP结构,并确保各个转码流与源流的关键帧对应的时间戳一致,从而在观众端需要切换码流时,能够依据关键帧对应的时间戳做到无缝切换;而且,不仅仅是各转码流之间对齐,更同时与主播端推送的源流对齐,从而能够做到直播时能在主播源流与各个转码流之间无缝切换,以使用户观看时能获得无缝连续的观看体验。
附图说明
图1示意性示出了根据本申请实施例的直播流切换方法的应用环境图;
图2示意性示出了根据本申请实施例一的直播流切换方法的流程图;
图3示出了一种源流与转码流的关键帧及关键帧对应的时间戳对齐的示意图;
图4示意性示出了根据本申请实施例一的直播流切换方法的一种网络拓扑结构的示意图;
图5示意性示出了根据本申请实施例二的直播流切换方法的流程图;
图6示意性示出了根据本申请实施例三的直播流切换装置的框图
图7示意性示出了根据本申请实施例四的直播流切换装置的框图;及
图8示意性示出了根据本申请实施例五的适于实现直播流切换方法的计算机设备的硬件架构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,在本申请实施例中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
通常而言,视频码率越高,视频质量和清晰度就越高,但同时也需要更大的带宽来传输这些数据。在直播场景下,为了更好地适应播放端的网络带宽情况,例如,网络好则可以看更高清的内容,网络差则优先保证直播的流畅,通常会对直播流进行实时转码,以输出不同码率的视音频码流,如高码率、中码率、低码率等,每档视音频码流可能对应不同的分辨率、帧率。但是,现有方案中的这些实时的转码流之间是相互独立的,当切换视音频码流时,需要重新加载,用户观看时至少会有明显的卡顿的感觉,观看体验较差。
有鉴于此,本申请旨在提出一种直播流切换方法,通过对主播端推送的源流进行转码得到一个或多个转码流,其中,所述源流与所述一个或多个转码流的GOP结构一一对齐;根据所述源流中的关键帧对应的时间戳确定所述一个或多个转码流中的关键帧对应的时间戳;响应于观众端发送的码流切换请求,从所述源流和所述一个或多个转码流中确定目标直播流,并向所述观众端发送携带所述关键帧对应的时间戳的目标直播流。使得直播服务器在转码时确保各个转码流与源流有完全一致的GOP结构,并确保各个转码流与源流的关键帧对应的时间戳一致,从而在观众端需要切换码流时,能够依据关键帧对应的时间戳做到无缝切换;而且,不仅仅是各转码流之间对齐,更同时与主播端推送的源流对齐,从而能够做到直播时能在主播源流与各个转码流之间无缝切换,以使用户观看时能获得无缝连续的观看体验。
本申请提供了多个实施例进一步介绍直播流切换方案,具体参照下文。
在本申请的描述中,需要理解的是,步骤前的数字标号并不标识执行步骤的前后顺序,仅用于方便描述本申请及区别每一步骤,因此不能理解为对本申请的限制。
以下为本申请的术语解释:
主播:发起直播的用户,观众会从主播的直播间接收到其直播的画面和声音。
流:视音频流,通常同时包含视频画面和音频内容,也可能仅包含视频画面或仅包含音频内容。
直播流:分发到直播间,从而观众能实际看到的流。
源流:主播推送到直播服务端的流。
转码流:以源流作为输入,根据需要生成的不同分辨率、帧率、码率等的输出流,以满足不同的需要。
关键帧:通常指视频中的I帧,即解码时仅需要这一帧的信息即可,不依赖其他帧的信息。
GOP:Group ofpictures图像组,视频领域常见的术语,指的就是两个I帧之间的间隔。
时间戳:每一帧上标记的解码或显示时间,通常用于控制播放速率及音视频同步。
图1示意性示出了根据本申请实施例的环境应用示意图。如图1所示:
计算机设备10000可以通过网络20000连接客户端30000。
计算机设备10000可以提供服务,如进行网络调试,或返回直播流切换结果数据给客户端30000等。
计算机设备10000可以位于诸如单个场所之类的数据中心,或者分布在不同的地理位置(例如,在多个场所)中。计算机设备10000可以经由一个或多个网络20000提供服务。网络20000包括各种网络设备,例如路由器,交换机,多路复用器,集线器,调制解调器,网桥,中继器,防火墙,代理设备和/或类似。网络20000可以包括物理链路,例如同轴电缆链路,双绞线电缆链路,光纤链路,其组合等。网络20000可以包括无线链路,诸如蜂窝链路,卫星链路,Wi-Fi链路等。
计算机设备10000可以由一个或多个计算节点实现。一个或多个计算节点可以包括虚拟化的计算实例。虚拟化的计算实例可以包括虚拟机,例如计算机系统,操作系统,服务器等的仿真。计算节点可以基于虚拟映像和/或定义用于仿真的特定软件(例如,操作系统,专用应用程序,服务器)的其他数据,由计算节点加载虚拟机。随着对不同类型的处理服务的需求改变,可以在一个或多个计算节点上加载和/或终止不同的虚拟机。可以实现管理程序来管理同一计算节点上不同虚拟机的使用。
客户端30000可以被配置为访问计算机设备10000的内容和服务。客户端30000可以包括任何类型的电子设备,诸如移动设备、平板设备、膝上型计算机、工作站、虚拟现实设备,游戏设备、机顶盒、数字流媒体设备、车辆终端、智能电视、机顶盒等。
客户端30000可以将直播流切换结果数据等输出(例如,显示、渲染、呈现)给用户。
以下将通过多个实施例介绍网络调试方案。该方案可以通过计算机设备10000实施。
实施例一
图2示意性示出了根据本申请实施例一的直播流切换方法的流程图。应用于直播服务器,包括步骤S202-S206,其中,
步骤S202,对主播端推送的源流进行转码得到一个或多个转码流,其中,所述源流与所述一个或多个转码流的GOP结构一一对齐;
具体的,主播端在开播之后,建立主播端与直播服务器之间的通信连接,主播端通过拍摄装置和/或音频采集装置采集得到主播的音视频数据,然后将这些音视频数据作为源流推送到直播服务器。直播服务器在接收到主播端推送的源流之后,对该源流进行转码得到一个或多个转码流,其中,每一个转码流对应不同的画质清晰度,以供用户选择不同的清晰度进行观看,例如,画质清晰度可以包含蓝光、超清和高清等。在本实施例中,为了避免由于不同的转码流之间是相互独立的,导致当切换视音频码流时发生直播视频画面卡顿的问题,在直播服务器中对源流进行转码时,将源流和转码得到的一个或多个转码流进行视频对齐,使得源流与一个或多个转码流的GOP结构一一对齐,也即源流与一个或多个转码流有完全一致的GOP结构,能够做到无缝切换。
在本申请的一种优选实施例中,所述步骤S202可以包括如下步骤:
对主播端推送的源流进行解码处理以得到所述源流中的关键帧;根据所述源流中的关键帧进行转码生成所述一个或多个转码流的关键帧。
在本实施例中,在直播服务器中对源流进行转码时,为了使得源流与一个或多个转码流的GOP结构一一对齐,通过对主播端推送的源流进行解码处理以得到源流中的关键帧,然后根据源流中的关键帧进行转码生成一个或多个转码流的关键帧。从而源流与一个或多个转码流有完全一致的GOP结构,不仅仅是各个转码流之间GOP结构对齐,更同时与主播端推送的源流的GOP结构对齐,能够做到无缝切换。
步骤S204,根据所述源流中的关键帧对应的时间戳确定所述一个或多个转码流中的关键帧对应的时间戳;
在本实施例中,在对源流进行转码之后,进一步根据源流中的关键帧对应的时间戳确定一个或多个转码流中的关键帧对应的时间戳,使得各个转码流与源流中每一个关键帧对应的时间戳保持一致,在后续需要切换码流时,可以按照关键帧对应的时间戳实现无缝切换,以避免发生直播视频画面卡顿。如图3示出了一种源流与转码流的关键帧及关键帧对应的时间戳对齐的示意图,其中,源流与转码流之间的关键帧一一对齐,源流与转码流之间关键帧对应的时间戳也一一对齐。
步骤S206,响应于观众端发送的码流切换请求,从所述源流和所述一个或多个转码流中确定目标直播流,并向所述观众端发送携带所述关键帧对应的时间戳的目标直播流。
具体的,观众端在观看直播时,从直播服务器中拉取直播数据流,若是此时需要切换直播视频的清晰度,则可以通过观众客户端向直播服务器发送码流切换请求。直播服务器在接收到观众端发送的码流切换请求之后,通过对该码流切换请求进行响应,从源流和一个或多个转码流中确定目标直播流,并向观众端发送携带关键帧对应的时间戳的目标直播流。具体的,通过转码得到一个或多个转码流支持常用的各种多媒体协议,包括rtmp-flv、http-flv、HLS、DASH等,直播服务器可以按照数据传输的需要,给需要传输的目标直播流封装多媒体协议,并封装数据的同时携带封装关键帧对应的时间戳,从而,观众端在接收到目标直播流时,可以按照关键帧对应的时间戳确定切换直播画面时需要播放的关键帧的位置,以从该关键帧的位置播放视频,达到直播画面无缝切换的效果。
以下提供几个可选地实施例,以进行优化所述直播流切换方法,具体如下:
在本申请的一种优选实施例中,所述步骤S202可以包括如下步骤:
在检测到所述直播服务器当前可用的内存资源达到预设阈值的情况下,启动预置的转码程序;通过所述预置的转码程序对主播端推送的源流进行转码得到一个或多个转码流。
其中,预置的转码程序中集成了实现转码流与源流对齐的转码策略,具体包括根据源流的关键帧转码生成转码流的关键帧,以及转码之后根据源流中关键帧对应的时间戳设置转码流中关键帧对应的时间戳。
在本实施例中,为了在直播服务器当前可用的内存资源不足时减少转码过程对资源的消耗,可以设置一预设阈值,该预设阈值指内存大小的临界值,如60%等。直播服务器在接收到主播端推流的源流之后,通过获取直播服务器当前可用的内存资源大小,然后将播服务器当前可用的内存资源与预设阈值进行比对,在检测到直播服务器当前可用的内存资源达到预设阈值的情况下,启动预置的转码程序,通过预置的转码程序对主播端推送的源流进行转码得到一个或多个转码流,以及根据源流中的关键帧对应的时间戳确定一个或多个转码流中的关键帧对应的时间戳。其中,启动预置的转码程序时,可以为每一个转码流启动一个预置的转码程序,也可以一个预置的转码程序同时转码并输出多路转码流,每一个预置的转码程序都统一使用上述转码策略,从而这些转码流之间以及与源流之间的GOP结构都是对齐的,关键帧对应的时间戳也是对齐的。
在本申请的一种优选实施例中,在所述步骤S206之前,所述方法还包括:
接收观众端发送的直播流获取请求;根据所述直播流获取请求从所述源流和所述一个或多个转码流中确定第一直播流;向所述观众端发送携带所述关键帧对应的时间戳的第一直播流。
在本实施例中,观众端在刚进入直播间观看直播时,可以向直播服务器发送直播流获取请求,以从直播服务器中拉流观看直播,其中,直播流获取请求中可以包含需要拉流的码流标识。直播服务器在接收到观众端发送的直播流获取请求之后,可以根据该直播流获取请求中携带的码流标识从源流和一个或多个转码流中确定第一直播流,然后向观众端发送携带关键帧对应的时间戳的第一直播流,从而观众端可以播放直播服务器发送的第一直播流。
在本申请的一种优选实施例中,所述步骤S206可以包括如下步骤:
从所述码流切换请求中提取得到下一个关键帧对应的时间戳;根据所述下一个关键帧对应的时间戳,向所述观众端发送携带所述关键帧对应的时间戳的目标直播流。
在本实施例中,观众端在需要切换码流时,可以确定当前播放的第一直播流中下一个关键帧对应的时间戳,向直播服务器发送携带下一个关键帧对应的时间戳的码流切换请求。直播服务器在对码流切换请求进行响应时,通过从码流切换请求中提取得到下一个关键帧对应的时间戳,然后根据该下一个关键帧对应的时间戳,向观众端发送携带关键帧对应的时间戳的目标直播流。
作为一种示例,如图4示出了一种直播流切换方法的网络拓扑结构的示意图,图4中,包含主播端、直播服务器、直播转码程序和观众端,直播流切换过程包括:通过主播端向直播服务器推送源流,然后直播服务器启动直播转码程序,通过直播转码程序转码得到转码流,观众端在观看直播时,可以拉取源流或者转码流进行观看。
实施例二
图5示意性示出了根据本申请实施例二的直播流切换方法的流程图。应用于观众端,所述方法包括步骤S502-S506,其中,
步骤S502,在播放直播服务器分发的第一直播流的情况下,响应于用户输入的码流切换操作,确定当前播放的所述第一直播流中的下一个关键帧对应的时间戳,并向所述直播服务器发送码流切换请求;
具体的,观众端进入直播间之后,可以播放直播服务器分发的第一直播流以观看直播,其中,第一直播流可以是客户端默认码率大小的数据流,也可以是用户进入直播间之后自主选择的码率大小的数据流,本申请实施例对此不作具体限制。
在本实施例中,在播放直播服务器分发的第一直播流的情况下,若是用户此时需要切换直播视频的清晰度,则可以在观众端上进行码率切换操作,以选择需要切换的目标直播流。观众端在接收到用户输入的码流切换操作之后,可以确定当前播放的第一直播流中的下一个关键帧对应的时间戳,并向直播服务器发送码流切换请求。其中,码流切换请求中可以携带下一个关键帧对应的时间戳,从而直播服务器在返回目标直播流时,可以根据下一个关键帧对应的时间戳向观众端返回目标直播流,以避免需要返回完整的直播流,造成额外的资源浪费。
步骤S504,接收所述直播服务器响应所述码流切换请求返回的携带关键帧对应的时间戳的目标直播流;
在本实施例中,直播服务器在接收到观众端发送的码流切换请求之后,可以根据该码流切换请求向观众端返回目标直播流,其中,目标直播流中可以携带关键帧对应的时间戳。
步骤S506,根据所述下一个关键帧对应的时间戳和所述目标直播流中关键帧对应的时间戳,将当前播放的所述第一直播流切换为播放所述目标直播流。
在本实施例中,观众端在接收到目标直播流之后,可以根据下一个关键帧对应的时间戳和目标直播流中关键帧对应的时间戳,将当前播放的第一直播流切换为播放目标直播流,从而实现直播视频的无缝切换,避免切换过程的视频画面卡顿。
以下提供几个可选地实施例,以进行优化所述直播流切换方法,具体如下:
在本申请的一种优选实施例中,所述步骤S506可以包括如下步骤:
根据所述下一个关键帧对应的时间戳和所述目标直播流中关键帧对应的时间戳,从所述目标直播流中确定与所述下一个关键帧对应的目标关键帧的位置;根据所述目标关键帧的位置,将当前播放的所述第一直播流切换为播放所述目标直播流。
在本实施例中,观众端在切换当前播放的直播视频时,通过根据确定当前播放的第一直播流中的下一个关键帧对应的时间戳和目标直播流中关键帧对应的时间戳,从目标直播流中确定与下一个关键帧对应的目标关键帧的位置,然后根据目标关键帧的位置将当前播放的第一直播流切换为播放目标直播流,从而实现直播视频的无缝切换,避免切换过程的直播视频画面卡顿。
实施例三
图6示意性示出了根据本申请实施例三的直播流切换装置的框图,该直播流切换装置可以被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本申请实施例。本申请实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,以下描述将具体介绍本申请实施例中各程序模块的功能。
应用于直播服务器,如图6所示,该直播流切换装置600可以包括如下模块:
转码模块610,用于对主播端推送的源流进行转码得到一个或多个转码流,其中,所述源流与所述一个或多个转码流的GOP结构一一对齐;
时间戳确定模块620,用于根据所述源流中的关键帧对应的时间戳确定所述一个或多个转码流中的关键帧对应的时间戳;
目标直播流发送模块630,用于响应于观众端发送的码流切换请求,从所述源流和所述一个或多个转码流中确定目标直播流,并向所述观众端发送携带所述关键帧对应的时间戳的目标直播流。
在本申请的一种优选实施例中,所述转码模块610,包括:
解码子模块,用于对主播端推送的源流进行解码处理以得到所述源流中的关键帧;
转码子模块,用于根据所述源流中的关键帧进行转码生成所述一个或多个转码流的关键帧。
在本申请的一种优选实施例中,所述转码模块610,包括:
转码程序启动子模块,用于在检测到所述直播服务器当前可用的内存资源达到预设阈值的情况下,启动预置的转码程序;
转码子模块,用于通过所述预置的转码程序对主播端推送的源流进行转码得到一个或多个转码流。
在本申请的一种优选实施例中,所述装置还包括:
直播流获取请求接收模块,用于接收观众端发送的直播流获取请求;
第一直播流确定模块,用于根据所述直播流获取请求从所述源流和所述一个或多个转码流中确定第一直播流;
第一直播流发送模块,用于向所述观众端发送携带所述关键帧对应的时间戳的第一直播流。
在本申请的一种优选实施例中,所述目标直播流发送模块630,包括:
时间戳提取子模块,用于从所述码流切换请求中提取得到下一个关键帧对应的时间戳;
目标直播流发送子模块,用于根据所述下一个关键帧对应的时间戳,向所述观众端发送携带所述关键帧对应的时间戳的目标直播流。
实施例四
图7示意性示出了根据本申请实施例四的直播流切换装置的框图,该直播流切换装置可以被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本申请实施例。本申请实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,以下描述将具体介绍本申请实施例中各程序模块的功能。
应用于观众端,如图7所示,该直播流切换装置700可以包括如下模块:
码流切换请求发送模块710,用于在播放直播服务器分发的第一直播流的情况下,响应于用户输入的码流切换操作,确定当前播放的所述第一直播流中的下一个关键帧对应的时间戳,并向所述直播服务器发送码流切换请求;
目标直播流接收模块720,用于接收所述直播服务器响应所述码流切换请求返回的携带关键帧对应的时间戳的目标直播流;
直播流切换模块730,用于根据所述下一个关键帧对应的时间戳和所述目标直播流中关键帧对应的时间戳,将当前播放的所述第一直播流切换为播放所述目标直播流。
在本申请的一种优选实施例中,所述直播流切换模块730,包括:
目标关键帧的位置确定子模块,用于根据所述下一个关键帧对应的时间戳和所述目标直播流中关键帧对应的时间戳,从所述目标直播流中确定与所述下一个关键帧对应的目标关键帧的位置;
直播流切换子模块,用于根据所述目标关键帧的位置,将当前播放的所述第一直播流切换为播放所述目标直播流。
在本申请的一种优选实施例中,所述码流切换请求中携带所述下一个关键帧对应的时间戳。
实施例五
图8示意性示出了根据本申请实施例五的适于实现直播流切换方法的计算机设备10000的硬件架构示意图。本实施例中,计算机设备10000是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。例如,可以是智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括FEN独立的服务器,或者多个服务器所组成的服务器集群)等。如图8所示,计算机设备10000至少包括但不限于:可通过系统总线相互通信链接存储器10010、处理器10020、网络接口10030。其中:
存储器10010至少包括一种类型的计算机可读存储介质,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器10010可以是计算机设备10000的内部存储模块,例如该计算机设备10000的硬盘或内存。在另一些实施例中,存储器10010也可以是计算机设备10000的外部存储设备,例如该计算机设备10000上配备的插接式硬盘,智能存储卡(Smart Media Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,存储器10010还可以既包括计算机设备10000的内部存储模块也包括其外部存储设备。本实施例中,存储器10010通常用于存储安装于计算机设备10000的操作系统和各类应用软件,例如直播流切换方法的程序代码等。此外,存储器10010还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器10020在一些实施例中可以是中央处理器(Central Processing Unit,简称为CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器10020通常用于控制计算机设备10000的总体操作,例如执行与计算机设备10000进行数据交互或者通信相关的控制和处理等。本实施例中,处理器10020用于运行存储器10010中存储的程序代码或者处理数据。
网络接口10030可包括无线网络接口或有线网络接口,该网络接口10030通常用于在计算机设备10000与其他计算机设备之间建立通信链接。例如,网络接口10030用于通过网络将计算机设备10000与外部终端相连,在计算机设备10000与外部终端之间的建立数据传输通道和通信链接等。网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(Global System of Mobile communication,简称为GSM)、宽带码分多址(Wideband Code Division Multiple Access,简称为WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。
需要指出的是,图8仅示出了具有部件10010-10030的计算机设备,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。
在本实施例中,存储于存储器10010中的直播流切换方法还可以被分割为一个或者多个程序模块,并由一个或多个处理器(本实施例为处理器10020)所执行,以完成本申请实施例。
实施例六
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质其上存储有计算机程序,计算机程序被处理器执行时实现实施例中的直播流切换方法的步骤。
本实施例中,计算机可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,计算机可读存储介质可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,计算机可读存储介质也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(Smart Media Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,计算机可读存储介质还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,计算机可读存储介质通常用于存储安装于计算机设备的操作系统和各类应用软件,例如实施例中直播流切换方法的程序代码等。此外,计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的各类数据。
显然,本领域的技术人员应该明白,上述的本申请实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请实施例不限制于任何特定的硬件和软件结合。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

Claims (12)

1.一种直播流切换方法,其特征在于,应用于直播服务器,所述方法包括:
对主播端推送的源流进行转码得到一个或多个转码流,其中,所述源流与所述一个或多个转码流的GOP结构一一对齐;
根据所述源流中的关键帧对应的时间戳确定所述一个或多个转码流中的关键帧对应的时间戳;
响应于观众端发送的码流切换请求,从所述源流和所述一个或多个转码流中确定目标直播流,并向所述观众端发送携带所述关键帧对应的时间戳的目标直播流。
2.根据权利要求1所述的直播流切换方法,其特征在于,所述对主播端推送的源流进行转码得到一个或多个转码流,包括:
对主播端推送的源流进行解码处理以得到所述源流中的关键帧;
根据所述源流中的关键帧进行转码生成所述一个或多个转码流的关键帧。
3.根据权利要求1所述的直播流切换方法,其特征在于,所述对主播端推送的源流进行转码得到一个或多个转码流,包括:
在检测到所述直播服务器当前可用的内存资源达到预设阈值的情况下,启动预置的转码程序;
通过所述预置的转码程序对主播端推送的源流进行转码得到一个或多个转码流。
4.根据权利要求1所述的直播流切换方法,其特征在于,在所述响应于观众端发送的码流切换请求,从所述源流和所述一个或多个转码流中确定目标直播流的步骤之前,所述方法还包括:
接收观众端发送的直播流获取请求;
根据所述直播流获取请求从所述源流和所述一个或多个转码流中确定第一直播流;
向所述观众端发送携带所述关键帧对应的时间戳的第一直播流。
5.根据权利要求1所述的直播流切换方法,其特征在于,所述向所述观众端发送携带所述关键帧对应的时间戳的目标直播流,包括:
从所述码流切换请求中提取得到下一个关键帧对应的时间戳;
根据所述下一个关键帧对应的时间戳,向所述观众端发送携带所述关键帧对应的时间戳的目标直播流。
6.一种直播流切换方法,其特征在于,应用于观众端,所述方法包括:
在播放直播服务器分发的第一直播流的情况下,响应于用户输入的码流切换操作,确定当前播放的所述第一直播流中的下一个关键帧对应的时间戳,并向所述直播服务器发送码流切换请求;
接收所述直播服务器响应所述码流切换请求返回的携带关键帧对应的时间戳的目标直播流;
根据所述下一个关键帧对应的时间戳和所述目标直播流中关键帧对应的时间戳,将当前播放的所述第一直播流切换为播放所述目标直播流。
7.根据权利要求6所述的直播流切换方法,其特征在于,所述根据所述下一个关键帧对应的时间戳和所述目标直播流中关键帧对应的时间戳,将当前播放的所述第一直播流切换为播放所述目标直播流,包括:
根据所述下一个关键帧对应的时间戳和所述目标直播流中关键帧对应的时间戳,从所述目标直播流中确定与所述下一个关键帧对应的目标关键帧的位置;
根据所述目标关键帧的位置,将当前播放的所述第一直播流切换为播放所述目标直播流。
8.根据权利要求6所述的直播流切换方法,其特征在于,所述码流切换请求中携带所述下一个关键帧对应的时间戳。
9.一种直播流切换装置,其特征在于,应用于直播服务器,所述装置包括:
转码模块,用于对主播端推送的源流进行转码得到一个或多个转码流,其中,所述源流与所述一个或多个转码流的GOP结构一一对齐;
时间戳确定模块,用于根据所述源流中的关键帧对应的时间戳确定所述一个或多个转码流中的关键帧对应的时间戳;
目标直播流发送模块,用于响应于观众端发送的码流切换请求,从所述源流和所述一个或多个转码流中确定目标直播流,并向所述观众端发送携带所述关键帧对应的时间戳的目标直播流。
10.一种直播流切换装置,其特征在于,应用于观众端,所述装置包括:
码流切换请求发送模块,用于在播放直播服务器分发的第一直播流的情况下,响应于用户输入的码流切换操作,确定当前播放的所述第一直播流中的下一个关键帧对应的时间戳,并向所述直播服务器发送码流切换请求;
目标直播流接收模块,用于接收所述直播服务器响应所述码流切换请求返回的携带关键帧对应的时间戳的目标直播流;
直播流切换模块,用于根据所述下一个关键帧对应的时间戳和所述目标直播流中关键帧对应的时间戳,将当前播放的所述第一直播流切换为播放所述目标直播流。
11.一种计算机设备,所述计算机设备包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时用于实现权利要求1至5或6至8中任意一项所述的直播流切换方法的步骤。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行权利要求1至5或6至8中任意一项所述的直播流切换方法的步骤。
CN202311804621.0A 2023-12-25 2023-12-25 直播流切换方法和装置 Pending CN117768687A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311804621.0A CN117768687A (zh) 2023-12-25 2023-12-25 直播流切换方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311804621.0A CN117768687A (zh) 2023-12-25 2023-12-25 直播流切换方法和装置

Publications (1)

Publication Number Publication Date
CN117768687A true CN117768687A (zh) 2024-03-26

Family

ID=90323507

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311804621.0A Pending CN117768687A (zh) 2023-12-25 2023-12-25 直播流切换方法和装置

Country Status (1)

Country Link
CN (1) CN117768687A (zh)

Similar Documents

Publication Publication Date Title
EP3562163B1 (en) Audio-video synthesis method and system
CN107483460B (zh) 一种多平台并行导播推流的方法及系统
CN107690073B (zh) 一种视频直播方法及视频直播服务器
CN107634930B (zh) 一种媒体数据的获取方法和装置
CN112752109B (zh) 视频播放控制方法和系统
CN112637661B (zh) 视频流的切换方法及装置、计算机存储介质、电子设备
CN113141522B (zh) 资源传输方法、装置、计算机设备及存储介质
US20230045876A1 (en) Video Playing Method, Apparatus, and System, and Computer Storage Medium
CN111193936B (zh) 视频流传输方法、装置、电子设备及计算机可读存储介质
US9118947B2 (en) Multi-vision virtualization system and method
US11825136B2 (en) Video transcoding method and apparatus
CN114245153A (zh) 切片方法、装置、设备及可读存储介质
CN111107387B (zh) 视频转码方法、装置及计算机存储介质
CN112243136B (zh) 内容播放方法、视频存储方法和设备
CN108632681B (zh) 播放媒体流的方法、服务器及终端
CN117768687A (zh) 直播流切换方法和装置
CN113395531B (zh) 播放切换方法、装置、电子设备及计算机可读存储介质
CN112565799B (zh) 视频数据处理方法和装置
US11005908B1 (en) Supporting high efficiency video coding with HTTP live streaming
CN115022725A (zh) 一种视频播放方法和装置
CN113612728B (zh) 流媒体播放方法、传输设备和系统
CN115278288B (zh) 一种显示处理方法、装置、计算机设备及可读存储介质
WO2024082561A1 (zh) 视频处理方法、装置、计算机、可读存储介质及程序产品
CN117793389A (zh) 直播卡顿原因确定方法和装置
CN118354132A (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