1.本发明涉及互联网技术领域,尤其涉及课程回放的方法、服务器、客户端及电子设备。
背景技术:
2.在当前的网络直播课程服务中,一般使用录屏工具或基于本公司直播服务开发的包含录制功能的直播客户端进行课程的录制,存储为mp4格式后上传至点播服务器,再进行回放观看。但是,这种回放方式不够方便灵活,观看回放时无法调整布局,无法自由选择观看的对象,后期对视频进行调整页面布局、ui等二次加工组合的操作也不方便,无法为客户提供定制化回放。
技术实现要素:
3.本发明的目的在于提供课程回放的方法、服务器、客户端及电子设备,将每个客户端的推送webrtc流单独录制和处理,以实现可以随意调整回放布局及任意选择观看对象。
4.为了实现上述目的,本发明提供如下技术方案:
5.一种课程回放的方法,包括:
6.服务器端在上课期间监听每个客户端推送的webrtc流;
7.服务器端基于流媒体技术将每个所述webrtc流分别录制成一个视频文件,并获取视频文件的标识信息,将所述视频文件与所述标识信息一一对应的存储;
8.服务器端将用户选择回放的视频文件推送到用户的客户端,并且将所述视频文件根据用户自定义的布局样式播放。
9.优选地,以监听到老师的客户端开始推流事件的时间作为课程开始时间;以监听到老师的客户端结束推流事件的时间作为课程结束时间。
10.较佳地,所述标识信息包括视频采集源信息、用户类型信息、视频采集设备信息,以及视频开始时间和视频结束时间。
11.具体的,所述视频采集源信息包括摄像头流、屏幕共享流、插播视频流、插播音频流或本地虚拟摄像头流;
12.所述用户类型信息包括老师、学生、隐身者或助教;
13.所述视频采集设备信息包括web端或移动端;
14.所述视频开始时间为监听到客户端开始推流事件的时间相对于课程开始时间的绝对时间;
15.所述视频结束时间为监听到客户端结束推流事件的时间相对于课程开始时间的绝对时间。
16.优选地,所述的课程回放的方法还包括:
17.服务器端基于流媒体技术,将多个所述webrtc流按照预设的布局模板,以及每个webrtc流对应的视频开始时间和视频结束时间,合成一个视频文件,获取合成的视频文件
的标识信息,并将合成的视频文件与标识信息对应存储。
18.具体地,所述布局模板以指定坐标的形式设定。
19.进一步地,服务器端将所述视频文件根据用户自定义的布局样式播放的方法包括:
20.以课程开始时间到课程结束时间作为时间轴,根据用户选择的视频文件对应的视频开始时间以及用户自定义的布局样式,播放用户选择回放的视频。
21.一种课程回放的服务器,所述服务器端包括监听模块、录制模块、存储模块及推送模块,其中,
22.所述监听模块用于在上课期间监听每个客户端推送的webrtc流;
23.所述录制模块用于基于流媒体技术将每个所述webrtc流分别录制成一个视频文件,并获取视频文件的标识信息,将所述视频文件与所述标识信息一一对应的存储到所述存储模块中;
24.所述推送模块用于将用户选择回放的视频文件推送到用户的客户端,并且将所述视频文件根据用户自定义的布局样式播放。
25.一种课程回放的客户端,包括推流模块和回放模块,其中,
26.所述推流模块,用于推送webrtc流到服务器端;
27.所述回放模块,用于接收用户选择回放的视频文件并且将所述视频文件根据用户自定义的布局样式播放,其中,所述视频文件是服务器端基于流媒体技术将每个所述webrtc流分别录制得到的,且所述视频文件与对应的标识信息存储在服务器的存储模块中。
28.一种电子设备,所述电子设备包括:
29.至少一个处理器;以及,
30.与所述至少一个处理器通信连接的存储器;其中,
31.所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1至7中任一项所述的课程回放的方法。
32.与现有技术相比,本发明提供的课程回放的方法、服务器、客户端及电子设备具有以下有益效果:
33.本发明提供的课程回放的方法,服务器端在上课期间监听每个客户端推送的webrtc流并将每个webrtc流分别录制成一个视频文件,观看回放时,加载用户选择回放的所有视频文件,并且将视频文件根据用户自定义的布局样式播放,实现了灵活地选择观看对象并按照个人喜好调整回放布局。
34.本发明提供的课程回放的服务器和客户端,采用了上述课程回放的方法,录制时将每个人的推流录制成单独的视频,以实现可以灵活地选择观看对象并调整回放布局。
附图说明
35.此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
36.图1为本发明实施例中课程回放的方法流程示意图;
37.图2为本发明实施例中课程回放的方法执行过程示意图;
38.图3为本发明实施例中布局模板示意图;
39.图4为本发明实施例中视频文件按照对应的视频开始时间播放的示意图;
40.图5为本发明实施例中电子设备的模块结构示意图。
具体实施方式
41.为使本发明的上述目的、特征和优点能够更加明显易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其它实施例,均属于本发明保护的范围。
42.实施例一
43.请参阅图1或图2,本发明实施例提供一种课程回放的方法,包括:
44.服务器端在上课期间监听每个客户端推送的webrtc流;
45.服务器端基于流媒体技术将每个webrtc流分别录制成一个视频文件,并获取视频文件的标识信息,将视频文件与标识信息一一对应的存储;
46.服务器端将用户选择回放的视频文件推送到用户的客户端,并且将视频文件根据用户自定义的布局样式播放。
47.本发明实施例提供的课程回放的方法,服务器端将每个客户端推送的webrtc流分别录制成一个视频文件,观看回放时,加载用户选择回放的所有视频文件,并且将视频文件根据用户自定义的布局样式播放,实现了灵活地选择观看对象并按照个人喜好调整回放布局。
48.webrtc技术内置于浏览器中,用户不需要使用任何插件或者软件就能通过浏览器来实现实时通信,使得视频录制过程方便快捷,流媒体(streaming media)是指将一连串的媒体数据压缩后,经过网上分段发送数据,在网上即时传输影音以供观赏的一种技术与过程,此技术使得数据包得以像流水一样发送;如果不使用此技术,就必须在使用前下载整个媒体文件。在具体实施中,视频文件可以采用mp4格式,mp4视频使用的场景多,打开方式方便,还可以在页面直接播放。
49.在录制视频文件的时候同时记录视频文件的相关标识信息,标识信息包括视频采集源信息、用户类型信息、视频采集设备信息,以及视频开始时间和视频结束时间。视频采集源信息包括摄像头流、屏幕共享流、插播视频流、插播音频流或本地虚拟摄像头流,这些视频采集源都是以webrtc流的方式推送到服务器,即服务器把采集阶段封包好的内容以webrtc流的方式进行拉流,其中,摄像头流是指是通过摄像头采集得到的视频流,屏幕共享流是指通过采集电脑屏幕得到的视频流,虚拟摄像头是通过软件模拟得到的视频流,插播视频流是通过将mp4等格式的视频文件转推得到的视频流,插播音频流是通过将mp3等格式的音频文件转推得到的视频流,例如,老师在上课过程中给学生播放了一段演示视频,如果采用录屏的方式记录该视频可能会将屏幕中许多无用信息录制到视频中,这个时候则可以直接将该视频的源文件转推得到视频流。
50.用户类型信息包括老师、学生、隐身者或助教,是参与上课与推流的人,以监听到
老师的客户端开始推流事件的时间作为课程开始时间,以监听到老师的客户端结束推流事件的时间作为课程结束时间。视频采集设备信息包括web端或移动端,不同采集设备采集到的视频尺寸比例不同,可以在用户回放视频时自动调整视频尺寸或提示用户调整视频尺寸,以达到较佳的播放效果。每个视频文件的视频开始时间为监听到客户端开始推流事件的时间相对于课程开始时间的绝对时间,视频结束时间为监听到客户端结束推流事件的时间相对于课程开始时间的绝对时间,记录绝对时间,能够保证在播放视频时多个视频按照绝对时间同步播放。
51.值得注意的是,课程中可能会有部分学员出于隐私或其他考虑选择不向服务器推送webrtc流,这种情况下,则仅记录该学员的上课时间和下课时间,而不对该学员进行视频录制。
52.除此之外,请参阅图2,课程回放的方法还包括:服务器端基于流媒体技术,将多个webrtc流按照预设的布局模板,以及每个webrtc流对应的视频开始时间和视频结束时间,合成一个视频文件,获取合成的视频文件的标识信息,并将合成的视频文件与标识信息对应存储。其中,布局模板以指定坐标的形式设定,请参阅图3,可以先将窗口按照webrtc流的数量划分为多个小窗口并设置坐标,然后指定老师的视频文件接入窗口1中,其他用户的视频文件按照上课时间依次接入其他的窗口中,然后把所有用户的webrtc流合成一个mp4视频文件,提供给用户选择使用。
53.录制得到的视频文件和对应的识别信息是结构化数据,所以采用mysql数据库进行存储,mysql数据库体积小、速度快、总体拥有成本低并且可以将视频文件和识别信息进行对应的结构化存储。
54.录制并存储完成之后,当用户想要看回放时,可以基于视频文件对应的标识信息,选择自己想要看的视频文件,用户可以任意移动老师视频和学生视频的位置,也可以自由选择是否关闭当前正在播放的视频。例如,仅播放老师的视频文件,或者播放所有互动用户的视频文件,再或者仅播放合成的视频文件。播放过程中,请参阅图4,以课程开始时间到课程结束时间作为时间轴,根据用户选择的视频文件对应的视频开始时间以及用户自定义的布局样式,播放用户选择回放的视频,由于每个视频文件对应的视频开始时间都是相对于课程开始时间的绝对时间,所以将课程开始时间到课程结束时间作为时间轴,在对应的绝对时间点开始播放的对应的视频文件,保证了多个视频是同步的,进而保证互动者之间的视频是同步的。
55.实施例二
56.本实施例提供一种课程回放的服务器,服务器端包括监听模块、录制模块、存储模块及推送模块,其中,监听模块用于在上课期间监听每个客户端推送的webrtc流;录制模块用于基于流媒体技术将每个webrtc流分别录制成一个视频文件,并获取视频文件的标识信息,将视频文件与标识信息一一对应的存储到存储模块中;推送模块用于将用户选择回放的视频文件推送到用户的客户端,并且将视频文件根据用户自定义的布局样式播放。
57.本发明提供的课程回放的服务器,采用上述实施例一中的课程回放的方法,录制时将每个人的推流录制成单独的视频,以实现可以灵活地选择观看对象并调整回放布局。与现有技术相比,本发明实施例提供的课程回放的服务器的有益效果与上述实施例一提供的课程回放的方法的有益效果相同,且该课程回放的服务器中的其他技术特征与上一实施
例方法公开的特征相同,在此不做赘述。
58.实施例三
59.本实施例提供一种课程回放的客户端,包括推流模块和回放模块,推流模块用于推送webrtc流到服务器端;回放模块用于接收用户选择回放的视频文件并且将视频文件根据用户自定义的布局样式播放,其中,视频文件是服务器端基于流媒体技术将每个webrtc流分别录制得到的,且视频文件与对应的标识信息存储在服务器的存储模块中。
60.本发明提供的课程回放的服务器,采用上述实施例一中的课程回放的方法,录制时将每个人的推流录制成单独的视频,以实现可以灵活地选择观看对象并调整回放布局。与现有技术相比,本发明实施例提供的课程回放的服务器的有益效果与上述实施例一提供的课程回放的方法的有益效果相同,且该课程回放的服务器中的其他技术特征与上一实施例方法公开的特征相同,在此不做赘述。
61.实施例四
62.一种电子设备,电子设备包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行前述实施例一的课程回放的方法。
63.下面参考图5,其示出了适于用来实现本公开实施例的电子设备的结构示意图。本公开实施例中的电子设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、pda(个人数字助理)、pad(平板电脑)、pmp(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字tv、台式计算机等等的固定终端。图5示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
64.如图5所示,电子设备可以包括处理装置(例如中央处理器、图形处理器等),其可以根据存储在只读存储器(rom)中的程序或者从存储装置加载到随机访问存储器(ram)中的程序而执行各种适当的动作和处理。在ram中,还存储有电子设备操作所需的各种程序和数据。处理装置、rom以及ram通过总线彼此相连。输入/输出(i/o)接口也连接至总线。
65.通常,以下系统可以连接至i/o接口:包括例如触摸屏、触摸板、键盘、鼠标、图像传感器、麦克风、加速度计、陀螺仪等的输入装置;包括例如液晶显示器(lcd)、扬声器、振动器等的输出装置;包括例如磁带、硬盘等的存储装置;以及通信装置。通信装置可以允许电子设备与其他设备进行无线或有线通信以交换数据。虽然图中示出了具有各种系统的电子设备,但是应理解的是,并不要求实施或具备所有示出的系统。可以替代地实施或具备更多或更少的系统。
66.特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置从网络上被下载和安装,或者从存储装置被安装,或者从rom被安装。在该计算机程序被处理装置执行时,执行本公开实施例的方法中限定的上述功能。
67.本发明提供的电子设备,采用上述实施例一中的课程回放的方法,录制时将每个人的推流录制成单独的视频,以实现可以灵活地选择观看对象并调整回放布局。与现有技术相比,本发明实施例提供的电子设备的有益效果与上述实施例一提供的课程回放的方法
的有益效果相同,且该电子设备中的其他技术特征与上一实施例方法公开的特征相同,在此不做赘述。
68.需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、系统或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd
‑
rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、系统或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、系统或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、rf(射频)等等,或者上述的任意合适的组合。
69.上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
70.上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:获取至少两个网际协议地址;向节点评价设备发送包括所述至少两个网际协议地址的节点评价请求,其中,所述节点评价设备从所述至少两个网际协议地址中,选取网际协议地址并返回;接收所述节点评价设备返回的网际协议地址;其中,所获取的网际协议地址指示内容分发网络中的边缘节点。
71.或者,上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:接收包括至少两个网际协议地址的节点评价请求;从所述至少两个网际协议地址中,选取网际协议地址;返回选取出的网际协议地址;其中,接收到的网际协议地址指示内容分发网络中的边缘节点。
72.可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c ,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
73.附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用
于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
74.描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定,例如,推流模块还可以被描述为“用于推送webrtc流到服务器端的模块”。
75.应当理解,本公开的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式的描述中,具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
76.以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
技术特征:
1.一种课程回放的方法,其特征在于,包括:服务器端在上课期间监听每个客户端推送的webrtc流;服务器端基于流媒体技术将每个所述webrtc流分别录制成一个视频文件,并获取视频文件的标识信息,将所述视频文件与所述标识信息一一对应的存储;服务器端将用户选择回放的视频文件推送到用户的客户端,并且将所述视频文件根据用户自定义的布局样式播放。2.根据权利要求1所述的课程回放的方法,其特征在于,以监听到老师的客户端开始推流事件的时间作为课程开始时间;以监听到老师的客户端结束推流事件的时间作为课程结束时间。3.根据权利要求2所述的课程回放的方法,其特征在于,所述标识信息包括视频采集源信息、用户类型信息、视频采集设备信息,以及视频开始时间和视频结束时间。4.根据权利要求3所述的课程回放的方法,其特征在于,所述视频采集源信息包括摄像头流、屏幕共享流、插播视频流、插播音频流或本地虚拟摄像头流;所述用户类型信息包括老师、学生、隐身者或助教;所述视频采集设备信息包括web端或移动端;所述视频开始时间为监听到客户端开始推流事件的时间相对于课程开始时间的绝对时间;所述视频结束时间为监听到客户端结束推流事件的时间相对于课程开始时间的绝对时间。5.根据权利要求3所述的课程回放的方法,其特征在于,还包括:服务器端基于流媒体技术,将多个所述webrtc流按照预设的布局模板,以及每个webrtc流对应的视频开始时间和视频结束时间,合成一个视频文件,获取合成的视频文件的标识信息,并将合成的视频文件与标识信息对应存储。6.根据权利要求5所述的课程回放的方法,其特征在于,所述布局模板以指定坐标的形式设定。7.根据权利要求3或5所述的课程回放的方法,其特征在于,服务器端将所述视频文件根据用户自定义的布局样式播放的方法包括:以课程开始时间到课程结束时间作为时间轴,根据用户选择的视频文件对应的视频开始时间以及用户自定义的布局样式,播放用户选择回放的视频。8.一种课程回放的服务器,其特征在于,所述服务器端包括监听模块、录制模块、存储模块及推送模块,其中,所述监听模块用于在上课期间监听每个客户端推送的webrtc流;所述录制模块用于基于流媒体技术将每个所述webrtc流分别录制成一个视频文件,并获取视频文件的标识信息,将所述视频文件与所述标识信息一一对应的存储到所述存储模块中;所述推送模块用于将用户选择回放的视频文件推送到用户的客户端,并且将所述视频文件根据用户自定义的布局样式播放。9.一种课程回放的客户端,其特征在于,包括推流模块和回放模块,其中,所述推流模块,用于推送webrtc流到服务器端;
所述回放模块,用于接收用户选择回放的视频文件并且将所述视频文件根据用户自定义的布局样式播放,其中,所述视频文件是服务器端基于流媒体技术将每个所述webrtc流分别录制得到的,且所述视频文件与对应的标识信息存储在服务器的存储模块中。10.一种电子设备,其特征在于,所述电子设备包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1至7中任一项所述的课程回放的方法。
技术总结
本发明公开课程回放的方法、服务器、客户端及电子设备,其中,该方法包括服务器端在上课期间监听每个客户端推送的WebRTC流;服务器端基于流媒体技术将每个所述WebRTC流分别录制成一个视频文件,并获取视频文件的标识信息,将所述视频文件与所述标识信息一一对应的存储;服务器端将用户选择回放的视频文件推送到用户的客户端,并且将所述视频文件根据用户自定义的布局样式播放。本发明提供的课程回放的服务器和客户端,采用了上述课程回放的方法,录制时将每个人的推流录制成单独的视频,以实现可以灵活地选择观看对象并调整回放布局。局。局。
技术研发人员:董世永 罗慧卿 刘秉林
受保护的技术使用者:创盛视联数码科技(北京)有限公司
技术研发日:2021.02.25
技术公布日:2021/6/29
转载请注明原文地址:https://doc.8miu.com/read-15239.html