CN116708860A - 直播系统 - Google Patents
直播系统 Download PDFInfo
- Publication number
- CN116708860A CN116708860A CN202310745233.3A CN202310745233A CN116708860A CN 116708860 A CN116708860 A CN 116708860A CN 202310745233 A CN202310745233 A CN 202310745233A CN 116708860 A CN116708860 A CN 116708860A
- Authority
- CN
- China
- Prior art keywords
- stream
- client
- live
- live stream
- video
- 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
Links
- 230000001360 synchronised effect Effects 0.000 claims abstract description 77
- 230000000694 effects Effects 0.000 claims abstract description 31
- 230000009466 transformation Effects 0.000 claims abstract description 13
- 230000001960 triggered effect Effects 0.000 claims abstract description 8
- 238000009877 rendering Methods 0.000 claims description 17
- 238000012545 processing Methods 0.000 claims description 15
- 241000209140 Triticum Species 0.000 claims description 13
- 235000021307 Triticum Nutrition 0.000 claims description 13
- 230000006835 compression Effects 0.000 claims description 8
- 238000007906 compression Methods 0.000 claims description 8
- 238000001514 detection method Methods 0.000 claims description 7
- 238000000034 method Methods 0.000 abstract description 27
- 230000008569 process Effects 0.000 abstract description 23
- 238000010586 diagram Methods 0.000 description 10
- 238000006243 chemical reaction Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 230000003796 beauty Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000001131 transforming effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 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/236—Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
- H04N21/2368—Multiplexing of audio and video streams
-
- 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/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/4302—Content synchronisation processes, e.g. decoder synchronisation
- H04N21/4307—Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen
Abstract
本发明实施例提供一种直播系统,该系统包括:表现为浏览器的第一客户端和表现为移动终端上安装的应用程序的第二客户端。第一客户端可以采集目标主播对应的原始直播流。第二客户端可以响应于目标主播在第二客户端上触发的播放效果变换操作,先对原始直播流进行处理,以得到变换后直播流。然后,根据变换后直播流中的视频流对应的时间戳,将变换后直播流中的音频流与视频流进行同步,并播放同步后直播流。可见,上述同步过程中,视频可以在不依赖音频的情况下自主播放,从而改善依赖音频流的播放时间确定视频流的播放时间而造成的视频不好控制的问题。因此,通过该直播系统,能够降低第一客户端和第二客户端之间播放直播流的时延,提高主播体验。
Description
技术领域
本发明涉及网络直播技术领域,尤其涉及一种直播系统。
背景技术
随着网络直播行业的快速发展,主播和观众之间可以通过网络进行在线互动,比如在线连麦聊天、在线主播展示才艺等等。在直播过程中,主播一般习惯于在个人电脑中的浏览器中进行直播,但由于浏览器所支持的功能有限,无法实现美颜或者变声等功能,因此,主播在直播的时候往往要借助支持美颜和/或变声功能的移动终端比如智能手机来吸引更多的观众。
然而,在上述主播同时使用浏览器和移动终端进行直播的过程中,由于受到网络传输性能的限制,会出现主播已经在浏览器完成触发操作,但在移动终端却不能实时播放触发结果的情况,从而影响到直播质量和用户体验。因此,如何有效地降低浏览器与移动终端之间播放直播流的时延,以提高主播体验成为本领域技术人员亟待解决的技术问题。
发明内容
有鉴于此,本发明实施例提供一种直播系统,用以降低浏览器与移动终端之间播放直播流的时延,提高主播体验。
第一方面,本发明实施例提供一种直播系统,包括:表现为浏览器的第一客户端和表现为移动终端上安装的应用程序的第二客户端;
所述第一客户端,用于采集目标主播对应的原始直播流;
所述第二客户端,用于响应于所述目标主播在所述第二客户端上触发的播放效果变换操作,对所述原始直播流进行处理,以得到变换后直播流;根据所述变换后直播流中的视频流对应的时间戳,将所述变换后直播流中的音频流与所述视频流进行同步;播放同步后直播流。
本发明实施例提供的直播系统,包括:第一客户端和第二客户端。第一客户端可以采集目标主播对应的原始直播流。第二客户端可以响应于目标主播在第二客户端上触发的播放效果变换操作,先对原始直播流进行处理,以得到变换后直播流。然后,第二客户端可以根据变换后直播流中的视频流对应的时间戳,将变换后直播流中的音频流与视频流进行同步。最终,第二客户端播放同步后直播流。
可见,第二客户端会对经过播放效果变换后的直播流进行同步,并且第二客户端采用的是视频为主,对音频进行处理的同步方式。即视频可以在不依赖音频的情况下自主控制播放,从而改善需要依赖音频流的播放时间确定视频流的播放时间而造成的对视频不好控制的问题。因此,通过该直播系统,能够使得第一客户端采集完目标主播的直播流后,就实时地在第二客户端上显示完整的且经过播放效果处理的视频画面,也即是能够降低第一客户端和第二客户端之间播放直播流的时延,从而提高目标主播的体验。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种直播系统的结构示意图;
图2为本发明实施例提供的一种直播场景的结构示意图;
图3为本发明实施例提供的另一种直播系统的结构示意图;
图4为本发明实施例提供的一种第三客户端的结构示意图;
图5为本发明实施例提供的另一种直播场景的结构示意图;
图6为本发明实施例提供的又一种直播系统的结构示意图;
图7为本发明实施例提供的又一种直播场景的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种,但是不排除包含至少一种的情况。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于识别”。类似地,取决于语境,短语“如果确定”或“如果识别(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当识别(陈述的条件或事件)时”或“响应于识别(陈述的条件或事件)”。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。
下面结合附图对本发明的一些实施方式作详细说明。在各实施例之间不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。另外,下述各方法实施例中的步骤时序仅为一种举例,而非严格限定。
正如背景技术中所述的,主播可以同时使用个人电脑中的浏览器和移动终端进行直播,一种适用于主播的直播系统可以如图1所示。图1为本发明实施例提供的一种直播系统的结构示意图,该直播系统包括:第一客户端和第二客户端。
在对本发明实施例提供的直播系统中各部分的具体工作过程进行详细描述之前,还可以先对该直播系统的整体工作过程进行描述:
第一客户端可以先采集目标主播对应的原始直播流,并将原始直播流发送至第二客户端。其中,原始直播流包括目标主播对应的视频流和目标主播对应的音频流。然后,第二客户端可以响应于目标主播在第二客户端上触发的播放效果变换操作,对该原始直播流进行处理,以得到变换后直播流。接着,第二客户端可以根据此变换后直播流中的视频流对应的时间戳,将变换后直播流中的音频流与变换后直播流中的视频流进行同步。最终,第二客户端播放同步后直播流。
其中,第一客户端可以表现为目标主播电脑中的浏览器,即目标主播可以通过直播网站提供的直播页面进行直播。第二客户端可以表现为移动终端上安装的应用程序,即目标主播可以通过智能手机上安装的直播应用程序进行直播。并且正如背景技术中提及的,主播虽然对第一客户端的操作更熟练,但第一客户端提供的直播页面中不具有直播流的播放效果变换功能。相对的,主播操作不熟练的第二客户端具有播放效果变换功能。
其中,对于原始直播流的采集,可以通过第一客户端,调用摄像头实时采集包含有目标主播动作的视频流,并调用麦克风实时采集目标主播的音频流。
可选地,播放效果可以包括视频播放效果和/或音频播放效果。视频播放效果比如可以是美颜、将目标主播变换为具有卡通效果的头像等等,音频播放效果比如可以是背景技术中的变声等等。
举例来说,若目标主播在第二客户端上触发视频播放效果变换操作,比如美颜操作,则第二客户端可以响应于目标主播触发的美颜操作,对原始直播流中的视频流进行美颜处理,以得到变换后直播流,即得到包含目标主播美颜效果的直播流。若目标主播在第二客户端上触发音频播放效果变换操作,比如变声操作,则第二客户端可以响应于目标主播的变声操作,对原始视频流中的音频流进行变声处理,以得到变换后直播流,即得到包含目标主播变声效果的音频流。
本实施例中,直播系统包括:第一客户端和第二客户端。第一客户端可以采集目标主播对应的原始直播流。第二客户端可以响应于目标主播在第二客户端上触发的播放效果变换操作,先对原始直播流进行处理,以得到变换后直播流。然后,第二客户端可以根据变换后直播流中的视频流对应的时间戳,将变换后直播流中的音频流与视频流进行同步。最终,第二客户端播放同步后直播流。
可见,第二客户端会对经过播放效果变换后的直播流进行同步,并且第二客户端采用的是视频为主,对音频进行处理的同步方式。即视频可以在不依赖音频的情况下自主控制播放,从而改善需要依赖音频流的播放时间确定视频流的播放时间而造成的对视频不好控制的问题。因此,通过该直播系统,能够使得第一客户端采集完目标主播的直播流后,就实时地在第二客户端上显示完整的且经过播放效果处理的视频画面,也即是能够降低第一客户端和第二客户端之间播放直播流的时延,从而提高目标主播的体验。
为了便于理解,在此对上述实例提及的直播流进行统一解释说明,原始直播流是指第一客户端采集的目标主播对应的直播流,变换后直播流是指第二客户端对原始直播流进行播放效果变换后得到的直播流,同步后直播流是指对变换后直播流进行音视频同步后得到的直播流。
在图1所示实施例中,第二客户端可以根据变换后直播流中的视频流对应的时间戳,将变换后直播流中的音频流与变换后直播流中的视频流进行同步,并播放同步后直播流。具体地,第二客户端可以将变换后直播流中的视频流对应的时间戳作为参考标准,对变换后直播流中的音频流的播放速率进行调整。
对于播放速率的调整,可选地,一种情况是,若变换后直播流中的视频流对应的时间戳早于变换后直播流中的音频流对应的时间戳,则第二客户端可以提高变换后直播流中的音频流的播放速率,直至音频流追上视频流。另一种情况是,若变换后直播流中的视频流对应的时间戳晚于变换后直播流中的音频流对应的时间戳,则第二客户端可以降低变换后直播流中的音频流的播放速率,直至视频流追上音频流。
可选地,第二客户端播放同步后直播流的过程可以包括第二客户端对同步后直播流进行解码和渲染。而在实际中会存在解码结果无法及时渲染而被存储在内存中的情况,从而导致内存资源占用明显。因此,为了保证内存资源的使用率,表现为移动终端上安装的应用程序的第二客户端的同一线程可以同时执行视频解码和视频渲染这两个任务。即该线程解码一个视频帧就渲染一个视频帧,而不是盲目的对同步后直播流都进行解码之后再渲染。
具体地,第二客户端可以借助线程先对同步后直播流中的第一视频帧进行解码并渲染。然后,在第一视频帧渲染完成后借助同一线程再对第二视频帧进行解码并渲染。其中,第一视频帧和第二视频帧为同步后直播流中相邻的视频帧。依次类推,直至同步后直播流中的全部视频帧渲染完毕停止解码。可见,通过此种方法,解码一个视频帧就渲染一个视频帧,并且在这个视频帧渲染完成后,才会解码相邻视频帧,即该视频帧的解码是依靠上一个视频帧的视频渲染进行的,不会盲目解码出多个视频帧,从而能够减少占用内存资源。
为了便于理解,可以结合如下场景对图1所示实施例提供的直播系统的具体实现过程进行示例性说明。
在目标主播同时使用第一客户端和第二客户端进行直播的场景中,如图2所示,直播系统可以包括:表现为浏览器的第一客户端和表现为移动终端上安装的应用程序的第二客户端。其中,第一客户端具体可以是目标主播电脑中的浏览器,第二客户端具体可以是目标主播智能手机上安装的直播应用程序。
浏览器可以采集目标主播对应的原始直播流,并将原始直播流发送至直播应用程序,原始直播流中包括视频流和音频流。当目标主播想要进行美颜时,目标主播可以在智能手机上安装的直播应用程序中选择想要实现的美颜效果。此时,直播应用程序可以响应于目标主播触发的美颜操作,对原始直播流进行美颜处理,以得到变换后直播流。
之后,直播应用程序可以将变换后直播流中的视频流对应的时间戳作为参考标准,对变换后直播流中的音频流的播放速率进行调整,以使变换后直播流中的音频流与变换后直播流中的视频流同步。直播应用程序再播放同步后直播流。其中,变换后直播流中的音频流的具体调整过程可以参见上述各实施例中的描述,在此不再赘述。
并且为了保证内存资源的使用率,直播应用程序的同一线程可以同时执行对同步后直播流进行视频解码和视频渲染这两个任务,即解码一个视频帧就渲染一个视频帧,不会盲目解码出多个视频帧。其中,解码和渲染的具体过程可以参见上述各实施例中的描述,在此不再赘述。
可见,由于上述直播应用程序在音视频同步时采用的是视频为主的同步方式,也即是视频可以在不依赖音频的情况下自主控制播放,因此,通过该直播系统,使得主播能够在第一客户端采集完直播流后,实时地在第二客户端上显示完整的且经过美颜处理的视频画面,提高目标主播的体验。
在实际直播场景中,可选地,主播还会与观众进行互动,则直播系统中不仅包括主播使用的第一客户端和第二客户端,还可以包括流媒体服务器和观众使用的表现为浏览器的第三客户端。
则图3为本发明实施例提供的另一种直播系统的结构示意图。该直播系统中可以包括:第一客户端、第二客户端、流媒体服务器以及第三客户端。其中,第三客户端可以表现为观众电脑中的浏览器,即观众通过直播网站提供的直播页面观看直播。
图1所示实施例中已经描述第二客户端可以对第一客户端采集的原始直播流进行处理,先得到变换直播流,再对变换后直播流进行同步,以得到同步后直播流。之后,第二客户端可以将生成的同步后直播流发送至流媒体服务器,以由流媒体服务器再将同步后直播流发送至第三客户端。
可选地,第三客户端即观众电脑中的浏览器可以为单核浏览器或者多核浏览器。但考虑到浏览器的安全,因此,第三客户端接收到的流媒体服务器发送的同步后直播流通常是使用浏览器的单核进行解码和渲染。但当直播流的数据量过多时,受到第三客户端的单核性能的限制,第三客户端解码和渲染速度会大大降低,从而导致主播和观众之间显示的画面可能不同步。因此,第三客户端可以先对接收到的同步后直播流进行检测、解复用、视频帧处理等操作以得到剩余直播流,再播放处理后得到的剩余直播流。
其中,第三客户端的具体组成结构可以如图4所示,第三客户端具体可以包括检测组件、解复用组件和视频帧处理组件。
第三客户端通过检测组件可以先检测流媒体服务器发送至第三客户端的同步后直播流的数据量是否大于预设阈值。一种情况,若流媒体服务器发送至第三客户端的同步后直播流的数据量大于预设阈值,则第三客户端的解复用组件可以对发送至第三客户端的同步后直播流中各视频帧的类型进行确定。另一种情况,若检测出流媒体服务器发送至第三客户端的同步后直播流的数据量小于预设阈值,则表明第三客户端可以直接对同步后直播流进行解码和渲染。
其中,视频帧的类型可以包括:I帧、P帧和B帧。I帧也被称为关键帧,它是完整编码帧,无需参考其他帧数据就能解码。P帧被称为前向预测编码帧,其需要参考它之前的I帧和P帧进行解码,P帧数据只对与前I/P帧数据之间的差进行编码,因此能降低编码后的数据量。B帧被称为双向预测编码帧,由前面的I帧、P帧和后面的P帧来进行预测,能极大降低编码后的数据量。
基于第三客户端的解复用组件确定出的各视频帧的类型,第三客户端的视频帧处理组件可以根据各视频帧的类型丢弃发送至第三客户端的同步后直播流中的至少一个图像组,以得到剩余直播流,并由第三客户端播放剩余直播流。其中,一个图像组,也可以称为一个画面组(Group of Pictures,简称GOP),一个GOP就是一组连续的画面,同步后直播流中的两个关键帧之间的视频帧构成一个图像组即一个GOP。
本实施例中,直播系统包括第一客户端、第二客户端、流媒体服务器以及第三客户端。其中,第三客户端可以表现为观众电脑中的浏览器。通过第三客户端的检测组件、解复用组件以及视频帧处理组件,能够从流媒体服务器发送的同步后直播流中准确的丢弃至少一个图像组,得到剩余直播流。并且由于此剩余直播流的数据量小于或等于第三客户端的预设阈值,因此,能够提高第三客户端的解码和渲染速度,从而使得目标主播和观众之间显示的画面实时同步。
另外,本实施例中未详细描述的内容以及所能实现的技术效果均可以参见上述各实施例中的相关描述,在此不再赘述。
为了便于理解,在此对图3所示实例提及的直播流进行统一解释说明,同步后直播流是指第二客户端对变换后直播流进行同步后得到的直播流,剩余直播流是指第三客户端对同步后直播流进行检测、解复用和视频帧处理后剩下的直播流。
可选地,在第三客户端获取同步后直播流后,第三客户端可以对同步后直播流中的各视频帧进行解码,以得到原始图像文件。然后,第三客户端可以使用纹理压缩工具对原始图像文件进行纹理压缩,得到压缩结果。接着,将纹理压缩结果上传至第三客户端中的图形处理器(Graphics Processing Unit,简称GPU)。最终,由第三客户端中的GPU渲染此压缩结果。
其中,原始图像文件可以包括目标主播的换装结果或者美颜结果,该原始图像文件的本质就是对目标主播进行纹理贴图之后得到的渲染纹理。通过上述对原始图像文件进行纹理压缩的方式,能够减少原始图像文件占用的内存资源,提高压缩纹理上传GPU的速度。
即当目标主播和观众在线视频连麦时,第三客户端即观众电脑中的浏览器能够快速地对压缩结果进行解码并渲染,以使第三客户端显示的画面与第二客户端显示的画面实时同步。
另外,上述第三客户端的解码过程与上述各实施例中提及的第二客户端的解码过程类似,第三客户端的同一线程也可以同时执行视频解码和视频渲染这两个任务,以有效地减少占用内存资源。具体过程可以参见上述各实施例中的描述,在此不再赘述。
为了便于理解,可以结合如下场景对图3所示实施例提供的直播系统的具体实现过程进行示例性说明。
在目标主播和使用第三客户端的观众在线视频连麦的场景中,如图5所示,直播系统可以包括:第一客户端、第二客户端、流媒体服务器以及第三客户端。其中,第一客户端具体可以是目标主播电脑中的浏览器,第二客户端具体可以是目标主播智能手机上安装的直播应用程序,第三客户端具体可以是观众电脑中的浏览器。
在观众使用电脑中的浏览器与目标主播进行在线视频连麦的过程中,若观众电脑中的浏览器接收到的流媒体服务器发送的同步后直播流的数据量过多,并且受到观众电脑中的浏览器的单核性能的限制,则会导致观众电脑中的浏览器的解码和渲染速度大大降低,从而导致目标主播和观众之间显示的画面可能不同步。因此,为了保证观众与目标主播之间在线视频连麦画面显示的实时性,观众电脑中的浏览器可以对接收的同步后的直播流进行检测、解复用以及视频帧处理,以得到剩余直播流,并由观众电脑中的浏览器播放剩余直播流。
具体地,第三客户端的检测组件,可以先检测流媒体服务器发送至第三客户端的同步后直播流的数据量是否大于预设阈值。若流媒体服务器发送至第三客户端的同步后直播流的数据量大于预设阈值,则可以由第三客户端的解复用组件确定出发送至第三客户端的同步后直播流中各视频帧的类型。在确定出各视频帧的类型后,第三客户端的视频帧处理组件可以再根据各视频帧的类型丢弃发送至第三客户端的同步后直播流中的至少一个图像组,以得到剩余直播流,并由第三客户端播放剩余直播流。
并且为了保证内存资源的使用率,观众电脑的浏览器的同一线程可以同时执行对剩余直播流进行视频解码和视频渲染这两个任务,即解码一个视频帧就渲染一个视频帧,不会盲目解码出多个视频帧。其中,解码和渲染的具体过程可以参见上述各实施例中的描述,在此不再赘述。
另外,在观众电脑中的浏览器接收到流媒体服务器发送的同步后直播流后,观众电脑中的浏览器还可以对同步后直播流中的各视频帧进行解码,以得到原始图像文件,并对该原始图像文件进行纹理压缩,以得到占用内存资源小的压缩结果。即可以快速的将压缩结果上传至观众电脑中的浏览器中的GPU,以由GPU快速解码并渲染此压缩结果,以使观众电脑中的浏览器显示的画面与第二客户端显示的画面实时同步。
在实际直播场景中,可选地,当有多个观众想要同时与主播进行视频连麦时,直播系统中不仅包括主播使用的第一客户端和第二客户端,流媒体服务器,观众使用的第三客户端,还可以包括合流服务器。其中,合流服务器用于对至少一个客户端推送的直播流进行合流,再将合流结果发送至流媒体服务器,以由各个客户端再从流媒体服务器中获取同步结果。
则图6为本发明实施例提供的又一种直播系统的结构示意图。该直播系统可以包括:表现为浏览器的第一客户端、表现为移动终端上安装的应用程序的第二客户端、流媒体服务器、表现为浏览器的第三客户端以及合流服务器。
合流服务器可以从流媒体服务器接收同步后直播流和连麦直播流。其中,同步后直播流由第二客户端生成,连麦直播流由第三客户端采集,并由第三客户端将采集的连麦直播流发送至流媒体服务器。第二客户端和第三客户端可以为至少一个。
然后,合流服务器可以根据第二客户端生成的同步后直播流中的音频流的时间戳,将第二客户端生成的同步后直播流中的视频流与第二客户端生成的同步后直播流中的音频流进行同步。
具体地,合流服务器可以将第二客户端生成的同步后直播流中的音频流的时间戳作为参考标准,对第二客户端生成的同步后直播流中的视频流的播放速率进行调整。对于第二客户端生成的同步后直播流中的视频流的播放速率的调整,一种情况是,若第二客户端生成的同步后直播流中的音频流对应的时间戳早于视频流对应的时间戳,则合流服务器可以提高第二客户端生成的同步后直播流中的视频流的播放速率,直至第二客户端生成的同步后直播流中的视频流追上第二客户端生成的同步后直播流中的音频流。另一种情况是,若第二客户端生成的同步后直播流中的音频流对应的时间戳晚于视频流对应的时间戳,则合流服务器可以降低第二客户端生成的同步后直播流中的视频流的播放速率,直至第二客户端生成的同步后直播流中的音频流追上第二客户端生成的同步后直播流中的视频流。
合流服务器还可以根据连麦直播流中的音频流的时间戳,将连麦直播流中的视频流与连麦直播流中的音频流也进行同步。假设第三客户端包括两个观众电脑上的浏览器,即两个观众各自通过电脑上的直播网站提供的直播页面观看直播。可选地,合流服务器可以同时对两个观众产生的连麦直播流进行同步,也可以先对其中一个观众的连麦直播流进行同步,在此对于同步的先后顺序不做具体限定。两个观众中的任一观众的同步过程均可参见上述对第二客户端生成的同步后直播流的同步过程的相关描述,在此不再赘述。
承接上述举例,假设第三客户端包括两个观众电脑上的浏览器,在目标主播和两个观众进行在线视频连麦的过程中,可选地,为了进一步提高第二客户端和第三客户端各自产生的直播流的同步效果,可以将合流服务器生成的同步后直播流作为主直播流,即将合流服务器生成的同步后直播流对应的时间戳作为参考标准。可选地,也可以将两个观众对应的任一同步后的连麦直播流作为主直播流。若将合流服务器生成的同步后直播流对应的时间戳作为参考标准,则合流服务器可以对同步后连麦直播流的播放速率进行调整,以得到同步结果。在得到同步结果之后,合流服务器可以将同步结果发送至流媒体服务器,以由第三客户端直接从流媒体服务器中获取该同步结果。
本实施例中,直播系统可以包括:第一客户端、第二客户端、流媒体服务器、第三客户端以及合流服务器。其中,合流服务器可以先对流媒体服务器接收的由不同客户端产生的直播流各自进行同步,即对第二客户端生成的同步后直播流和第三客户端采集的连麦直播流先各自进行同步;再对合流服务器生成的同步后直播流与同步后连麦直播流进行同步,以更好的实现直播流的同步。并且第三客户端可以直接获取合流后生成的一路直播流的同步结果,无需占用多路直播流的带宽,从而节省带宽。
另外,本实施例中未详细描述的内容以及所能实现的技术效果均可以参见上述各实施例中的相关描述,在此不再赘述。
为了便于理解,在此对图6所示实例提及的直播流进行统一解释说明,连麦直播流是指第三客户端对观众采集的直播流,同步后连麦直播流是指合流服务器对连麦直播流进行音视频同步后得到的直播流,合流服务器生成的同步后直播流是指合流服务器对第二客户端生成的同步后直播流进行音视频同步后得到的直播流。
为了便于理解,可以结合如下场景对图6所示实施例提供的直播系统的具体实现过程进行示例性说明。
在目标主播与多个观众进行直播视频连麦的场景中,如图7所示,直播系统可以包括:第一客户端、第二客户端、流媒体服务器、第三客户端以及合流服务器。其中,第一客户端具体可以是目标主播电脑中的浏览器,第二客户端具体可以是智能手机上安装的直播应用程序,第三客户端可以包括第一观众电脑中的浏览器和第二观众电脑中的浏览器。
以目标主播、第一观众和第二观众进行的三人直播视频连麦的场景为例,合流服务器可以从流媒体服务器中接收目标主播使用直播应用程序生成的同步后直播流,第一观众电脑中的浏览器采集的连麦直播流1和第二观众电脑中的浏览器采集的连麦直播流2。
为了保证三人直播视频连麦的流畅性,则需要对三人产生的直播流进行同步。具体地,合流服务器可以将直播应用程序生成的同步后直播流的音频流的时间戳作为参考标准,对直播应用程序生成的同步后直播流的视频流的播放速率进行调整,以使直播应用程序生成的同步后直播流的视频流和直播应用程序生成的同步后直播流的音频流保持同步。其中,对于播放速率的调整的具体过程可以参见上述各实施例中的描述。
同时,合流服务器还可以分别对第一观众对应的连麦直播流1和第二观众对应的连麦直播流2进行同步。其中,同步过程可以参照直播应用程序生成的同步后直播流的同步方式,在此不再一一赘述。
在保证目标主播、第一观众和第二观众各自的直播流同步的基础上,为了进一步提高三人直播视频连麦的流畅性,合流服务器还可以从目标主播对应的合流服务器生成的同步后直播流、第一观众对应的同步后连麦直播流1、以及第二观众对应的同步后连麦直播流2中任选一个作为主直播流。假设将合流服务器生成的同步后直播流作为主直播流,则可以将主直播流对应的时间戳作为参考标准,对同步后连麦直播流1和同步后连麦直播流2的播放速率进行调整,以得到同步结果。合流服务器再将得到的同步结果发送至流媒体服务器,以由第三客户端直接从流媒体服务器中获取同步结果,并播放同步结果。
另外,本实施例中未详细描述的内容以及所能实现的技术效果均可以参见上述各实施例中的相关描述,在此不再赘述。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (11)
1.一种直播系统,其特征在于,所述系统包括:表现为浏览器的第一客户端和表现为移动终端上安装的应用程序的第二客户端;
所述第一客户端,用于采集目标主播对应的原始直播流;
所述第二客户端,用于响应于所述目标主播在所述第二客户端上触发的播放效果变换操作,对所述原始直播流进行处理,以得到变换后直播流;根据所述变换后直播流中的视频流对应的时间戳,将所述变换后直播流中的音频流与所述视频流进行同步;播放同步后直播流。
2.根据权利要求1所述的系统,其特征在于,所述第二客户端,用于根据所述变换后直播流中的视频流对应的时间戳,调整所述变换后直播流中的音频流的播放速率。
3.根据权利要求2所述的系统,所述第二客户端,用于若所述变换后直播流中的视频流对应的时间戳早于所述变换后直播流中的音频流对应的时间戳,则提高所述变换后直播流中的音频流的播放速率;若所述变换后直播流中的视频流对应的时间戳晚于所述变换后直播流中的音频流对应的时间戳,则降低所述变换后直播流中的音频流的播放速率。
4.根据权利要求1所述的系统,其特征在于,所述播放效果包括视频播放效果和/或音频播放效果。
5.根据权利要求1所述的系统,其特征在于,所述第二客户端,用于借助线程对第一视频帧进行解码并渲染;在所述第一视频帧渲染完成后借助所述线程对第二视频帧进行解码并渲染,所述第一视频帧和所述第二视频帧为所述同步后直播流中相邻的视频帧。
6.根据权利要求1所述的系统,其特征在于,所述直播系统还包括流媒体服务器和表现为浏览器的第三客户端;
所述流媒体服务器,用于将所述同步后直播流发送至所述第三客户端。
7.根据权利要求6所述的系统,其特征在于,所述第三客户端包括检测组件、解复用组件和视频帧处理组件;
所述检测组件,用于检测所述流媒体服务器发送至所述第三客户端的所述同步后直播流的数据量是否大于预设阈值;
所述解复用组件,用于若所述数据量大于所述预设阈值,则确定所述发送至所述第三客户端的所述同步后直播流中各视频帧的类型;
所述视频帧处理组件,用于根据所述各视频帧的类型丢弃视频帧,以得到剩余直播流,以由所述第三客户端播放所述剩余直播流。
8.根据权利要求7所述的系统,其特征在于,所述视频帧处理组件,用于丢弃发送至所述第三客户端的所述同步后直播流中的至少一个图像组,所述同步后直播流中两个关键帧之间的视频帧构成一个图像组。
9.根据权利要求6所述的系统,其特征在于,所述第三客户端,用于对所述同步后直播流中的各视频帧进行解码,以得到原始图像文件;将所述原始图像文件进行纹理压缩;借助所述第三客户端中的图形处理器渲染压缩结果。
10.根据权利要求6所述的系统,其特征在于,所述第三客户端,用于借助线程对第一视频帧进行解码并渲染;在所述第一视频帧渲染完成后借助所述线程对第二视频图像帧进行解码并渲染,所述第一视频帧和所述第二视频帧为所述同步后直播流中相邻的视频帧。
11.根据权利要求1所述的系统,其特征在于,所述系统还包括第三客户端、流媒体服务器和合流服务器;
所述合流服务器,用于从所述流媒体服务器接收所述同步后直播流和连麦直播流,所述同步后直播流由所述第二客户端生成,所述连麦直播流由所述第三客户端采集;
根据所述第二客户端生成的同步后直播流中的音频流的时间戳,将所述第二客户端生成的同步后直播流中的视频流与所述第二客户端生成的同步后直播流中的音频流进行同步;
根据所述连麦直播流中的音频流的时间戳,将所述连麦直播流中的视频流与所述连麦直播流中的音频流进行同步;
将同步后连麦直播流与所述合流服务器生成的同步后直播流进行同步,以得到同步结果;
将所述同步结果发送至所述流媒体服务器;
所述第三客户端,用于发送所述连麦直播流至所述流媒体服务器;从所述流媒体服务器中获取同步结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310745233.3A CN116708860A (zh) | 2023-06-21 | 2023-06-21 | 直播系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310745233.3A CN116708860A (zh) | 2023-06-21 | 2023-06-21 | 直播系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116708860A true CN116708860A (zh) | 2023-09-05 |
Family
ID=87840895
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310745233.3A Pending CN116708860A (zh) | 2023-06-21 | 2023-06-21 | 直播系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116708860A (zh) |
-
2023
- 2023-06-21 CN CN202310745233.3A patent/CN116708860A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220232222A1 (en) | Video data processing method and apparatus, and storage medium | |
CN101917613B (zh) | 一种流媒体采集编码服务系统 | |
US20100242066A1 (en) | Method of Performing Random Seek Preview for Streaming Video | |
US20070217505A1 (en) | Adaptive Decoding Of Video Data | |
WO2010031170A1 (en) | Low latency video encoder | |
US11128897B2 (en) | Method for initiating a transmission of a streaming content delivered to a client device and access point for implementing this method | |
CN112073543B (zh) | 一种云视频录制方法、系统和可读存储介质 | |
CN112291498B (zh) | 音视频数据传输的方法、装置和存储介质 | |
CN110519640B (zh) | 视频处理方法、编码器、cdn服务器、解码器、设备及介质 | |
CN111372138A (zh) | 一种播放器端的直播低延迟技术方案 | |
CN112954433B (zh) | 视频处理方法、装置、电子设备及存储介质 | |
CN114600468A (zh) | 将复合视频流中的视频流与元数据组合 | |
CN111726657A (zh) | 直播视频的播放处理方法、装置及服务器 | |
CN110602522A (zh) | 一种多路实时直播WebRTC流合成方法 | |
US9226003B2 (en) | Method for transmitting video signals from an application on a server over an IP network to a client device | |
CN110139128B (zh) | 一种信息处理方法、拦截器、电子设备及存储介质 | |
CN108307248A (zh) | 视频播放方法、装置、计算设备及存储介质 | |
US20040249980A1 (en) | System, computer program product, and method for transmitting compressed screen images from one computer to another or many computers. | |
CN110351576B (zh) | 一种在工业场景下进行实时视频流快速显示的方法及其系统 | |
CN113286149B (zh) | 一种云会议自适应多层视频编码方法、系统和存储介质 | |
CN116708860A (zh) | 直播系统 | |
Zeng et al. | A new architecture of 8k vr fov video end-to-end technology | |
CN114422810A (zh) | 一种基于移动端导播台多路直播同步校准的方法 | |
KR101700821B1 (ko) | 스케일러블 원격화면 전송방법 및 그 장치 | |
CN111447458A (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 |