一种网课直播拼接推流方法、系统及介质与流程

专利2024-06-12  74


本发明涉及计算机网络技术领域,尤其涉及一种网课直播拼接推流方法、系统及介质。



背景技术:

当前的在线网课直播,直播内容通常包括教师视频区域和ppt课件视频区域,直播过程中需要将直播内容通过内容分发网络contentdeliverynetwork(以下简称cdn)直播给用户观看。但由于技术原因,在cdn层面两路视频流是不做额外处理的,导致学生在观看时拉取的两路视频流是不同步的。

目前的解决方案是使用混流服务器先将两路视频进行合并成为一路视频,再进行推流到cdn,虽能解决同步的问题,但是在混流服务器进行混流操作会产生额外的成本开销,增加大量的直播成本。

因此,现有技术还有待于改进和发展。



技术实现要素:

鉴于上述现有技术的不足,本发明的目的在于提供一种网课直播拼接推流方法、系统及介质,旨在解决现有技术中的无法在保证两路视频流直播不同步问题的同时控制直播成本的问题。

本发明的技术方案如下:

一种网课直播拼接推流方法,其包括如下步骤:

获取本地直播端的第一视频流和第二视频流;

将所述第一视频流和第二视频流按时序逐帧拼接后输出混合视频流并推送至直播服务器;

当观众终端对所述本地直播端对应的直播间发起直播访问请求时,接收所述直播服务器推送的混合视频流,并对所述混合视频流按时序逐帧分离后显示所述第一视频流和第二视频流。

所述的网课直播拼接推流方法中,所述将所述第一视频流和第二视频流按时序逐帧拼接后输出混合视频流并推送至直播服务器,包括:

按时序逐帧获取所述第一视频流的第一视频帧图像和第二视频流的第二视频帧图像;

根据预设拼接位置信息对所述第一视频帧图像和第二视频帧图像进行一一对应拼接后输出混合视频流并推送至直播服务器。

所述的网课直播拼接推流方法中,所述根据预设拼接位置信息对所述第一视频帧图像和第二视频帧图像进行一一对应拼接后输出混合视频流并推送至直播服务器,包括:

对所述第一视频帧图像和第二视频帧图像按时序一一对应拼接生成混合帧图像;

根据所述预设拼接位置信息分别设置所述第一视频帧图像和第二视频帧图像在所述混合帧图像上的显示位置后输出混合视频流并推送至直播服务器。

所述的网课直播拼接推流方法中,所述对所述混合视频流按时序逐帧分离后显示所述第一视频流和第二视频流,包括:

按时序逐帧获取所述混合视频流的混合帧图像;

对每帧混合帧图像依次分离后得到一一对应的第一视频帧图像和第二视频帧图像;

分别将所述第一视频帧图像和第二视频帧图像按时序排列后得到第一视频流和第二视频流;

根据所述预设拼接位置信息分别设置所述第一视频流和第二视频流的显示位置。

所述的网课直播拼接推流方法中,所述对所述第一视频帧图像和第二视频帧图像按时序一一对应拼接生成混合帧图像之后,还包括:

当所述混合帧图像存在无信息区域时,将预设附加信息转为附加图片后存储在所述无信息区域。

所述的网课直播拼接推流方法中,所述对所述混合视频流按时序逐帧分离后显示所述第一视频流和第二视频流之后,还包括:

获取所述混合帧图像中无信息区域存储的附加图片并识别获取所述附加图片中的预设附加信息。

所述的网课直播拼接推流方法中,所述对所述混合视频流按时序逐帧分离后显示所述第一视频流和第二视频流之后,还包括:

当接收到置顶请求时,根据所述置顶请求将所述第一视频流或第二视频流按当前显示屏分辨率自适应调节播放尺寸后显示在最顶层。

所述的网课直播拼接推流方法中,所述第一视频流为教师视频流,所述第二视频流为课件视频流。

本发明又一实施例还提供了一种网课直播拼接推流系统,所述系统包括至少一个处理器;以及,

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述网课直播拼接推流方法。

本发明的另一实施例还提供了一种非易失性计算机可读存储介质,所述非易失性计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行时,可使得所述一个或多个处理器执行上述的网课直播拼接推流方法。

有益效果:本发明公开了一种网课直播拼接推流方法、系统及介质,相比于现有技术,本发明实施例通过将本地直播端的两路视频流在本地进行拼接后进行混合流推送实现双区域直播,在解决了双区域直播延迟不同步问题的同时也不会增加额外的流量成本。

附图说明

下面将结合附图及实施例对本发明作进一步说明,附图中:

图1为本发明提供的网课直播拼接推流方法较佳实施例的流程图;

图2为本发明提供的网课直播拼接推流系统较佳实施例的硬件结构示意图。

具体实施方式

为使本发明的目的、技术方案及效果更加清楚、明确,以下对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。以下结合附图对本发明实施例进行介绍。

请参阅图1,图1为本发明提供的网课直播拼接推流方法较佳实施例的流程图。如图1所示,其包括如下步骤:

s100、获取本地直播端的第一视频流和第二视频流;

s200、将所述第一视频流和第二视频流按时序逐帧拼接后输出混合视频流并推送至直播服务器;

s300、当观众终端对所述本地直播端对应的直播间发起直播访问请求时,接收所述直播服务器推送的混合视频流,并对所述混合视频流按时序逐帧分离后显示所述第一视频流和第二视频流。

本实施例中,当教师在直播上课时开启双区域直播后,先获取教师用户在本地直播端的第一视频流和第二视频流,具体实施时所述第一视频流为教师视频流,所述第二视频流为课件视频流,即教师在本地直播端的一个区域为其授课画面,另一区域为ppt课件画面,通过双区域同时直播达到最佳网课授课效果,将这两路视频流按时序逐帧拼接后输出混合视频流并推送至直播服务器,也就是说,在进行直播流推送之前,先在本地设备上通过图像拼接的方式,对所述第一视频流和第二视频流按时序进行逐帧拼接得到混合视频流,以此来实现本地混流,无需增加额外的直播流量成本。而在观众终端方面,当观众终端对所述本地直播端对应的直播间发起直播访问请求时,接收所述直播服务器推送的混合视频流,并且对所述混合视频流按时序逐帧分离后显示所述第一视频流和第二视频流,通过这种本地图像拼接实现混流的方案,既不会大幅度增加直播流量成本,同时由于在拼接和分离时均按时序逐帧对视频画面进行处理,因此学生在观看分离后的两路视频流时也不会发生延迟不同步的问题,很好地平衡了双区域直播不同步和直播成本之间的问题。

进一步地,所述将所述第一视频流和第二视频流按时序逐帧拼接后输出混合视频流并推送至直播服务器,包括:

按时序逐帧获取所述第一视频流的第一视频帧图像和第二视频流的第二视频帧图像;

根据预设拼接位置信息对所述第一视频帧图像和第二视频帧图像进行一一对应拼接后输出混合视频流并推送至直播服务器。

本实施例中,在进行本地拼接时,先按时序逐帧获取两路视频流的帧图像,对获取到的第一视频帧图像和第二视频帧图像按预设拼接位置信息进行一一对应拼接后输出混合视频流,即对两路视频中的每帧图像均对应拼接后即可得到一路混合视频流,将所述混合视频流推送至直播服务器进行直播,实现准确无延迟且低成本的直播混流方案。

进一步地,所述根据预设拼接位置信息对所述第一视频帧图像和第二视频帧图像进行一一对应拼接后输出混合视频流并推送至直播服务器,包括:

对所述第一视频帧图像和第二视频帧图像按时序一一对应拼接生成混合帧图像;

根据所述预设拼接位置信息分别设置所述第一视频帧图像和第二视频帧图像在所述混合帧图像上的显示位置后输出混合视频流并推送至直播服务器。

本实施例中,具体拼接时,先按时序将两路视频中的每帧图像进行一一对应,即将时序相同的第一视频帧图像和第二视频帧图像一一对应拼接生成混合帧图像,之后再根据拼接位置要求即预设拼接位置信息来调整第一视频帧图像和第二帧图像的位置,所述预设拼接位置信息包括时序信息和位置信息,即可通过所述预设拼接位置信息具体设置每一帧混合帧图像上第一视频帧图像和第二视频帧图像的显示位置,实现拼接后第一视频帧图像和第二视频帧图像显示位置的灵活调整,满足多样化的直播需求,丰富本发明提供的网课直播拼接推流方法的适用场景和范围。

进一步地,所述对所述混合视频流按时序逐帧分离后显示所述第一视频流和第二视频流,包括:

按时序逐帧获取所述混合视频流的混合帧图像;

对每帧混合帧图像依次分离后得到一一对应的第一视频帧图像和第二视频帧图像;

分别将所述第一视频帧图像和第二视频帧图像按时序排列后得到第一视频流和第二视频流;

根据所述预设拼接位置信息分别设置所述第一视频流和第二视频流的显示位置。

本实施例中,在观众终端从直播服务器接收到混合视频流后需要对其进行分离播放,先按时序逐帧获取所述混合视频流的混合帧图像,每一帧混合帧图像中都包含了当前时序下的两路图像信息,因此对每帧混合帧图像依次进行反向分离后可得到一一对应性的第一视频帧图像和第二视频帧图像,需说明的时,本发明在进行图像拼接和图像分离时可通过预设规则进行,例如为第一视频帧图像和第二视频帧图像预设相应的数据标识并存储在拼接后的数据报头中,在图像分离时可根据接收到的混合帧图像数据中的报头解析出其中第一视频帧图像和第二视频帧图像的数据位置,进而获取得到第一视频帧图像和第二视频帧图像对应的数据实现图像分离。将全部分离得到的第一视频帧图像和第二视频帧图像按时序排列后即可得到第一视频流和第二视频流,再进一步根据所述预设拼接位置信息分别设置所述第一视频流和第二视频流的显示位置,即可还原得到本地直播端中两路视频和其位置,使得学生在开启双区域直播观看教师上课时,能实现直播内容和位置的全面同步,令学生能更好地跟随教学进度提高教学效果。

进一步地,所述对所述第一视频帧图像和第二视频帧图像按时序一一对应拼接生成混合帧图像之后,还包括:

当所述混合帧图像存在无信息区域时,将预设附加信息转为附加图片后存储在所述无信息区域。

所述对所述混合视频流按时序逐帧分离后显示所述第一视频流和第二视频流之后,还包括:

获取所述混合帧图像中无信息区域存储的附加图片并识别获取所述附加图片中的预设附加信息。

本实施例中,由于在实际直播中所述第一视频帧图像和第二视频帧图像很多情况下会存在尺寸不匹配情况,当二者的尺寸不匹配时,在进行图像拼接时必然会产生无信息区域,例如当第一视频帧图像的尺寸为a*b,而第二视频帧图像的尺寸为a*c,其中c<b时,若两幅帧图像横向拼接,则会出现尺寸为a*(b-c)的无信息区域,以上尺寸的单位为像素,这部分区域没有实际信息但是仍然会占用存储空间,在传输过程中造成宽带浪费,因此当所述混合帧图像存在无信息区域时,将预设附加信息例如语音、聊天文字、命令等等转为附加图片后存储在所述无信息区域进行传输,具体在拼接时可在无信息区域的开头处加入预设头信息以作为该区域开始的标志,将预设附加信息以图像格式存储在该区域进行传输以提高资源利用率,而在接收端,若当前混合帧图像中存在无信息区域则获取其中存储的附加图片,并识别获取所述附加图片中的预设附加信息,例如通过文字识别等方式获取接受所述预设附加信息,在不影响拼接推流的同时也能最大程度利用带宽资源。

进一步地,所述对所述混合视频流按时序逐帧分离后显示所述第一视频流和第二视频流之后,还包括:

当接收到置顶请求时,根据所述置顶请求将所述第一视频流或第二视频流按当前显示屏分辨率自适应调节播放尺寸后显示在最顶层。

本实施例中,所述混合视频流按时序逐帧分离后,默认将所述第一视频流和第二视频流按预设拼接位置信息中的位置进行播放,从而与本地直播端实现同步,而当学生用户想根据自己需求更改时,可输入置顶请求,将第一视频流或者第二视频流置顶全屏显示在最顶层,例如在直播画面上设置“只看教师”和“只看课件”两个置顶按键,学生可选择其中一个来控制当前的显示内容,被选择的那一路视频流根据当前显示屏的分辨率自适应调节播放尺寸后置顶显示,实现一键式全屏置顶显示,满足不同学生的个性化需要,提高网课教学的灵活性。

需要说明的是,上述各步骤之间并不必然存在一定的先后顺序,本领域普通技术人员,根据本发明实施例的描述可以理解,不同实施例中,上述各步骤可以有不同的执行顺序,即亦可以并行执行,亦可以交换执行等等。

本发明另一实施例提供一种网课直播拼接推流系统,如图2所示,系统10包括:

一个或多个处理器110以及存储器120,图2中以一个处理器110为例进行介绍,处理器110和存储器120可以通过总线或者其他方式连接,图2中以通过总线连接为例。

处理器110用于完成系统10的各种控制逻辑,其可以为通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)、单片机、arm(acornriscmachine)或其它可编程逻辑器件、分立门或晶体管逻辑、分立的硬件组件或者这些部件的任何组合。还有,处理器110还可以是任何传统处理器、微处理器或状态机。处理器110也可以被实现为计算设备的组合,例如,dsp和微处理器的组合、多个微处理器、一个或多个微处理器结合dsp和/或任何其它这种配置。

存储器120作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本发明实施例中的网课直播拼接推流方法对应的程序指令。处理器110通过运行存储在存储器120中的非易失性软件程序、指令以及单元,从而执行系统10的各种功能应用以及数据处理,即实现上述方法实施例中的网课直播拼接推流方法。

存储器120可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据系统10使用所创建的数据等。此外,存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器120可选包括相对于处理器110远程设置的存储器,这些远程存储器可以通过网络连接至系统10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

一个或者多个单元存储在存储器120中,当被一个或者多个处理器110执行时,执行上述任意方法实施例中的网课直播拼接推流方法,例如,执行以上描述的图1中的方法步骤s100至步骤s300。

本发明实施例提供了一种非易失性计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,例如,执行以上描述的图1中的方法步骤s100至步骤s300。

作为示例,非易失性存储介质能够包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦rom(eeprom)或闪速存储器。易失性存储器能够包括作为外部高速缓存存储器的随机存取存储器(ram)。通过说明丽非限制,ram可以以诸如同步ram(sram)、动态ram、(dram)、同步dram(sdram)、双数据速率sdram(ddrsdram)、增强型sdram(esdram)、synchlinkdram(sldram)以及直接rambus(兰巴斯)ram(drram)之类的许多形式得到。本文中所描述的操作环境的所公开的存储器组件或存储器旨在包括这些和/或任何其他适合类型的存储器中的一个或多个。

本发明的另一种实施例提供了一种计算机程序产品,计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令被处理器执行时,使所述处理器执行上述方法实施例的网课直播拼接推流方法。例如,执行以上描述的图1中的方法步骤s100至步骤s300。

综上所述,本发明公开的一种网课直播拼接推流方法、系统及介质中,方法包括:获取本地直播端的第一视频流和第二视频流;将所述第一视频流和第二视频流按时序逐帧拼接后输出混合视频流并推送至直播服务器;当观众终端对所述本地直播端对应的直播间发起直播访问请求时,接收所述直播服务器推送的混合视频流,并对所述混合视频流按时序逐帧分离后显示所述第一视频流和第二视频流。本发明实施例通过将本地直播端的两路视频流在本地进行拼接后进行混合流推送实现双区域直播,在解决了双区域直播延迟不同步问题的同时也不会增加额外的流量成本。

以上所描述的实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际需要选择其中的部分或者全部模块来实现本实施例方案的目的。

通过以上的实施例的描述,本领域的技术人员可以清楚地了解到各实施例可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件实现。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存在于计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机电子设备(可以是个人计算机,服务器,或者网络电子设备等)执行各个实施例或者实施例的某些部分的方法。

除了其他之外,诸如"能够'、"能"、"可能"或"可以"之类的条件语言除非另外具体地陈述或者在如所使用的上下文内以其他方式理解,否则一般地旨在传达特定实施方式能包括(然而其他实施方式不包括)特定特征、元件和/或操作。因此,这样的条件语言一般地还旨在暗示特征、元件和/或操作对于一个或多个实施方式无论如何都是需要的或者一个或多个实施方式必须包括用于在有或没有输入或提示的情况下判定这些特征、元件和/或操作是否被包括或者将在任何特定实施方式中被执行的逻辑。

已经在本文中在本说明书和附图中描述的内容包括能够提供一种网课直播拼接推流方法、系统及介质的示例。当然,不能够出于描述本公开的各种特征的目的来描述元件和/或方法的每个可以想象的组合,但是可以认识到,所公开的特征的许多另外的组合和置换是可能的。因此,显而易见的是,在不脱离本公开的范围或精神的情况下能够对本公开做出各种修改。此外,或在替代方案中,本公开的其他实施例从对本说明书和附图的考虑以及如本文中所呈现的本公开的实践中可能是显而易见的。意图是,本说明书和附图中所提出的示例在所有方面被认为是说明性的而非限制性的。尽管在本文中采用了特定术语,但是它们在通用和描述性意义上被使用并且不用于限制的目的。


技术特征:

1.一种网课直播拼接推流方法,其特征在于,包括如下步骤:

获取本地直播端的第一视频流和第二视频流;

将所述第一视频流和第二视频流按时序逐帧拼接后输出混合视频流并推送至直播服务器;

当观众终端对所述本地直播端对应的直播间发起直播访问请求时,接收所述直播服务器推送的混合视频流,并对所述混合视频流按时序逐帧分离后显示所述第一视频流和第二视频流。

2.根据权利要求1所述的网课直播拼接推流方法,其特征在于,所述将所述第一视频流和第二视频流按时序逐帧拼接后输出混合视频流并推送至直播服务器,包括:

按时序逐帧获取所述第一视频流的第一视频帧图像和第二视频流的第二视频帧图像;

根据预设拼接位置信息对所述第一视频帧图像和第二视频帧图像进行一一对应拼接后输出混合视频流并推送至直播服务器。

3.根据权利要求2所述的网课直播拼接推流方法,其特征在于,所述根据预设拼接位置信息对所述第一视频帧图像和第二视频帧图像进行一一对应拼接后输出混合视频流并推送至直播服务器,包括:

对所述第一视频帧图像和第二视频帧图像按时序一一对应拼接生成混合帧图像;

根据所述预设拼接位置信息分别设置所述第一视频帧图像和第二视频帧图像在所述混合帧图像上的显示位置后输出混合视频流并推送至直播服务器。

4.根据权利要求3所述的网课直播拼接推流方法,其特征在于,所述对所述混合视频流按时序逐帧分离后显示所述第一视频流和第二视频流,包括:

按时序逐帧获取所述混合视频流的混合帧图像;

对每帧混合帧图像依次分离后得到一一对应的第一视频帧图像和第二视频帧图像;

分别将所述第一视频帧图像和第二视频帧图像按时序排列后得到第一视频流和第二视频流;

根据所述预设拼接位置信息分别设置所述第一视频流和第二视频流的显示位置。

5.根据权利要求4所述的网课直播拼接推流方法,其特征在于,所述对所述第一视频帧图像和第二视频帧图像按时序一一对应拼接生成混合帧图像之后,还包括:

当所述混合帧图像存在无信息区域时,将预设附加信息转为附加图片后存储在所述无信息区域。

6.根据权利要求5所述的网课直播拼接推流方法,其特征在于,所述对所述混合视频流按时序逐帧分离后显示所述第一视频流和第二视频流之后,还包括:

获取所述混合帧图像中无信息区域存储的附加图片并识别获取所述附加图片中的预设附加信息。

7.根据权利要求1所述的网课直播拼接推流方法,其特征在于,所述对所述混合视频流按时序逐帧分离后显示所述第一视频流和第二视频流之后,还包括:

当接收到置顶请求时,根据所述置顶请求将所述第一视频流或第二视频流按当前显示屏分辨率自适应调节播放尺寸后显示在最顶层。

8.根据权利要求1-7任意一项所述的网课直播拼接推流方法,其特征在于,所述第一视频流为教师视频流,所述第二视频流为课件视频流。

9.一种网课直播拼接推流系统,其特征在于,所述系统包括至少一个处理器;以及,

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-8任一项所述的网课直播拼接推流方法。

10.一种非易失性计算机可读存储介质,其特征在于,所述非易失性计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行时,可使得所述一个或多个处理器执行权利要求1-8任一项所述的网课直播拼接推流方法。

技术总结
本发明公开了一种网课直播拼接推流方法、系统及介质,方法包括:获取本地直播端的第一视频流和第二视频流;将所述第一视频流和第二视频流按时序逐帧拼接后输出混合视频流并推送至直播服务器;当观众终端对所述本地直播端对应的直播间发起直播访问请求时,接收所述直播服务器推送的混合视频流,并对所述混合视频流按时序逐帧分离后显示所述第一视频流和第二视频流。本发明实施例通过将本地直播端的两路视频流在本地进行拼接后进行混合流推送实现双区域直播,在解决了双区域直播延迟不同步问题的同时也不会增加额外的流量成本。

技术研发人员:孙悦;李天驰;乔伟
受保护的技术使用者:深圳点猫科技有限公司
技术研发日:2020.11.27
技术公布日:2021.04.06

转载请注明原文地址:https://xbbs.6miu.com/read-19612.html