本发明涉及通信技术领域,尤其涉及一种用于教育云平台的直播互动方法及装置。
背景技术:
随着网络技术的发展,越来越多的教育云平台出现在人们眼前。学生可以通过教育云平台获取自己想要学习的资料、视频等教育数据。
现有技术中的教育云平台还支持直播,在直播中还可通过教师端的摄像头和麦克风采集教师的画面和声音后,推送至服务器,供学生观看。但是现有的教育云平台中直播中学生无法提问,只能单纯的接收教师直播的内容,直播中学生与教师互动性差。
因此,现有技术还有待于改进和发展。
技术实现要素:
鉴于上述现有技术的不足,本发明的目的在于提供一种用于教育云平台的直播互动方法及装置,旨在解决现有技术中教育云平台中在直播中学生与教师互动性差的问题。
本发明的技术方案如下:
一种用于教育云平台的直播互动方法,所述方法包括:
教师端获取外部推流码,对外部推流码解析后,建立与rtmp服务器的连接;
打包教师端直播软件画面,解析为网络数据帧格式的数据流;
将教师端的数据流传输至rtmp服务器;
控制学生端从rtmp服务器获取数据流,学生端解析后生成学生端直播画面;
获取学生端输入的弹幕,将弹幕显示在学生端直播画面上,并将学生端的弹幕反馈至rtmp服务器;
将rtmp服务器获取的弹幕下发至教师端的直播软件画面中,供教师端查看。
可选地,所述打包教师端直播软件画面,解析为网络数据帧格式的数据流,包括:
获取教师端直播软件画面,将整个教师端直播软件画面的像素数据转化为数据帧;
通过udp网络数据协议中的数据帧报文段报头格式转化为相应的数据帧报文,将报文转化为udp数据帧格式的数据流。
可选地,所述将教师端的数据流传输至rtmp服务器,包括:
将教师端的数据流向rtmp服务器传输时,实时检测丢帧情况,判断是否有丢帧;
若有丢帧,且丢帧数大于预设的阈值,则判断丢帧的时间是否大于预设的延迟时间,若小于等于延迟时间,则将丢失的帧重新传输至rtmp服务器;若大于延迟时间,则关闭教师端与rtmp服务器的连接,清理rtmp服务器中已存储的数据流,重新连接rtmp服务器,再次传输教师端的数据流。
可选地,所述将rtmp服务器获取的弹幕下发至教师端的直播软件画面中,供教师端查看后,还包括:
检测到学生端的录制指令时,从rtmp服务器上获取教师端直播软件画面;
在学生端将教师端直播软件画面渲染生成本地配置画面,进行相应的数据图像处理,读取录制的设置参数;
将保存的直播软件画面处理成视频数据帧,根据获取的设置参数,生成对应的视频流,将视频流写入文件中,生成视频流临时文件;
检测到录制停止指令时,获取视频流临时文件进行数据校验后,保存为相应格式的视频文件,录制完成。
可选地,所述在学生端将教师端直播软件画面渲染生成本地配置画面,进行相应的数据图像处理,读取录制的设置参数,包括:
在学生端利用opengl的渲染教师端直播软件画面生成的本地配置画面,使用opencv库进行相应的数据图像处理,读取录制的设置参数。
可选地,所述使用opencv库进行相应的数据图像处理,包括:
使用opencv库读取每个画面上的像素的相应的像素值,并建立画面像素矩阵,将每一帧画面记录为一个像素矩阵,对处理的画面在内存中保存。
可选地,所述设置参数包括视频清晰度、画面分辨率、码率、压缩率、压缩方式和相应的视频格式。
本发明又一实施例还提供了一种用于教育云平台的直播互动装置,所述装置包括至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的用于教育云平台的直播互动方法。
本发明的另一实施例还提供了一种非易失性计算机可读存储介质,其特征在于,所述非易失性计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行时,可使得所述一个或多个处理器执行上述的用于教育云平台的直播互动方法。
本发明的另一种实施例提供了一种计算机程序产品,所述计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被处理器执行时,使所述处理器执行上述的用于教育云平台的直播互动方法。
有益效果:本发明公开了一种用于教育云平台的直播互动方法及装置,本发明实施例可实现在教育云平台中,教师在直播课程中,学生端可以实时提问,并显示在教师端的直播画面上,教师可根据提问当场回答,提高了直播课程中师生互动性,提高网络授课的效率。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1为本发明一种用于教育云平台的直播互动方法较佳实施例的流程图;
图2为本发明一种用于教育云平台的直播互动装置较佳实施例的硬件结构示意图。
具体实施方式
为使本发明的目的、技术方案及效果更加清楚、明确,以下对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。以下结合附图对本发明实施例进行介绍。
请参阅图1,图1为本发明一种用于教育云平台的直播互动方法较佳实施例的流程图。如图1所示,其包括步骤:
步骤s100、教师端获取外部推流码,对外部推流码解析后,建立与rtmp服务器的连接;
步骤s200、打包教师端直播软件画面,解析为网络数据帧格式的数据流;
步骤s300、将教师端的数据流传输至rtmp服务器;
步骤s400、控制学生端从rtmp服务器获取数据流,学生端解析后生成学生端直播画面;
步骤s500、获取学生端输入的弹幕,将弹幕显示在学生端直播画面上,并将学生端的弹幕反馈至rtmp服务器;
步骤s600、将rtmp服务器获取的弹幕下发至教师端的直播软件画面中,供教师端查看。
具体实施时,本发明实施例中教师端指教师登录所用的终端设备,学生端是指学生登录的终端设备,终端设备包括但不限于手机、平板电脑、电脑等电子设备。rtmp是realtimemessagingprotocol(实时消息传输协议)的首字母缩写。该协议基于tcp,是一个协议族,包括rtmp基本协议及rtmpt/rtmps/rtmpe等多种变种。rtmp是一种设计用来进行实时数据通信的网络协议,主要用来在flash/air平台和支持rtmp协议的流媒体/交互服务器之间进行音视频和数据通信。支持该协议的软件包括adobemediaserver/ultrantmediaserver/red5等。rtmp服务器是支持rtmp的服务器。本发明实施例基于obs开源直播推流软件技术框架(已集成大量内部处理的技术框架)、cef嵌入式浏览器框架、opencv图像处理技术框架、opengl图形渲染绘制框架、其他相应前端js交互网页构建框架实现。其中各框架为现有技术,此处不再赘述。
步骤s100本发明实施例不产生相应的推流码以及并不建立自己的直播rtmp流量服务器,所以第一个步骤就是从各类直播平台或者其他rtmp推流服务器获取外部推流码。并获取由obs框架设置模块中的相应的直播推流码率、延迟、画面等内容的设置。软件内部解析并根据推流码,建立与rtmp服务器的连接。确保之后网络连接通畅。
步骤s200包括:
获取教师端直播软件画面,将整个教师端直播软件画面的像素数据转化为数据帧;
通过udp网络数据协议中的数据帧报文段报头格式转化为相应的数据帧报文,将报文转化为udp数据帧格式的数据流。
具体实施时,打包本地直播软件画面,将其解析为网络数据帧格式,其具体过程是需要将整个画面的像素数据形成数据帧。并利用udp网络数据协议的数据帧报文段报头格式形成相应的数据帧报文。之后把报文形成数据流向信道上发送。
进一步地,步骤s300包括:
将教师端的数据流向rtmp服务器传输时,实时检测丢帧情况,判断是否有丢帧;
若有丢帧,且丢帧数大于预设的阈值,则判断丢帧的时间是否大于预设的延迟时间,若小于等于延迟时间,则将丢失的帧重新传输至rtmp服务器;若大于延迟时间,则关闭教师端与rtmp服务器的连接,清理rtmp服务器中已存储的数据流,重新连接rtmp服务器,再次传输教师端的数据流。
具体实施时,数据传输过程中,即向rtmp服务器进行画面数据的数据流的传输工作,这个过程是的效果是根据之前获取的用户设置来进行操作的。这个过程中可能会出现的情况就是丢帧,重连的技术处理的操作。预设的阈值可为10帧~15帧,优选为10帧。一个丢帧数据重发处理过程,以10帧为例,如果只是小于10帧的丢帧,不发生任何重发,大于10的情况,那么就需要对丢失的帧进行重发,因为存在设定了一个延迟时间,所以重发帧是可以实现补齐的。如果丢帧率大于延迟时间,那么就定义为发生崩溃,关闭连接,并清理数据流,直接进行重连操作。
步骤s400学生端预先与rtmp服务器建立连接,并获取rtmp中的数据流,对数据流解析后生成学生端直播画面。学生端直播画面是根据学生端的设备参数适配后的直播画面。
进一步地,步骤s500中当学生有问题时,学生可在学生端输入提问,该提问以弹幕的形式实时显示在学生端直播画面时,同时学生端还将弹幕发送至rtmp服务器。
步骤s600中rmtp服务器将学生端上传的弹幕下发至教师端,教师端的直播软件画面中显示该弹幕,教师在观看后,可实时进行解答,提高了师生互动。
进一步地,步骤s600之后还包括:
检测到学生端的录制指令时,从rtmp服务器上获取教师端直播软件画面;
在学生端将教师端直播软件画面渲染生成本地配置画面,进行相应的数据图像处理,读取录制的设置参数;
将保存的直播软件画面处理成视频数据帧,根据获取的设置参数,生成对应的视频流,将视频流写入文件中,生成视频流临时文件;
检测到录制停止指令时,获取视频流临时文件进行数据校验后,保存为相应格式的视频文件,录制完成。
具体实施时,检测到录制指令时,从rtmp服务器上获取教师端直播软件画面,获取录制时间起点。。
进一步地,在学生端将教师端直播软件画面渲染生成本地配置画面,进行相应的数据图像处理,读取录制的设置参数,包括:
在学生端利用opengl的渲染教师端直播软件画面生成的本地配置画面,使用opencv库进行相应的数据图像处理,读取录制的设置参数。
其中,使用opencv库进行相应的数据图像处理,包括:
使用opencv库读取每个画面上的像素的相应的像素值,并建立画面像素矩阵,将每一帧画面记录为一个像素矩阵,对处理的画面在内存中保存。设置参数包括视频清晰度、画面分辨率、码率、压缩率、压缩方式和相应的视频格式。
具体地,利用opengl的渲染生成的本地配置画面,使用opencv库进行相应的数据图像的处理,主要的技术原理就是读取每个画面上的像素的相应的像素值,并建立画面像素矩阵,将每一帧画面记录为一个像素矩阵,对处理的画面进行在内存中进行保存。并在这一步需要利用obs设置模块中,对录制相关的设置进行读取,内容有:视频清晰度,画面分辨率,码率,压缩率,压缩方式,相应的视频格式等设置参数。
将保存的画面,利用obs中加载的第三方库ffmpeg库把画面处理成相应的视频数据帧,并根据刚才获得的设置参数,传入ffmpeg库中,准备按照设置数据生成对应的视频流(举例就是mp4文件格式1920x1080的画面,采用的mp4对应数据格式的压缩方式对相应的数据帧矩阵进行压缩,码率5200进行数据流的写入),并持续写入视频流临时文件中。
在用户停止屏幕录制的时候,进行文件处理,在对刚才写入的暂时的视频数据流文件中,进行数据校验,在误差可以接受的范围内,将文件保存为相应格式的视频文件,就完成了具体的录屏的操作。
另外还可使用单独的弹幕服务器,通过tcp建立弹幕服务器,然后让学生可以直接连接上之后在课堂上进行提问。具体技术方案就是利用tcp协议建立连接并进行消息转发和展示。
在一些其他的实施例中,还可设置一些其他的插件,例如在教师端设计学生统计插件,让老师观察当前课堂的学生情况,主要技术解决方案就是利用课堂数据库和服务器建立课堂数据,然后利用qt图形界面框架写一个交互的界面让老师可以实时看到相对应的学生数据,可以放在直播画面的某个区域中进行显示的。
本发明另一实施例提供一种用于教育云平台的直播互动装置,如图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至步骤s600。
本发明实施例提供了一种非易失性计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,例如,执行以上描述的图1中的方法步骤s100至步骤s600。
作为示例,非易失性存储介质能够包括只读存储器(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至步骤s600。
以上所描述的实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际需要选择其中的部分或者全部模块来实现本实施例方案的目的。
通过以上的实施例的描述,本领域的技术人员可以清楚地了解到各实施例可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件实现。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存在于计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机电子设备(可以是个人计算机,服务器,或者网络电子设备等)执行各个实施例或者实施例的某些部分的方法。
除了其他之外,诸如"能够'、"能"、"可能"或"可以"之类的条件语言除非另外具体地陈述或者在如所使用的上下文内以其他方式理解,否则一般地旨在传达特定实施方式能包括(然而其他实施方式不包括)特定特征、元件和/或操作。因此,这样的条件语言一般地不旨在暗示特征、元件和/或操作对于一个或多个实施方式无论如何都是需要的或者一个或多个实施方式必须包括用于在有或没有学生输入或提示的情况下判定这些特征、元件和/或操作是否被包括或者将在任何特定实施方式中被执行的逻辑。
已经在本文中在本说明书和附图中描述的内容包括能够提供智能柜定制方法及装置的示例。当然,不能够出于描述本公开的各种特征的目的来描述元件和/或方法的每个可以想象的组合,但是可以认识到,所公开的特征的许多另外的组合和置换是可能的。因此,显而易见的是,在不脱离本公开的范围或精神的情况下能够对本公开做出各种修改。此外,或在替代方案中,本公开的其他实施例从对本说明书和附图的考虑以及如本文中所呈现的本公开的实践中可能是显而易见的。意图是,本说明书和附图中所提出的示例在所有方面被认为是说明性的而非限制性的。尽管在本文中采用了特定术语,但是它们在通用和描述性意义上被使用并且不用于限制的目的。