CN115243063B - 视频流的处理方法、处理装置以及处理系统 - Google Patents
视频流的处理方法、处理装置以及处理系统 Download PDFInfo
- Publication number
- CN115243063B CN115243063B CN202210822272.4A CN202210822272A CN115243063B CN 115243063 B CN115243063 B CN 115243063B CN 202210822272 A CN202210822272 A CN 202210822272A CN 115243063 B CN115243063 B CN 115243063B
- Authority
- CN
- China
- Prior art keywords
- frame
- video stream
- client
- video
- stream
- 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
- 238000012545 processing Methods 0.000 title claims abstract description 57
- 238000003672 processing method Methods 0.000 title abstract description 10
- 238000000034 method Methods 0.000 claims abstract description 97
- 238000003860 storage Methods 0.000 claims description 42
- 230000004044 response Effects 0.000 claims description 37
- 230000001360 synchronised effect Effects 0.000 claims description 37
- 238000004590 computer program Methods 0.000 claims description 36
- 230000008569 process Effects 0.000 claims description 31
- 230000008859 change Effects 0.000 claims description 28
- 230000000903 blocking effect Effects 0.000 claims description 17
- 238000004891 communication Methods 0.000 claims description 8
- 238000005516 engineering process Methods 0.000 abstract description 5
- 230000000694 effects Effects 0.000 description 21
- 230000005540 biological transmission Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 10
- 230000011664 signaling Effects 0.000 description 9
- 238000009826 distribution Methods 0.000 description 7
- 238000004519 manufacturing process Methods 0.000 description 7
- 230000003993 interaction Effects 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 238000000605 extraction Methods 0.000 description 3
- 239000004973 liquid crystal related substance Substances 0.000 description 3
- 239000000463 material Substances 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000153 supplemental effect Effects 0.000 description 2
- 238000011144 upstream manufacturing Methods 0.000 description 2
- 102100037812 Medium-wave-sensitive opsin 1 Human genes 0.000 description 1
- 241001310793 Podium Species 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000008602 contraction Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005111 flow chemistry technique Methods 0.000 description 1
- 238000012905 input function Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000026676 system process 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/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
-
- 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/242—Synchronization processes, e.g. processing of PCR [Program Clock References]
-
- 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
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)
Abstract
本申请公开了一种视频流的处理方法、处理装置以及处理系统。该方法包括:接收客户端发送的操作指令,其中,操作指令用于对客户端当前播放的第一视频流进行操作;基于操作指令,确定第一视频流的运行状态及第一视频流中的目标帧;基于运行状态生成第一预设帧,其中,第一预设帧用于存储运行状态;发送目标帧和第一预设帧至客户端,其中,目标帧由客户端基于第一预设帧进行播放。本申请解决了相关技术中服务器端与客户端的显示画面同步率低的技术问题。
Description
技术领域
本公开涉及图像处理领域,具体而言,涉及一种视频流的处理方法、处理装置以及处理系统。
背景技术
在现有的直播制作方案中,已经实现了通过云导播系统将视频发送至客户端的技术,但是现有的云导播系统并没有对视频流进行处理,当客户端想要暂停或者停止播放视频时,会出现客户端已经确认暂停播放或者停止播放,但云导播系统还是会持续发送视频流给客户端的情况。这就导致了服务器端与客户端的显示画面的同步率低。
针对上述的问题,目前尚未提出有效的解决方案。
公开内容
本公开至少部分实施例提供了一种视频流的处理方法、处理装置以及处理系统,以至少解决相关技术中服务器端与客户端的显示画面同步率低的技术问题。
根据本公开其中一实施例,提供了一种视频流的处理方法,应用于云服务器。该方法包括:接收客户端发送的操作指令,其中,操作指令用于对客户端当前播放的第一视频流进行操作;基于操作指令,确定第一视频流的运行状态及第一视频流中的目标帧;基于运行状态生成第一预设帧,其中,第一预设帧用于存储运行状态;发送目标帧和第一预设帧至客户端,其中,目标帧由客户端基于第一预设帧进行播放。
可选地,基于操作指令,确定第一视频流中的目标帧包括:确定操作指令的第一指令类型和第一操作时刻;基于第一指令类型和第一操作时刻,确定目标帧。
可选地,目标帧包括:目标视频帧和目标音频帧,其中,基于第一指令类型和第一操作时刻,确定目标帧包括:响应于第一指令类型为停止播放,确定目标视频帧为第一视频流的第一帧视频帧,目标音频帧为静音音频帧;响应于第一指令类型为暂停播放,确定目标视频帧为第一视频流中第一操作时刻对应的视频帧,目标音频帧为静音音频帧;响应于第一指令类型为播放、播放进度调整或播放时钟调整,确定目标视频帧为第一视频流中第一操作时刻之后的视频帧,目标音频帧为第一视频流中第一操作时刻之后的音频帧。
可选地,响应于操作指令的第一指令类型为播放进度调整或播放时钟调整,第一预设帧还用于存储第一视频流的帧率、播放时长和目标帧的显示时间戳,其中,第一预设帧还用于控制客户端的操作界面中目标控件的展示参数。
可选地,该方法还包括:接收客户端发送的混流指令,其中,混流指令用于对第一视频流和第二视频流进行混流;按照预设周期在第一视频流中插入第二预设帧,第二视频流中插入第三预设帧,其中,第二预设帧用于存储第一视频流对应的第一时间戳,第三预设帧用于存储第二视频流对应的第二时间戳;基于第二预设帧和第三预设帧,从第一视频流中抽取第一帧,并从第二视频流中抽取第二帧;对第一帧和第二帧进行混流,得到混流结果。
可选地,基于第二预设帧和第三预设帧,从第一视频流中抽取第一帧,并从第二视频流中抽取第二帧包括:基于第二预设帧和第三预设帧,确定第一视频流和第二视频流是否同步;响应于第一视频流和第二视频流同步,从第一视频流中抽取第一帧,并从第二视频流中抽取第二帧;响应于第一视频流和第二视频流不同步,对第一视频流和第二视频流进行同步,得到同步结果,并从同步结果中抽取第一帧和第二帧。
可选地,基于第二预设帧和第三预设帧,确定第一视频流和第二视频流是否同步包括:基于第二预设帧,确定第一视频流的第一播放时间;基于第三预设帧,确定第二视频流的第二播放时间;确定第一播放时间和第二播放时间的时间差;通过比较时间差和预设阈值,确定第一视频流和第二视频流是否同步。
可选地,该方法还包括如下之一:通过流媒体集群接收远程设备发送的第二视频流,并发送第二视频流至客户端;接收远程设备发送的第二视频流,并通过流媒体集群发送第二视频流至客户端;其中,流媒体集群通过预设协议接收或发送第二视频流,第二视频流由客户端进行播放。
可选地,通过流媒体集群发送第二视频流至客户端包括:获取缓存中存储的第二视频流中视频帧集合,和视频帧集合对应的音频帧集合;发送视频帧集合和音频帧集合至客户端;发送第二视频流中其他视频帧和其他音频帧至客户端,其中,其他视频帧为第二视频流中视频帧集合之后的视频帧,其他音频帧为第二视频流中音频帧集合之后的音频帧。
可选地,对第一帧和第二帧进行混流,得到混流结果包括:对第一帧和第二帧进行处理,得到第一混流信号;对第一混流信号进行组合,得到混流结果。
可选地,该方法还包括:接收客户端发送的调整指令,其中,调整指令用于对第一混流信号进行调整;基于调整指令对第一混流信号进行调整,得到第二混流信号;对第二混流信号进行组合,得到混流结果。
可选地,该方法还包括:接收客户端发送的信号切换指令,其中,信号切换指令用于将混流结果从第一混流结果切换为第二混流结果;基于信号切换指令,对第一混流结果的当前帧进行阻塞;响应于第一混流结果中的所有帧均完成阻塞,将第一混流结果切换为第二混流结果。
可选地,将第一混流结果切换为第二混流结果包括:确定信号切换指令的第二指令类型;响应于第二指令类型为第一类型,将第一混流结果切换为第二混流结果。
可选地,响应于第二指令类型为第二类型,方法还包括:对第二混流结果中的视频帧进行渐变处理,得到渐变结果;输出第一混流结果中的音频帧;响应于渐变结果的帧数满足预设帧数,将第一混流结果切换为第二混流结果。
可选地,对第一帧和第二帧进行混流,得到混流结果包括:创建混流指令对应的混流进程;通过混流进程对第一帧和第二帧进行混流,得到混流结果。
根据本公开其中一实施例,还提供了一种视频流的处理装置的结构框图,部署于云服务器,该装置包括:第一接收模块,用于接收客户端发送的操作指令,其中,操作指令用于对客户端当前播放的第一视频流进行操作;确定模块,用于基于操作指令,确定第一视频流的运行状态及第一视频流中的目标帧;生成模块,用于基于运行状态生成第一预设帧,其中,第一预设帧用于存储运行状态;发送模块,用于发送目标帧和第一预设帧至客户端,其中,目标帧由客户端基于第一预设帧进行播放。
根据本公开其中一实施例,还提供了一种视频流的处理系统,包括:客户端,用于播放第一视频流,并生成操作指令,其中,操作指令用于对第一视频流进行操作;云服务器,与客户端通信连接,用于基于操作指令,确定第一视频流的运行状态及第一视频流中的目标帧,基于运行状态生成第一预设帧,并发送目标帧和第一预设帧至客户端,其中,第一预设帧用于存储运行状态;客户端还用于基于第一预设帧对目标帧进行播放。
根据本公开其中一实施例,还提供了一种非易失性存储介质,该非易失性存储介质中存储有计算机程序,其中,计算机程序被设置为运行时执行上述任一项中的视频流的处理方法。
根据本公开其中一实施例,还提供了一种电子装置,包括存储器和处理器,存储器中存储有计算机程序,处理器被设置为运行计算机程序以执行上述任一项中的视频流的处理方法。
在本公开至少部分实施例中,采用接收客户端发送的操作指令,其中,操作指令用于对客户端当前播放的第一视频流进行操作;基于操作指令,确定第一视频流的运行状态及第一视频流中的目标帧;基于运行状态生成第一预设帧,其中,第一预设帧用于存储运行状态;发送目标帧和第一预设帧至客户端,其中,目标帧由客户端基于第一预设帧进行播放的方式。容易注意到的是,通过服务器发送第一视频流的运行状态以及第一视频流中的目标帧,达到了可以实时同步服务器端与客户端的显示画面的目的,从而实现了提高服务器端与客户端的显示画面的同步率的技术效果,进而解决了相关技术中服务器端与客户端的显示画面同步率低的技术问题。
附图说明
此处所说明的附图用来提供对本公开的进一步理解,构成本申请的一部分,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。在附图中:
图1是本公开实施例的一种视频流的处理方法的移动终端的硬件结构框图;
图2是根据本公开其中一实施例的视频流的处理方法的流程图;
图3是根据本公开其中一实施例的一种可选的云导播台系统整体结构示意图;
图4是根据本公开其中一实施例的一种可选的云导播客户端的操作界面的示意图;
图5是根据本公开其中一实施例的视频流的处理装置的结构框图;
图6是根据本公开其中一实施例的一种电子装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本公开方案,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分的实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本公开保护的范围。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本公开其中一实施例,提供了一种视频流的处理方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
该方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,该移动终端可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile Internet Devices,简称为MID)、PAD、游戏机等终端设备。图1是本公开实施例的一种视频流的处理方法的移动终端的硬件结构框图。如图1所示,移动终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于中央处理器(CPU)、图形处理器(GPU)、数字信号处理(DSP)芯片、微处理器(MCU)、可编程逻辑器件(FPGA)、神经网络处理器(NPU)、张量处理器(TPU)、人工智能(AI)类型处理器等的处理装置)和用于存储数据的存储器104。可选地,上述移动终端还可以包括用于通信功能的传输设备106、输入输出设备108以及显示设备110。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本公开实施例中的视频流的处理方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的视频流的处理方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
输入输出设备108中的输入可以来自多个人体学接口设备(Human InterfaceDevice,简称为HID)。例如:键盘和鼠标、游戏手柄、其他专用游戏控制器(如:方向盘、鱼竿、跳舞毯、遥控器等)。部分人体学接口设备除了提供输入功能之外,还可以提供输出功能,例如:游戏手柄的力反馈与震动、控制器的音频输出等。
显示设备110可以例如平视显示器(HUD)、触摸屏式的液晶显示器(LCD)和触摸显示器(也被称为“触摸屏”或“触摸显示屏”)。该液晶显示器可使得用户能够与移动终端的用户界面进行交互。在一些实施例中,上述移动终端具有图形用户界面(GUI),用户可以通过触摸触敏表面上的手指接触和/或手势来与GUI进行人机交互,此处的人机交互功能可选的包括如下交互:创建网页、绘图、文字处理、制作电子文档、游戏、视频会议、即时通信、收发电子邮件、通话界面、播放数字视频、播放数字音乐和/或网络浏览等、用于执行上述人机交互功能的可执行指令被配置/存储在一个或多个处理器可执行的计算机程序产品或可读存储介质中。
在本公开其中一种实施例中的视频流的处理方法可以运行于本地终端设备或者是服务器。当视频流的处理方法运行于服务器时,该方法则可以基于云交互系统来实现与执行,其中,云交互系统包括服务器和客户端设备。
在一种可能的实施方式中,本公开实施例提供了一种视频流的处理方法,应用于云服务器。图2是根据本公开其中一实施例的视频流的处理方法的流程图,应用于云服务器,如图2所示,该方法包括如下步骤:
步骤S202,接收客户端发送的操作指令,其中,操作指令用于对客户端当前播放的第一视频流进行操作。
上述的客户端可以是能够对视频流进行操作的客户端,可以是智能手机、平板电脑、掌上电脑、笔记本电脑、个人电脑等设备,但不仅限于此。例如,在云导播场景中,客户端可以是能够实现直播制作的客户端。
上述的操作指令可以是对视频流的停止、暂停、重新播放、播放进度条、播放始终、循环播放等操作所生成的指令,但不仅限于此。例如,在云导播场景中,操作指令可以是用户通过客户端对媒体池(Media Pool,简称为MP)画面进行操作所生成的指令。
上述的第一视频流可以是任意一种能够在客户端进行播放的视频流,在本实施例中,以媒体池(Media Pool,MP)画面为例进行说明,如图4所示,图4中包含多个MP画面,分别用于MP1-MP4表示。
在一种可选的实施例中,用户可以通过客户端对第一视频流进行停止、暂停、重新播放、播放进度条、播放始终、循环播放等操作,客户端生成相应的操作指令,并发送给服务器进行处理,此处的服务器可以是本地服务器,也可以是云服务器,在本实施例中,以云端服务器为例进行说明。
需要说明的是,第一视频流可以由客户端上传至云服务器,并且在通过云服务器进行处理之后,可以由云服务器返回给客户端进行展示。
步骤S204,基于操作指令,确定第一视频流的运行状态及第一视频流中的目标帧。
上述的运行状态可以是第一视频流停止播放,第一视频流暂停播放,第一视频流始终在播放等,但不仅限于此。
上述的目标帧可以是与运行状态对应的第一视频流中的视频帧和音频帧。例如,当运行状态为暂停状态时,目标帧可以是第一视频流暂停时刻的视频帧和静音音频帧,当运行状态为停止播放时,目标帧可以是第一视频流的首帧视频帧和静音音频帧,但不仅限于此。
在一种可选的实施例中,在收到客户端发送的操作指令后,云端服务器可以基于操作指令,确定第一视频流的运行状态以及第一视频流中的视频帧和音频帧。例如,当操作指令为使第一视频流暂停播放时,云端服务器可以确定第一视频流的运行状态为暂停状态,并且能够确定与暂停状态对应的第一视频流暂停时刻的视频帧和静音音频帧,但不仅限于此。
步骤S206,基于运行状态生成第一预设帧,其中,第一预设帧用于存储运行状态。
第一预设帧可以是与运行状态对应的,并且能够存储运行状态的补充增强信息帧(Supplemental Enhancement Information,SEI)帧。其中,SEI帧可以对解码过程中的容错、纠错有帮助,并且可以集成在视频码流中。需要说明的是,SEI帧不仅可以存储运行状态,还可以存储其他信息,具体存储信息可以根据实际需要进行确定。
在一种可选的实施例中,服务器可以基于第一视频流的运行状态,生成与运行状态对应的,并且能够存储运行状态的第一预设帧。例如,服务器可以直接将第一视频流的运行状态存储至SEI帧中,从而生成第一预设帧。
步骤S208,发送目标帧和第一预设帧至客户端,其中,目标帧由客户端基于第一预设帧进行播放。
在一种可选的实施例中,当基于操作指令生成目标帧和第一预设帧后,服务器可以发送目标帧和第一预设帧至客户端,客户端可以基于第一预设帧对目标帧进行播放。例如,当目标帧为第一视频流暂停时刻的视频帧和静音音频帧时,第一预设帧可以是包含暂停状态的SEI帧,则客户端接收到目标帧和第一预设帧后,可以基于第一预设帧中的暂停状态,在客户端持续播放第一视频流暂停时刻的视频帧和静音音频帧。
在另一种可选的实施例中,当客户端接收到目标帧和第一预设帧后,还可以基于第一预设帧中存储的进度条位置调整信息和控件操作等信息,对用户界面(UserInterface,UI)中的进度条的位置进行调整,以及对UI界面中的控件进行操作等,但不仅限于此。
在本公开至少部分实施例中,采用接收客户端发送的操作指令,其中,操作指令用于对客户端当前播放的第一视频流进行操作;基于操作指令,确定第一视频流的运行状态及第一视频流中的目标帧;基于运行状态生成第一预设帧,其中,第一预设帧用于存储运行状态;发送目标帧和第一预设帧至客户端,其中,目标帧由客户端基于第一预设帧进行播放的方式。容易注意到的是,通过服务器实时确定第一视频流的运行状态以及第一视频流中的目标帧,达到了可以实时同步服务器端与客户端的显示画面的目的,从而实现了提高服务器端与客户端的显示画面的同步率的技术效果,进而解决了相关技术中服务器端与客户端的显示画面同步率低的技术问题。
可选地,基于操作指令,确定第一视频流中的目标帧包括:确定操作指令的第一指令类型和第一操作时刻;基于第一指令类型和第一操作时刻,确定目标帧。
上述的第一指令类型可以包括但不限于:停止播放,暂停播放,播放进度调整等。
上述的第一操作时刻,可以是执行第一操作指令的时刻,例如,可以是客户端执行“停止播放”指令的时刻,也可以是服务器接收到第一操作指令的时刻,例如,可以是服务器接收到“停止播放”指令的时刻。
在一种可选的实施例中,服务器在接收到操作指令之后,首先可以确定操作指令中的第一指令类型和第一操作时刻,例如,服务器首先可以确定操作指令为暂停播放,以及客户端执行暂停播放时的时刻。
在另一种可选的实施例中,在确定第一指令类型和第一操作时刻后,服务器可以基于第一指令类型和第一操作时刻确定目标帧,例如,服务器可以基于暂停播放和暂停播放的时刻,确定第一视频流暂停时刻的视频帧以及静音音频帧。
可选地,目标帧包括:目标视频帧和目标音频帧,其中,基于第一指令类型和第一操作时刻,确定目标帧包括:响应于第一指令类型为停止播放,确定目标视频帧为第一视频流的第一帧视频帧,目标音频帧为静音音频帧;响应于第一指令类型为暂停播放,确定目标视频帧为第一视频流中第一操作时刻对应的视频帧,目标音频帧为静音音频帧;响应于第一指令类型为播放、播放进度调整或播放时钟调整,确定目标视频帧为第一视频流中第一操作时刻之后的视频帧,目标音频帧为第一视频流中第一操作时刻之后的音频帧。
在一种可选的实施例中,当第一指令类型为停止播放的情况时,服务器可以基于停止播放和执行停止播放的时刻确定目标视频帧为第一视频流的第一帧视频帧,目标音频帧可以是静音音频帧。
在另一种可选的实施例中,当第一指令类型为暂停播放的情况时,服务器可以基于暂停播放和执行暂停播放的时刻确定目标视频帧为第一视频流暂停时刻的视频帧,目标音频帧为静音音频帧。
在又一种可选的实施例中,当第一指令类型为播放、播放进度调整或播放时钟调整的情况时,服务器可以基于播放、播放进度调整或播放时钟调整(即第一指令类型)以及执行播放、播放进度调整或播放时钟调整的时刻(即第一操作时刻)确定目标视频帧为第一操作时刻后的视频帧,目标音频帧为第一操作时刻之后的音频帧。
可选地,响应于操作指令的第一指令类型为播放进度调整或播放时钟调整,第一预设帧还用于存储第一视频流的帧率、播放时长和目标帧的显示时间戳,其中,第一预设帧还用于控制客户端的操作界面中目标控件的展示参数。
上述的帧率(Frame per Second,FPS),可以是60FPS、30FPS、24FPS等,但不仅限于此,具体的帧率用户可根据实际展示需求自行设定。
上述的显示时间戳可以是一种能够显示目标帧产生时间的数据,可以精确到毫秒,但不仅限于此。
上述的操作界面可以是终端设备中能够显示第一视频流,并能够对第一视频流进行操作的界面。可以是智能手机、平板电脑、掌上电脑、笔记本电脑、个人电脑等设备的显示页面,但不仅限于此。
上述的目标控件,可以是操作界面中的进度条。
上述的展示参数可以是能够使进度条显示在操作界面的参数。
在一种可选的实施例中,当第一指令类型为播放进度调整或播放时钟调整时,SEI帧(即第一预设帧)不仅可以用于存储第一视频流的帧率、播放时长和目标帧的显示时间戳,还可以用于控制客户端操作界面中的进度条的展示参数。其中,显示时间戳可以显示目标帧的产生时间,展示参数可以使进度条显示在操作界面中。
MP(媒体池)画面为实时视频流,但其操作与单机播放器一致。其特殊点在于使用直播流模拟单机播放器行为,并且同步服务端及客户端运行状态。单机播放器可以在暂停等情况停止解码,但直播流无论在何种状态都必须保持输出。
主要涉及如下几个操作及功能点:
1.添加、删除列表:客户端发送信令更新混流系统中的播放列表
2.上一个、下一个:客户端发送信令控制混流系统切换当前播放文件
3.停止:客户端发送信令后,混流系统停止本文件播放,并返回视频开头,并按视频流设定的输出帧率持续发送视频文件首帧视频帧及静音音频帧。
4.暂停:客户端发送信令后,混流系统暂停本文件播放,并按视频流设定的输出帧率持续发送暂停时刻的视频帧及静音音频帧。
5.播放:客户端发送信令后,混流系统恢复播放当前文件,并从当前文件位置按视频流设定的输出帧率持续发送音视频帧。
6.播放进度条:混流系统定时将当前播放文件原帧率、时长、当前播放帧原PTS等信息存于SEI帧中,插入至视频流中进行分发。客户端对视频流解析时,获取SEI帧并解析其中信息,即可计算出原视频比例值,修改UI进度条展示,如图4所示,图4所示的操作界面的下方包含有UI进度条。
7.播放时钟/倒计时:与上一点原理一致,调整计算方式即可。
8.循环播放:若选中循环播放,混流系统将循环播放列表中的文件。若无选中,播放一遍列表文件后,将自动进入停止状态。混流系统将模拟的运行状态返回从SEI帧中通知客户端,客户端根据此消息自动及时更新UI告知用户。
可选地,该方法还包括:接收客户端发送的混流指令,其中,混流指令用于对第一视频流和第二视频流进行混流;按照预设周期在第一视频流中插入第二预设帧,第二视频流中插入第三预设帧,其中,第二预设帧用于存储第一视频流对应的第一时间戳,第三预设帧用于存储第二视频流对应的第二时间戳;基于第二预设帧和第三预设帧,从第一视频流中抽取第一帧,并从第二视频流中抽取第二帧;对第一帧和第二帧进行混流,得到混流结果。
上述的第二视频流可以是INPUT信号,如图4所示,图4中包含有多个INPUT信号,分别用INPUT1-INPUT12表示。
上述的混流指令可以是能够对第一视频流和第二视频流进行混流的指令,其中,混流是一种把多路音/视频流混合成单流的技术。
上述的预设周期可以是用户提前设置的一个具有时间间隔的周期,具体的周期时长可根据用户需求自行设定,在本实施例中不做具体限定。其中,混流系统可以通过预设周期对第一视频流插入第二预设帧,以及对第二视频流插入第三预设帧。
需要说明的是,对第一视频插入第二预设帧,对第二视频流插入第三预设帧的系统不仅限于混流系统,还可以是任意一种能够对视频流插入预设帧的处理器、模块、装置、系统以及服务器等,在本实施例中,以混流系统为例进行说明。
上述的第二预设帧,可以是能够存储第一视频流对应的第一时间戳的SEI帧。其中,第一时间戳可以是能够表示第一视频流通过预设周期的数据。
上述的第三预设帧,可以是能够存储第二视频流对应的第二时间戳的SEI帧。其中,第二时间戳可以是能够表示第二视频流通过预设周期的数据。
上述的第一帧,可以是第一视频流的对应的目标帧。
上述的第二帧,可以是第二视频流的对应的目标帧。
在一种可选的实施例中,首先服务器可以接受客户端发送的混流指令,其中,混流指令用于对第一视频流和第二视频流进行混流。
在另一种可选的实施例中,在接收到混流指令后,服务器可以通过混流系统,按照预设周期在第一视频流中插入用于存储第一视频流通过预设周期的SEI帧(即第二预设帧),在第二视频流中插入用于存储第二视频流通过预设周期的SEI帧(即第三预设帧)。
在另一种可选的实施例中,混流系统可以基于第二预设帧和第三预设帧,在第一视频流中抽取第一视频流对应的目标帧(即第一帧),在第二视频流中抽取第二视频流对应的目标帧(即第二帧)。
在又一种可选的实施例中,当抽取到第一帧和第二帧后,混流系统可以对第一帧和第二帧进行混流,进而可以得到混流结果。
可选地,基于第二预设帧和第三预设帧,从第一视频流中抽取第一帧,并从第二视频流中抽取第二帧包括:基于第二预设帧和第三预设帧,确定第一视频流和第二视频流是否同步;响应于第一视频流和第二视频流同步,从第一视频流中抽取第一帧,并从第二视频流中抽取第二帧;响应于第一视频流和第二视频流不同步,对第一视频流和第二视频流进行同步,得到同步结果,并从同步结果中抽取第一帧和第二帧。
上述的同步,可以是第一视频流和第二视频流的时间差小于或等于预设阈值,其中预设阈值可以是用户提前设置的一种能够体现第一视频流和第二视频流是否同步的时间阈值,具体数值不做限定,用户可根据实际的展示需求自行设定。
上述的不同步,可以是第一视频流和第二视频流的时间差大与预设阈值。
在一种可选的实施例中,首先可以基于第二预设帧和第三预设帧,确定第一视频流和第二视频流是否同步。因为第二预设帧中存储有第一视频流对应的第一时间戳,第三预设帧中存储有第二视频流对应的第二时间戳,所以可以获取第一时间戳和第二时间戳的差值,通过将时间差值与预设阈值作比较,可以基于比较结果确定第一视频流和第二视频流是否同步。
在另一种可选的实施例中,当时间差值小于或等于预设阈值时,可以确定第一视频流与第二视频流同步,则混流系统可以直接从第一视频流中抽取第一帧,从第二视频流中抽取第二帧。
在又一种可选的实施例中,当时间差值大于预设阈值时,可以确定第一视频流与第二视频流不同步,则较快的视频流可以重复发送相同视频帧和音频帧,即可以得到第一视频流和第二视频流的同步结果,在第一视频流和第二视频流同步后,再从同步结果中抽取第一帧和第二帧。
可选地,基于第二预设帧和第三预设帧,确定第一视频流和第二视频流是否同步包括:基于第二预设帧,确定第一视频流的第一播放时间;基于第三预设帧,确定第二视频流的第二播放时间;确定第一播放时间和第二播放时间的时间差;通过比较时间差和预设阈值,确定第一视频流和第二视频流是否同步。
上述的第一播放时间,可以是基于第二预设帧确定到的第一视频流对应的播放时间。
上述的第二播放时间,可以是基于第三预设帧确定到的第二视频流对应的播放时间。
在一种可选的实施例中,首先可以基于第二预设帧确定第一视频流对应的播放时间(即第一播放时间);其次可以基于第三预设帧确定第二视频流对应的播放时间(即第二播放时间)。
在另一种可选的实施例中,可以获取第一播放时间和第二播放时间的时间差,通过将时间差和预设阈值进行比较,可以确定第一视频流与第二视频流是否同步。其中,响应于时间差小于或等于预设阈值,可以确定第一视频流与第二视频流同步;响应于时间差大与预设阈值,可以确定第一视频流与第二视频流不同步。
混流进程对INPUT、MP信号定期插入SEI帧,保存并向下游输出服务器时间戳信息。下游混流进程(如ME信号任务、PP信号任务)收到INPUT、MP信号后,解封装时解析SEI帧,推算出每一音视频帧的理论播放时间。
音视频帧解码后,特效模块中的取帧逻辑将会按帧率间隔获取所需信号的音视频帧,组合成一组视频帧或音频帧,送入加工模块进行混画或混音加工。在此步骤中,取帧逻辑会判断各路信号的理论播放时间差距,取最小的理论播放时间作为基准播放时间。与基准播放时间差距在两帧以内的,认为视频流已经同步。否则,较快的视频流通过慢放的方式(即重复发送相同视频帧、音频帧)使基准视频流追上进度,从而实现同步。
可选地,该方法还包括如下之一:通过流媒体集群接收远程设备发送的第二视频流,并发送第二视频流至客户端;接收远程设备发送的第二视频流,并通过流媒体集群发送第二视频流至客户端;其中,流媒体集群通过预设协议接收或发送第二视频流,第二视频流由客户端进行播放。
上述的流媒体集群可以是开源低延迟视频传输协议(Secure ReliableTransport,SRT)集群,但不仅限于此。SRT集群的特点为安全、可靠、低延迟,解决了复杂的传输时序问题,可以做到支持高吞吐量文件和超清视频的实时传输。
上述的预设协议可以是SRT协议,但不仅限于此。
上述的远程设备可以是任意一种或多种,能够通过因特网(Internet)接入网络的方式,利用无线或电信号进行远程控制、远程操作的电子设备,在本实施例中不做具体限定。
在一种可选的实施例中,服务器可以通过SRT集群接受远程设备发送的第二视频流,并可以通过SRT集群将第二视频流发送至客户端。其中,SRT集群通过SRT协议接收或发送第二视频流,第二视频流由客户端进行播放。
在另一种可选的实施例中,服务器直接接收远程设备发送的第二视频流,并通过SRT集群发送第二视频流至客户端。其中,SRT集群通过SRT协议接收或发送第二视频流,第二视频流由客户端进行播放。
可选地,通过流媒体集群发送第二视频流至客户端包括:获取缓存中存储的第二视频流中视频帧集合,和视频帧集合对应的音频帧集合;发送视频帧集合和音频帧集合至客户端;发送第二视频流中其他视频帧和其他音频帧至客户端,其中,其他视频帧为第二视频流中视频帧集合之后的视频帧,其他音频帧为第二视频流中音频帧集合之后的音频帧。
上述的视频帧集合可以是第二视频流中的多个第二视频帧组成的集合;音频帧集合可以是第二视频流中的多个第二音频帧组成的集合。需要说明的是,视频帧集合与音频帧集合中的每个视频帧与每个音频帧相互对应。
在一种可选的实施例中,服务器首先可以通过SRT集群对多个视频流进行缓存,其次服务器可以获取缓存中存储的第二视频流中的视频帧集合,以及与视频帧集合对应的音频帧集合,并将视频帧集合和音频帧集合发送至客户端。
在另一种可选的实施例中,服务器还可以发送第二视频流中的其他视频帧和其他音频帧至客户端,其中,其他视频帧为第二视频流中视频帧集合之后的视频帧,其他音频帧为第二视频流中音频帧集合之后的音频帧。
SRT协议实现点到点低延迟传输,商用云厂商只提供SRT上行推流。因此实现SRT流媒体集群,同时支持使用SRT协议进行上行推流、下行分发。集群内部也使用SRT协议进行传输加速。
支持混合拓扑集群架构,支持跨地域多中心部署:对于单个媒体中心内部,以中心-边缘机构进行部署。边缘节点收流后向中心节点主动向推送。边缘节点接收拉流请求后,若该流存在于边缘,直接进行分发,否则回源中心节点获取源流进行分发。对于多个媒体中心,中心节点之间可以进行相互回源,实现跨地域收流分发,达到加速效果。
支持快速首屏接入,特别为含透明通道的视频流(见第三点叙述)进行支持。缓存各视频轨最近的一个GOP及缓存足够的音频帧,当用户接入时,先下发缓存的多个视频轨GOP,及对应视频时间戳区间的音频帧数据,后续再下发实时视频流数据。使播放器接收音视频数据后能快速解码出画面,无需等待下一个IDR帧。
可选地,对第一帧和第二帧进行混流,得到混流结果包括:对第一帧和第二帧进行处理,得到第一混流信号;对第一混流信号进行组合,得到混流结果。
上述的第一混流信号可以是混合效果信号(ME级信号),但不仅限于此。其中,ME信号可以选取多个INPUT、MP、ME信号源设置时画面缩放、裁剪、叠画、调整布局等处理。具备一路预览信号、一路输出信号,可以来回切换,支持切换效果,如图4所示,通过对MP信号和INOUT信号进行修改调整可以得到ME级信号。
在一种可选的实施例中,首先可以基于第一帧和第二帧得到MP信号和INOUT信号,其次可以对MP信号和INOUT信号进行修改调整得到ME级信号,最后,可以对ME级信号添加INPUT、MP、ME(除自身信号外)的信号作为基础信号及键信号(即修改和叠加的信号),即可得到混流结果。
可选地,该方法还包括:接收客户端发送的调整指令,其中,调整指令用于对第一混流信号进行调整;基于调整指令对第一混流信号进行调整,得到第二混流信号;对第二混流信号进行组合,得到混流结果。
上述的调整指令可以是对第一混流信号进行调整的指令,例如,可以是添加、修改和叠加等指令,但不仅限于此。
上述的第二混流信号可以是主监和预监信号(PP级信号),但不仅限于此。其中,PP级信号具备ME级信号所有能力。
在一种可选的实施例中,首先可以接收客户端发送的调整指令,其次可以基于调整指令对第一混流信号进行调整,即可得到第二混流信号;最后,可以对第二混流信号进行画面组合、布局调整等组合,即可得到混流结果。
INPUT、MP信号作为原始输入信号,不包含任何修改操作。
ME级信号,可以添加INPUT、MP、ME(除自身信号外)的信号作为基础信号及键信号(即修改和叠加的信号)。
PP级信号,可以添加INPUT、MP、ME所有信号作为基础信号及键信号。
实际使用中,导播人员可以在ME级编辑多路画面信号,PP级进行画面组合、布局调整。假设使用场景中,需要调整ME级信号,并需要将修改表现同步至其他引用该ME信号的画面。只需在对应ME信号中进行相应修改,无需修改其他信号,画面即可级联显示至其他信号。
可选地,该方法还包括:接收客户端发送的信号切换指令,其中,信号切换指令用于将混流结果从第一混流结果切换为第二混流结果;基于信号切换指令,对第一混流结果的当前帧进行阻塞;响应于第一混流结果中的所有帧均完成阻塞,将第一混流结果切换为第二混流结果。
上述的第一混流结果可以是预监信号(PVW信号),第二混流结果可以是主监信号(PGM信号)。其中,PVW信号是导播预览信号,PGM信号是节目输出信号。一般来说,导播人员在PVW信号调整好下一个画面内容,再将PVW信号切换到PGM信号给观众看,然后在PVW信号准备下一个画面。如图4所示,PVM信号为导播端看到的画面,PGM为发送给观众的视频画面。
在一种可选的实施例中,当接收到客户端发送的信号切换指令后,可以通过特效模块对第一混流结果的当前帧进行阻塞,当第一混流结果中的所有帧均完成阻塞后,可以通过切换处理器将第一混流结果切换为第二混流结果。
需要说明的是,对当前帧进行阻塞的模块不仅限于特效模块,还可以是任意一种能够对当前帧进行阻塞的处理器,模块、装置、系统以及服务器等,在本实施例中,以特效模块为例进行说明。
需要说明的是,对混流结果进行切换的处理器不仅限于切换处理器,还可以是任意一种能够对混流结果进行切换的处理器,模块、装置、系统以及服务器等,在本实施例中,以切换处理器为例进行说明。
可选地,将第一混流结果切换为第二混流结果包括:确定信号切换指令的第二指令类型;响应于第二指令类型为第一类型,将第一混流结果切换为第二混流结果。
上述的第二指令类型可以包括如下至少之一:直接切换操作和渐变切换操作。
上述的第一类型可以是直接切换操作。
在一种可选的实施例中,首先可以确定信号切换指令的第二指令类型,当第二指令类型为直接切换操作时,可以通过切换处理器取消阻塞后,即可实现将第一混流效果切换为第二混流效果。
可选地,响应于第二指令类型为第二类型,该方法还包括:对第二混流结果中的视频帧进行渐变处理,得到渐变结果;输出第一混流结果中的音频帧;响应于渐变结果的帧数满足预设帧数,将第一混流结果切换为第二混流结果。
在一种可选的实施例中,当第二指令类型为渐变操作时,首先可以通过渐变滤镜对第二混流视频中的视频帧进行渐变处理;其次可以通过切换处理器输出第一混流结果中的音频帧,当完成渐变所需视频帧的数量后,即可以将第一混流结果切换成第二混流结果。
需要说明的是,进行渐变处理的不仅限于渐变滤镜,还可以是任意一种能够对第二混流结果进行渐变处理的处理器,模块、装置、系统以及服务器等,在本实施例中,以渐变滤镜为例进行说明。
混流过程中存在两路音视频解码信号,即主监PGM和预监PVW信号,各自包含一路视频流和一路音频流。
在切换节点前,音视频数据分别经过解码模块、特效模块由不同线程进行解码和其他加工处理步骤。音视频帧会按固定的帧率间隔输入至特效模块。
当收到切换信号后,首批送入特效模块的音视频帧会被标注切换标记,并在特效模块输出前(即完成特效处理,但未投递给下游)的位置插入切换处理器。
切换处理器接收并检查特效处理后的音视频帧,若没有被标记,则继续往后投递。若检查到标记,则阻塞该路音频/视频输出,继续等待未阻塞其他音频或视频。当全部音视频输入都被阻塞后,即任务已达到音视频同步点,然后执行切换操作。
切换操作,对于直接切换操作,交换两路任务的音视频输出接口,切换处理器即可结束任务,取消阻塞,会正常向下游投递。对于渐变切换操作,则将视频数据投递至渐变滤镜,音频数据保持原输出投递。待渐变视频帧数已达到(即完成渐变所需视频帧数量),交换两路任务的音视频输出接口,结束切换处理器。
可选地,对第一帧和第二帧进行混流,得到混流结果包括:创建混流指令对应的混流进程;通过混流进程对第一帧和第二帧进行混流,得到混流结果。
上述的混流进程可以是一种负责根据任务具体参数进行视频流的加工处理,定时向任务调度节点汇报运行状态的进程。其中,任务调度节点,负责接收混流任务、调度任务执行、路由转发任务变更信令等工作。
在一种可选的实施例中,首先可以创建与混流指令对应的混流进程,其中,混流进程可以根据具体参数对视频流进行加工处理。其次。通过混流进程对第一帧和第二帧进行混流,即可得到混流结果。
流系统由任务调度节点和任务执行节点组成。任务调度节点,负责接收混流任务、调度任务执行、路由转发任务变更信令等工作。任务执行节点(又称混流进程),负责根据任务具体参数进行视频流的加工处理,定时向任务调度节点汇报运行状态。两类节点可分开部署,无部署上的依赖关系。
混流系统对云导播台工程进行任务拆分,对于每个INPUT、MP、ME、PP级任务分别启动混流进程执行对应视频流加工任务。
因此,任务执行节点可以根据并行的云导播台工程数量,适时扩缩容,保证任务运行正常,具有易扩展的特点。任务调度节点能够根据任务执行节点负载情况,合理分配任务至空闲节点运行,平衡集群负载,保证系统稳定性,避免压力集中至某一机器影响混流效果。当任务或节点所在机器发生异常,任务调度节点能够及时通过心跳发现,并将任务及时调度至可用的执行节点,自动恢复正常运行,减少人工干预和异常时间,具有高可用的特点。
图3根据本公开其中一实施例的一种可选的云导播台系统整体结构示意图。如图3所示,该系统包括云导播客户端30,基建层31,云导播业务系统32,混流系统33,SRT媒体服务34,拉流推转服务35,外部信号36,内容分发网络37,以及观众38.
导播客户端,为直播制作方使用的客户端,用于发送制作信令,以及监看视频信号。客户端提供导入上传音视频、图片等素材功能,导入远程直播信号,并关联项目输入。通过操作界面修改,可以对直播信号进行画面自由组合、裁剪、缩放等,音频音量调整、分离,直播信号切换等专业操作。而实际音视频处理并不在客户端进行,只是发送相应操作指令至服务端,将音画处理等计算量大的工作转移至服务端进行。客户端通过低规格视频流进行预览,预览效果与使用高规格视频流缩放至同等大小的质量几乎无异,因此节省大量客户端算力。以上多项优化实现对运行电脑要求大幅降低,以及实现远程制作目的。集成拉流转推等常用功能入口,实现快速搭建完整直播导播工程,降低使用门槛。
基建层,包含MongoDB、Redis、RabbitMQ等中间件,用于业务系统中数据的存储、事件的通知分发等工作。包含云存储系统,支持水平拓展,用于存储工程上传的音视频素材,解决存储空闲限制的问题。其中,MongoDB是一个基于分布式文件存储的数据库,由C++语言编写,旨在为WEB应用提供可扩展的高性能数据存储解决方案。Redis是一个开源的、使用C语言编写的、支持网络交互的、可基于内存也可持久化的key-value数据库。key-value为结构体数组。RabbitMQ是由erlang语言开发,基于AMQP协议(advanced message queue高级消息队列协议)实现的消息队列,它是一种应用程序之间的通信方法,消息队列在分布式系统开发中应用非常广泛。
云导播业务系统,处理来自导播客户端的信令。创建并记录工程的运行参数。支持导入输入信号列表、音视频上传信息。实时同步记录导播操作参数变化,如切换信号、调整视频布局、调音台控制、视频图像变换等参数,执行响应的业务逻辑内容。保证重新进入功能能够快速恢复退出前的状态。支持多工位、多工程同时并行。
混流系统,制作视频流的核心系统。根据上游输入的操作指令,进行处理响应。支持多种传输协议输入输出,支持输入多种格式的音视频文件、图片、带透明通道的视频等素材。对画面进行裁剪、缩放、布局调整,对音频进行混音、分离、音量调整,切换预监/主监、添加特效等专业操作。实现导播对画面、声音的制作要求。充分发挥云端算力优势,可以根据项目需求随时进行水平伸缩,解决导播过程中因硬件设备、算力等因素造成的限制。承担所有的音视频编解码、渲染等大量的计算工作,输出正式规格视频流的同时,另外生成对应的低规格视频流供客户端预览,大幅减轻客户端计算内容。
SRT媒体服务,是流媒体服务器程序,实现基于SRT协议对视频流进行低延迟传输、接收、分发、加速等功能。支持混合拓扑集群架构,支持跨地域多中心部署,为全球多地域直播联动、远程制作带来了基础支持。
拉流转推服务于对PGM信号(制作输出信号)进行输出操作,将视频流信号从SRT媒体服务转发到指定的内容分发网络(Content Delivery Network,CDN)推流地址,如向直播间、B站等外站,实现将输出信号向外部系统进行分发,最终呈现给观众。
外部信号,包括直播现场的摄像信号、主播开播信号,也可以是全球任意地点的直播输入信号等。这些信号可以直接通过SRT协议推送至SRT媒体服务,或混流系统进行拉流,适配标准输出参数后,转推至SRT媒体服务。实现全球多地联动直播。
内容分发网络CDN是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度的命中率,CDN的主要技术有内容存储和分发技术。
观众可以实时接收到服务器发送的混流视频,并在终端设备上观看。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本公开各个实施例所述的方法。
图4是根据本公开其中一实施例的一种可选的云导播客户端的操作界面的示意图,如图4所示,可以通过对MP和INPUT信号进行混流,可以输出ME级信号和PP级信号,以及可以通过对ME级信号和PP级信号进行切换处理,可以得到PVM信号和PGM信号,其中,PVM信号为导播客户端显示的信号,PGM信号最终输出给观众的节目信号。并且,图中显示的操作界面的底部,还有UI进度条。
在本实施例中还提供了一种视频流的处理装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“单元”、“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图5是根据本公开其中一实施例的视频流的处理装置的结构框图,部署于云服务器,如图5所示,该装置包括:第一接收模块50,用于接收客户端发送的操作指令,其中,操作指令用于对客户端当前播放的第一视频流进行操作;确定模块52,用于基于操作指令,确定第一视频流的运行状态及第一视频流中的目标帧;生成模块54,用于基于运行状态生成第一预设帧,其中,第一预设帧用于存储运行状态;发送模块56,用于发送目标帧和第一预设帧至客户端,其中,目标帧由客户端基于第一预设帧进行播放。
可选地,确定模块包括:第一确定单元,用于确定操作指令的第一指令类型和第一操作时刻;第二确定单元,用于基于第一指令类型和第一操作时刻,确定目标帧。
可选地,目标帧包括:目标视频帧和目标音频帧,其中,第二确定单元包括:第一确定子单元,用于响应于第一指令类型为停止播放,确定目标视频帧为第一视频流的第一帧视频帧,目标音频帧为静音音频帧;第二确定子单元,用于响应于第一指令类型为暂停播放,确定目标视频帧为第一视频流中第一操作时刻对应的视频帧,目标音频帧为静音音频帧;第三确定子单元,用于响应于第一指令类型为播放、播放进度调整或播放时钟调整,确定目标视频帧为第一视频流中第一操作时刻之后的视频帧,目标音频帧为第一视频流中第一操作时刻之后的音频帧。
可选地,第三子单元还用于响应于操作指令的第一指令类型为播放进度调整或播放时钟调整,第一预设帧还用于存储第一视频流的帧率、播放时长和目标帧的显示时间戳,其中,第一预设帧还用于控制客户端的操作界面中目标控件的展示参数。
可选地,该装置还包括:第二接收模块,用于接收客户端发送的混流指令,其中,混流指令用于对第一视频流和第二视频流进行混流;插入模块,用于按照预设周期在第一视频流中插入第二预设帧,第二视频流中插入第三预设帧,其中,第二预设帧用于存储第一视频流对应的第一时间戳,第三预设帧用于存储第二视频流对应的第二时间戳;抽取模块,用于基于第二预设帧和第三预设帧,从第一视频流中抽取第一帧,并从第二视频流中抽取第二帧;混流模块,用于对第一帧和第二帧进行混流,得到混流结果。
可选地,抽取模块包括:第一确定单元,用于基于第二预设帧和第三预设帧,确定第一视频流和第二视频流是否同步;抽取单元,用于响应于第一视频流和第二视频流同步,从第一视频流中抽取第一帧,并从第二视频流中抽取第二帧;同步及抽取单元,用于响应于第一视频流和第二视频流不同步,对第一视频流和第二视频流进行同步,得到同步结果,并从同步结果中抽取第一帧和第二帧。
可选地,第一确定单元包括:第一确定子单元,用于基于第二预设帧,确定第一视频流的第一播放时间;第二确定子单元,用于基于第三预设帧,确定第二视频流的第二播放时间;第三确定子单元,用于确定第一播放时间和第二播放时间的时间差;第四确定子单元,用于通过比较时间差和预设阈值,确定第一视频流和第二视频流是否同步。
可选地,第二接收模块包括:第一接收及发送单元,用于通过流媒体集群接收远程设备发送的第二视频流,并发送第二视频流至客户端;第二接收及发送单元,用于接收远程设备发送的第二视频流,并通过流媒体集群发送第二视频流至客户端;其中,流媒体集群通过预设协议接收或发送第二视频流,第二视频流由客户端进行播放。
可选地,第二接收模块还包括:获取单元,用于获取缓存中存储的第二视频流中视频帧集合,和视频帧集合对应的音频帧集合;第一发送单元,用于发送视频帧集合和音频帧集合至客户端;第二发送单元,用于发送第二视频流中其他视频帧和其他音频帧至客户端,其中,其他视频帧为第二视频流中视频帧集合之后的视频帧,其他音频帧为第二视频流中音频帧集合之后的音频帧。
可选地,混流模块包括:处理单元,用于对第一帧和第二帧进行处理,得到第一混流信号;第一组合单元,用于对第一混流信号进行组合,得到混流结果。
可选地,混流模块还包括:接收单元,用于接收客户端发送的调整指令,其中,调整指令用于对第一混流信号进行调整;调整单元,用于基于调整指令对第一混流信号进行调整,得到第二混流信号;第二组合单元,用于对第二混流信号进行组合,得到混流结果。
可选地,第二接收模块还包括:接收单元,用于接收客户端发送的信号切换指令,其中,信号切换指令用于将混流结果从第一混流结果切换为第二混流结果;阻塞单元,用于基于信号切换指令,对第一混流结果的当前帧进行阻塞;切换单元,用于响应于第一混流结果中的所有帧均完成阻塞,将第一混流结果切换为第二混流结果。
可选地,切换单元包括:确定子单元,用于确定信号切换指令的第二指令类型;第一切换子单元,用于响应于第二指令类型为第一类型,将第一混流结果切换为第二混流结果。
可选地,切换单元还包括:渐变处理子单元,用于对第二混流结果中的视频帧进行渐变处理,得到渐变结果;输出子单元,用于输出第一混流结果中的音频帧;第二切换子单元,用于响应于渐变结果的帧数满足预设帧数,将第一混流结果切换为第二混流结果。
可选地,混流模块还包括:创建单元,用于创建混流指令对应的混流进程;混流单元,用于通过混流进程对第一帧和第二帧进行混流,得到混流结果。
需要说明的是,上述各个单元、模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述单元、模块均位于同一处理器中;或者,上述各个单元、模块以任意组合的形式分别位于不同的处理器中。
本公开的实施例还提供了一种视频流的处理系统,包括:客户端,用于播放第一视频流,并生成操作指令,其中,操作指令用于对第一视频流进行操作;云服务器,与客户端通信连接,用于基于操作指令,确定第一视频流的运行状态及第一视频流中的目标帧,基于运行状态生成第一预设帧,并发送目标帧和第一预设帧至客户端,其中,第一预设帧用于存储运行状态;客户端还用于基于第一预设帧对目标帧进行播放。
本公开的实施例还提供了一种非易失性存储介质,该非易失性存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述非易失性存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
可选地,在本实施例中,上述非易失性存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。
可选地,在本实施例中,上述非易失性存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,接收客户端发送的操作指令,其中,操作指令用于对客户端当前播放的第一视频流进行操作;
S2,基于操作指令,确定第一视频流的运行状态及第一视频流中的目标帧;
S3,基于运行状态生成第一预设帧,其中,第一预设帧用于存储运行状态;
S4,发送目标帧和第一预设帧至客户端,其中,目标帧由客户端基于第一预设帧进行播放。
可选地,上述非易失性存储介质还被设置为存储用于执行以下步骤的程序代码:确定操作指令的第一指令类型和第一操作时刻;基于第一指令类型和第一操作时刻,确定目标帧。
可选地,上述非易失性存储介质还被设置为存储用于执行以下步骤的程序代码:响应于第一指令类型为停止播放,确定目标视频帧为第一视频流的第一帧视频帧,目标音频帧为静音音频帧;响应于第一指令类型为暂停播放,确定目标视频帧为第一视频流中第一操作时刻对应的视频帧,目标音频帧为静音音频帧;响应于第一指令类型为播放、播放进度调整或播放时钟调整,确定目标视频帧为第一视频流中第一操作时刻之后的视频帧,目标音频帧为第一视频流中第一操作时刻之后的音频帧。
可选地,上述非易失性存储介质还被设置为存储用于执行以下步骤的程序代码:响应于操作指令的第一指令类型为播放进度调整或播放时钟调整,第一预设帧还用于存储第一视频流的帧率、播放时长和目标帧的显示时间戳,其中,第一预设帧还用于控制客户端的操作界面中目标控件的展示参数。
可选地,上述非易失性存储介质还被设置为存储用于执行以下步骤的程序代码:接收客户端发送的混流指令,其中,混流指令用于对第一视频流和第二视频流进行混流;按照预设周期在第一视频流中插入第二预设帧,第二视频流中插入第三预设帧,其中,第二预设帧用于存储第一视频流对应的第一时间戳,第三预设帧用于存储第二视频流对应的第二时间戳;基于第二预设帧和第三预设帧,从第一视频流中抽取第一帧,并从第二视频流中抽取第二帧;对第一帧和第二帧进行混流,得到混流结果。
可选地,上述非易失性存储介质还被设置为存储用于执行以下步骤的程序代码:基于第二预设帧和第三预设帧,确定第一视频流和第二视频流是否同步;响应于第一视频流和第二视频流同步,从第一视频流中抽取第一帧,并从第二视频流中抽取第二帧;响应于第一视频流和第二视频流不同步,对第一视频流和第二视频流进行同步,得到同步结果,并从同步结果中抽取第一帧和第二帧。
可选地,上述非易失性存储介质还被设置为存储用于执行以下步骤的程序代码:基于第二预设帧,确定第一视频流的第一播放时间;基于第三预设帧,确定第二视频流的第二播放时间;确定第一播放时间和第二播放时间的时间差;通过比较时间差和预设阈值,确定第一视频流和第二视频流是否同步。
可选地,上述非易失性存储介质还被设置为存储用于执行以下步骤的程序代码:通过流媒体集群接收远程设备发送的第二视频流,并发送第二视频流至客户端;接收远程设备发送的第二视频流,并通过流媒体集群发送第二视频流至客户端;其中,流媒体集群通过预设协议接收或发送第二视频流,第二视频流由客户端进行播放。
可选地,上述非易失性存储介质还被设置为存储用于执行以下步骤的程序代码:获取缓存中存储的第二视频流中视频帧集合,和视频帧集合对应的音频帧集合;发送视频帧集合和音频帧集合至客户端;发送第二视频流中其他视频帧和其他音频帧至客户端,其中,其他视频帧为第二视频流中视频帧集合之后的视频帧,其他音频帧为第二视频流中音频帧集合之后的音频帧。
可选地,上述非易失性存储介质还被设置为存储用于执行以下步骤的程序代码:对第一帧和第二帧进行处理,得到第一混流信号;对第一混流信号进行组合,得到混流结果。
可选地,上述非易失性存储介质还被设置为存储用于执行以下步骤的程序代码:接收客户端发送的调整指令,其中,调整指令用于对第一混流信号进行调整;基于调整指令对第一混流信号进行调整,得到第二混流信号;对第二混流信号进行组合,得到混流结果。
可选地,上述非易失性存储介质还被设置为存储用于执行以下步骤的程序代码:接收客户端发送的信号切换指令,其中,信号切换指令用于将混流结果从第一混流结果切换为第二混流结果;基于信号切换指令,对第一混流结果的当前帧进行阻塞;响应于第一混流结果中的所有帧均完成阻塞,将第一混流结果切换为第二混流结果。
可选地,上述非易失性存储介质还被设置为存储用于执行以下步骤的程序代码:确定信号切换指令的第二指令类型;响应于第二指令类型为第一类型,将第一混流结果切换为第二混流结果。
可选地,上述非易失性存储介质还被设置为存储用于执行以下步骤的程序代码:对第二混流结果中的视频帧进行渐变处理,得到渐变结果;输出第一混流结果中的音频帧;响应于渐变结果的帧数满足预设帧数,将第一混流结果切换为第二混流结果。
可选地,上述非易失性存储介质还被设置为存储用于执行以下步骤的程序代码:创建混流指令对应的混流进程;通过混流进程对第一帧和第二帧进行混流,得到混流结果。
在该实施例的非易失性存储介质中,提供了一种视频流的处理方法的技术方案。采用接收客户端发送的操作指令,其中,操作指令用于对客户端当前播放的第一视频流进行操作;基于操作指令,确定第一视频流的运行状态及第一视频流中的目标帧;基于运行状态生成第一预设帧,其中,第一预设帧用于存储运行状态;发送目标帧和第一预设帧至客户端,其中,目标帧由客户端基于第一预设帧进行播放的方式。通过服务器实时确定第一视频流的运行状态以及第一视频流中的目标帧,达到了可以实时同步服务器端与客户端的显示画面的目的,从而实现了提高服务器端与客户端的显示画面的同步率的技术效果,进而解决了相关技术中服务器端与客户端的显示画面同步率低的技术问题。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个计算机可读存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
在本申请的示例性实施例中,计算机可读存储介质上存储有能够实现本实施例上述方法的程序产品。在一些可能的实施方式中,本公开实施例的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本实施例上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。
根据本公开的实施方式的用于实现上述方法的程序产品,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本公开实施例的程序产品不限于此,在本公开实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
上述程序产品可以采用一个或多个计算机可读介质的任意组合。该计算机可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列举)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
需要说明的是,计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
本公开的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,接收客户端发送的操作指令,其中,操作指令用于对客户端当前播放的第一视频流进行操作;
S2,基于操作指令,确定第一视频流的运行状态及第一视频流中的目标帧;
S3,基于运行状态生成第一预设帧,其中,第一预设帧用于存储运行状态;
S4,发送目标帧和第一预设帧至客户端,其中,目标帧由客户端基于第一预设帧进行播放。
可选地,上述处理器还可以被设置为通过计算机程序执行以下步骤:确定操作指令的第一指令类型和第一操作时刻;基于第一指令类型和第一操作时刻,确定目标帧。
可选地,上述处理器还可以被设置为通过计算机程序执行以下步骤:响应于第一指令类型为停止播放,确定目标视频帧为第一视频流的第一帧视频帧,目标音频帧为静音音频帧;响应于第一指令类型为暂停播放,确定目标视频帧为第一视频流中第一操作时刻对应的视频帧,目标音频帧为静音音频帧;响应于第一指令类型为播放、播放进度调整或播放时钟调整,确定目标视频帧为第一视频流中第一操作时刻之后的视频帧,目标音频帧为第一视频流中第一操作时刻之后的音频帧。
可选地,上述处理器还可以被设置为通过计算机程序执行以下步骤:响应于操作指令的第一指令类型为播放进度调整或播放时钟调整,第一预设帧还用于存储第一视频流的帧率、播放时长和目标帧的显示时间戳,其中,第一预设帧还用于控制客户端的操作界面中目标控件的展示参数。
可选地,上述处理器还可以被设置为通过计算机程序执行以下步骤:接收客户端发送的混流指令,其中,混流指令用于对第一视频流和第二视频流进行混流;按照预设周期在第一视频流中插入第二预设帧,第二视频流中插入第三预设帧,其中,第二预设帧用于存储第一视频流对应的第一时间戳,第三预设帧用于存储第二视频流对应的第二时间戳;基于第二预设帧和第三预设帧,从第一视频流中抽取第一帧,并从第二视频流中抽取第二帧;对第一帧和第二帧进行混流,得到混流结果。
可选地,上述处理器还可以被设置为通过计算机程序执行以下步骤:基于第二预设帧和第三预设帧,确定第一视频流和第二视频流是否同步;响应于第一视频流和第二视频流同步,从第一视频流中抽取第一帧,并从第二视频流中抽取第二帧;响应于第一视频流和第二视频流不同步,对第一视频流和第二视频流进行同步,得到同步结果,并从同步结果中抽取第一帧和第二帧。
可选地,上述处理器还可以被设置为通过计算机程序执行以下步骤:基于第二预设帧,确定第一视频流的第一播放时间;基于第三预设帧,确定第二视频流的第二播放时间;确定第一播放时间和第二播放时间的时间差;通过比较时间差和预设阈值,确定第一视频流和第二视频流是否同步。
可选地,上述处理器还可以被设置为通过计算机程序执行以下步骤:通过流媒体集群接收远程设备发送的第二视频流,并发送第二视频流至客户端;接收远程设备发送的第二视频流,并通过流媒体集群发送第二视频流至客户端;其中,流媒体集群通过预设协议接收或发送第二视频流,第二视频流由客户端进行播放。
可选地,上述处理器还可以被设置为通过计算机程序执行以下步骤:获取缓存中存储的第二视频流中视频帧集合,和视频帧集合对应的音频帧集合;发送视频帧集合和音频帧集合至客户端;发送第二视频流中其他视频帧和其他音频帧至客户端,其中,其他视频帧为第二视频流中视频帧集合之后的视频帧,其他音频帧为第二视频流中音频帧集合之后的音频帧。
可选地,上述处理器还可以被设置为通过计算机程序执行以下步骤:对第一帧和第二帧进行处理,得到第一混流信号;对第一混流信号进行组合,得到混流结果。
可选地,上述处理器还可以被设置为通过计算机程序执行以下步骤:接收客户端发送的调整指令,其中,调整指令用于对第一混流信号进行调整;基于调整指令对第一混流信号进行调整,得到第二混流信号;对第二混流信号进行组合,得到混流结果。
可选地,上述处理器还可以被设置为通过计算机程序执行以下步骤:接收客户端发送的信号切换指令,其中,信号切换指令用于将混流结果从第一混流结果切换为第二混流结果;基于信号切换指令,对第一混流结果的当前帧进行阻塞;响应于第一混流结果中的所有帧均完成阻塞,将第一混流结果切换为第二混流结果。
可选地,上述处理器还可以被设置为通过计算机程序执行以下步骤:确定信号切换指令的第二指令类型;响应于第二指令类型为第一类型,将第一混流结果切换为第二混流结果。
可选地,上述处理器还可以被设置为通过计算机程序执行以下步骤:对第二混流结果中的视频帧进行渐变处理,得到渐变结果;输出第一混流结果中的音频帧;响应于渐变结果的帧数满足预设帧数,将第一混流结果切换为第二混流结果。
可选地,上述处理器还可以被设置为通过计算机程序执行以下步骤:创建混流指令对应的混流进程;通过混流进程对第一帧和第二帧进行混流,得到混流结果。
在该实施例的电子装置中,提供了一种视频流的处理方法的技术方案。接收客户端发送的操作指令,其中,操作指令用于对客户端当前播放的第一视频流进行操作;基于操作指令,确定第一视频流的运行状态及第一视频流中的目标帧;基于运行状态生成第一预设帧,其中,第一预设帧用于存储运行状态;发送目标帧和第一预设帧至客户端,其中,目标帧由客户端基于第一预设帧进行播放的方式。容易注意到的是,通过服务器实时确定第一视频流的运行状态以及第一视频流中的目标帧,达到了可以实时同步服务器端与客户端的显示画面的目的,从而实现了提高服务器端与客户端的显示画面的同步率的技术效果,进而解决了相关技术中服务器端与客户端的显示画面同步率低的技术问题。
图6是根据本公开其中一实施例的一种电子装置的示意图。如图6所示,电子装置600仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图6所示,电子装置600以通用计算设备的形式表现。电子装置600的组件可以包括但不限于:上述至少一个处理器610、上述至少一个存储器620、连接不同系统组件(包括存储器620和处理器610)的总线630和显示器640。
其中,上述存储器620存储有程序代码,所述程序代码可以被处理器610执行,使得处理器610执行本申请实施例的上述方法部分中描述的根据本公开各种示例性实施方式的步骤。
存储器620可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)6201和/或高速缓存存储单元6202,还可以进一步包括只读存储单元(ROM)6203,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。
在一些实例中,存储器620还可以包括具有一组(至少一个)程序模块6205的程序/实用工具6204,这样的程序模块6205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。存储器620可进一步包括相对于处理器610远程设置的存储器,这些远程存储器可以通过网络连接至电子装置600。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
总线630可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理器610或者使用多种总线结构中的任意总线结构的局域总线。
显示器640可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与电子装置600的用户界面进行交互。
可选地,电子装置600也可以与一个或多个外部设备700(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子装置600交互的设备通信,和/或与使得该电子装置600能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口650进行。并且,电子装置600还可以通过网络适配器660与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图6所示,网络适配器660通过总线630与电子装置600的其它模块通信。应当明白,尽管图6中未示出,可以结合电子装置600使用其它硬件和/或软件模块,可以包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
上述电子装置600还可以包括:键盘、光标控制设备(如鼠标)、输入/输出接口(I/O接口)、网络接口、电源和/或相机。
本领域普通技术人员可以理解,图6所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,电子装置600还可包括比图6中所示更多或者更少的组件,或者具有与图1所示不同的配置。存储器620可用于存储计算机程序及对应的数据,如本公开实施例中的视频流的处理方法对应的计算机程序及对应的数据。处理器610通过运行存储在存储器620内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的视频流的处理方法。
上述本公开实施例序号仅仅为了描述,不代表实施例的优劣。
在本公开的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本公开的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本公开原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本公开的保护范围。
Claims (19)
1.一种视频流的处理方法,其特征在于,应用于云服务器,所述方法包括:
接收客户端发送的操作指令,其中,所述操作指令用于对所述客户端当前播放的第一视频流进行操作,所述第一视频流为直播视频流;
基于所述操作指令,确定所述第一视频流的运行状态及所述第一视频流中的目标帧;
基于所述运行状态生成第一预设帧,其中,所述第一预设帧包括如下至少之一:所述运行状态,所述客户端的进度条位置调整信息和控件操作信息;
发送所述目标帧和所述第一预设帧至所述客户端,其中,所述目标帧由所述客户端基于所述第一预设帧进行播放;
其中,所述第一预设帧包括所述运行状态,所述目标帧由所述客户端基于所述运行状态持续进行播放;或者,
所述第一预设帧包括所述进度条位置调整信息和所述控件操作信息,所述客户端的用户界面中的进度条位置,由所述客户端基于所述进度条位置调整信息进行调整,以及所述用户界面中的控件,由所述客户端基于所述控件操作信息进行操作。
2.根据权利要求1所述的方法,其特征在于,基于所述操作指令,确定所述第一视频流中的目标帧包括:
确定所述操作指令的第一指令类型和第一操作时刻;
基于所述第一指令类型和所述第一操作时刻,确定所述目标帧。
3.根据权利要求2所述的方法,其特征在于,所述目标帧包括:目标视频帧和目标音频帧,其中,基于所述第一指令类型和所述第一操作时刻,确定所述目标帧包括:
响应于所述第一指令类型为停止播放,确定所述目标视频帧为所述第一视频流的第一帧视频帧,所述目标音频帧为静音音频帧;
响应于所述第一指令类型为暂停播放,确定所述目标视频帧为所述第一视频流中所述第一操作时刻对应的视频帧,所述目标音频帧为静音音频帧;
响应于所述第一指令类型为播放、播放进度调整或播放时钟调整,确定所述目标视频帧为所述第一视频流中所述第一操作时刻之后的视频帧,所述目标音频帧为所述第一视频流中所述第一操作时刻之后的音频帧。
4.根据权利要求1所述的方法,其特征在于,响应于所述操作指令的第一指令类型为播放进度调整或播放时钟调整,所述第一预设帧还用于存储所述第一视频流的帧率、播放时长和所述目标帧的显示时间戳,其中,所述第一预设帧还用于控制所述客户端的操作界面中目标控件的展示参数。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收所述客户端发送的混流指令,其中,所述混流指令用于对所述第一视频流和第二视频流进行混流;
按照预设周期在所述第一视频流中插入第二预设帧,所述第二视频流中插入第三预设帧,其中,所述第二预设帧用于存储所述第一视频流对应的第一时间戳,所述第三预设帧用于存储所述第二视频流对应的第二时间戳;
基于所述第二预设帧和所述第三预设帧,从所述第一视频流中抽取第一帧,并从所述第二视频流中抽取第二帧;
对所述第一帧和所述第二帧进行混流,得到混流结果。
6.根据权利要求5所述的方法,其特征在于,基于所述第二预设帧和所述第三预设帧,从所述第一视频流中抽取第一帧,并从所述第二视频流中抽取第二帧包括:
基于所述第二预设帧和所述第三预设帧,确定所述第一视频流和所述第二视频流是否同步;
响应于所述第一视频流和所述第二视频流同步,从所述第一视频流中抽取所述第一帧,并从所述第二视频流中抽取所述第二帧;
响应于所述第一视频流和所述第二视频流不同步,对所述第一视频流和所述第二视频流进行同步,得到同步结果,并从所述同步结果中抽取所述第一帧和所述第二帧。
7.根据权利要求6所述的方法,其特征在于,基于所述第二预设帧和所述第三预设帧,确定所述第一视频流和所述第二视频流是否同步包括:
基于所述第二预设帧,确定所述第一视频流的第一播放时间;
基于所述第三预设帧,确定所述第二视频流的第二播放时间;
确定所述第一播放时间和所述第二播放时间的时间差;
通过比较所述时间差和预设阈值,确定所述第一视频流和所述第二视频流是否同步。
8.根据权利要求5所述的方法,其特征在于,所述方法还包括如下之一:
通过流媒体集群接收远程设备发送的所述第二视频流,并发送所述第二视频流至所述客户端;
接收所述远程设备发送的所述第二视频流,并通过所述流媒体集群发送所述第二视频流至所述客户端;
其中,所述流媒体集群通过预设协议接收或发送所述第二视频流,所述第二视频流由所述客户端进行播放。
9.根据权利要求8所述的方法,其特征在于,通过流媒体集群发送所述第二视频流至所述客户端包括:
获取缓存中存储的所述第二视频流中视频帧集合,和所述视频帧集合对应的音频帧集合;
发送视频帧集合和所述音频帧集合至所述客户端;
发送所述第二视频流中其他视频帧和其他音频帧至所述客户端,其中,所述其他视频帧为所述第二视频流中所述视频帧集合之后的视频帧,所述其他音频帧为所述第二视频流中所述音频帧集合之后的音频帧。
10.根据权利要求5所述的方法,其特征在于,对所述第一帧和所述第二帧进行混流,得到混流结果包括:
对所述第一帧和所述第二帧进行处理,得到第一混流信号;
对所述第一混流信号进行组合,得到所述混流结果。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
接收所述客户端发送的调整指令,其中,所述调整指令用于对所述第一混流信号进行调整;
基于调整指令对所述第一混流信号进行调整,得到第二混流信号;
对所述第二混流信号进行组合,得到所述混流结果。
12.根据权利要求5所述的方法,其特征在于,所述方法还包括:
接收所述客户端发送的信号切换指令,其中,所述信号切换指令用于将所述混流结果从第一混流结果切换为第二混流结果;
基于所述信号切换指令,对所述第一混流结果的当前帧进行阻塞;
响应于所述第一混流结果中的所有帧均完成阻塞,将所述第一混流结果切换为所述第二混流结果。
13.根据权利要求12所述的方法,其特征在于,将所述第一混流结果切换为所述第二混流结果包括:
确定所述信号切换指令的第二指令类型;
响应于所述第二指令类型为第一类型,将所述第一混流结果切换为所述第二混流结果。
14.根据权利要求13所述的方法,其特征在于,响应于所述第二指令类型为第二类型,所述方法还包括:
对所述第二混流结果中的视频帧进行渐变处理,得到渐变结果;
输出所述第一混流结果中的音频帧;
响应于所述渐变结果的帧数满足预设帧数,将所述第一混流结果切换为所述第二混流结果。
15.根据权利要求5所述的方法,其特征在于,对所述第一帧和所述第二帧进行混流,得到混流结果包括:
创建所述混流指令对应的混流进程;
通过所述混流进程对所述第一帧和所述第二帧进行混流,得到所述混流结果。
16.一种视频流的处理装置,其特征在于,部署于云服务器,所述装置包括:
第一接收模块,用于接收客户端发送的操作指令,其中,所述操作指令用于对所述客户端当前播放的第一视频流进行操作,所述第一视频流为直播视频流;
确定模块,用于基于所述操作指令,确定所述第一视频流的运行状态及所述第一视频流中的目标帧;
生成模块,用于基于所述运行状态生成第一预设帧,其中,所述第一预设帧包括如下至少之一:所述运行状态,所述客户端的进度条位置调整信息和控件操作信息;
发送模块,用于发送所述目标帧和所述第一预设帧至所述客户端,其中,所述目标帧由所述客户端基于所述第一预设帧进行播放;
其中,所述第一预设帧包括所述运行状态,所述目标帧由所述客户端基于所述运行状态持续进行播放;或者,
所述第一预设帧包括所述进度条位置调整信息和所述控件操作信息,所述客户端的用户界面中的进度条位置,由所述客户端基于所述进度条位置调整信息进行调整,以及所述用户界面中的控件,由所述客户端基于所述控件操作信息进行操作。
17.一种视频流的处理系统,其特征在于,包括:
客户端,用于播放第一视频流,并生成操作指令,其中,所述操作指令用于对所述第一视频流进行操作,所述第一视频流为直播视频流;
云服务器,与客户端通信连接,用于基于所述操作指令,确定所述第一视频流的运行状态及所述第一视频流中的目标帧,基于所述运行状态生成第一预设帧,并发送所述目标帧和所述第一预设帧至所述客户端,其中,所述第一预设帧包括如下至少之一:所述运行状态,所述客户端的进度条位置调整信息和控件操作信息;
所述客户端还用于基于所述第一预设帧对所述目标帧进行播放;
其中,所述第一预设帧包括所述运行状态,所述客户端还用于基于所述运行状态对所述目标帧持续进行播放;或者,
所述第一预设帧包括所述进度条位置调整信息和所述控件操作信息,所述客户端还用于基于所述进度条位置调整信息,对所述客户端的用户界面中的进度条位置进行调整,以及基于所述控件操作信息,对所述用户界面中的控件进行操作。
18.一种非易失性存储介质,其特征在于,所述非易失性存储介质中存储有计算机程序,其中,所述计算机程序被设置为被处理器运行时执行权利要求1至16任一项中所述的方法。
19.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行权利要求1至16任一项中所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210822272.4A CN115243063B (zh) | 2022-07-13 | 2022-07-13 | 视频流的处理方法、处理装置以及处理系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210822272.4A CN115243063B (zh) | 2022-07-13 | 2022-07-13 | 视频流的处理方法、处理装置以及处理系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115243063A CN115243063A (zh) | 2022-10-25 |
CN115243063B true CN115243063B (zh) | 2024-04-19 |
Family
ID=83674209
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210822272.4A Active CN115243063B (zh) | 2022-07-13 | 2022-07-13 | 视频流的处理方法、处理装置以及处理系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115243063B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113596568B (zh) * | 2021-07-01 | 2023-10-17 | 广州虎牙科技有限公司 | 视频播放方法、装置、智能终端及计算机可读存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104519310A (zh) * | 2013-09-29 | 2015-04-15 | 深圳锐取信息技术股份有限公司 | 一种远程导播控制系统 |
CN107995537A (zh) * | 2017-12-22 | 2018-05-04 | 威创集团股份有限公司 | 视频播放控制方法和系统 |
CN108495141A (zh) * | 2018-03-05 | 2018-09-04 | 网宿科技股份有限公司 | 一种音视频的合成方法及系统 |
CN110234031A (zh) * | 2018-03-05 | 2019-09-13 | 青岛海信传媒网络技术有限公司 | 一种媒体播放的方法及装置 |
CN112929580A (zh) * | 2021-01-14 | 2021-06-08 | 北京奇艺世纪科技有限公司 | 多视角视频播放方法、装置、系统、服务器和客户端设备 |
CN113923530A (zh) * | 2021-10-18 | 2022-01-11 | 北京字节跳动网络技术有限公司 | 一种互动信息展示方法、装置、电子设备及存储介质 |
-
2022
- 2022-07-13 CN CN202210822272.4A patent/CN115243063B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104519310A (zh) * | 2013-09-29 | 2015-04-15 | 深圳锐取信息技术股份有限公司 | 一种远程导播控制系统 |
CN107995537A (zh) * | 2017-12-22 | 2018-05-04 | 威创集团股份有限公司 | 视频播放控制方法和系统 |
CN108495141A (zh) * | 2018-03-05 | 2018-09-04 | 网宿科技股份有限公司 | 一种音视频的合成方法及系统 |
CN110234031A (zh) * | 2018-03-05 | 2019-09-13 | 青岛海信传媒网络技术有限公司 | 一种媒体播放的方法及装置 |
CN112929580A (zh) * | 2021-01-14 | 2021-06-08 | 北京奇艺世纪科技有限公司 | 多视角视频播放方法、装置、系统、服务器和客户端设备 |
CN113923530A (zh) * | 2021-10-18 | 2022-01-11 | 北京字节跳动网络技术有限公司 | 一种互动信息展示方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115243063A (zh) | 2022-10-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108769786B (zh) | 一种合成音视频数据流的方法和装置 | |
US20200230499A1 (en) | Distributed sample-based game profiling with game metadata and metrics and gaming api platform supporting third-party content | |
US11025978B2 (en) | Dynamic video image synthesis using multiple cameras and remote control | |
US10567466B2 (en) | Co-streaming within a live interactive video game streaming service | |
KR101454136B1 (ko) | 스트리밍 디지털 컨텐츠의 동기화된 재생을 위한 시스템 및 방법 | |
US9473548B1 (en) | Latency reduction in streamed content consumption | |
US9832516B2 (en) | Systems and methods for multiple device interaction with selectably presentable media streams | |
CN111277845B (zh) | 游戏直播控制方法及装置、计算机存储介质及电子设备 | |
KR20120098808A (ko) | 온라인 미디어 프리뷰 시스템 및 그 방법 | |
JP2013021574A (ja) | 生成装置、配信サーバ、生成方法、再生装置、再生方法、再生システム、生成プログラム、再生プログラム、記録媒体およびデータ構造 | |
CN114827679B (zh) | 显示设备和音画同步方法 | |
CN115243063B (zh) | 视频流的处理方法、处理装置以及处理系统 | |
CN113424553A (zh) | 用于响应于用户选择而推进交互式媒体项目的重放的技术 | |
US20230074478A1 (en) | Video distribution device, video distribution method, and video distribution program | |
WO2023284428A1 (zh) | 直播视频的播放方法、装置、电子设备、存储介质及程序产品 | |
US20180098099A1 (en) | Real-time data updates from a run down system for a video broadcast | |
WO2024104333A1 (zh) | 演播画面的处理方法、装置、电子设备及存储介质 | |
CN112169319B (zh) | 应用程序的启动方法、装置、设备及存储介质 | |
JP2022042997A (ja) | リアルタイムライブストリーミングで遅延を最小化するための方法、サーバ、およびコンピュータ読み取り可能な記録媒体 | |
CN113453059B (zh) | 云游戏数据处理方法、装置、设备以及介质 | |
CN115250357A (zh) | 终端设备、视频处理方法和电子设备 | |
CN114079803A (zh) | 一种基于虚拟现实的音乐直播方法和系统 | |
CN115329122A (zh) | 音频信息处理方法、音频信息呈现方法及装置 | |
CN115811629A (zh) | 视频播控方法、装置、设备及存储介质 | |
CN117041621A (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 |