一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种嵌入式远程教学实验系统的视频传输方法与流程

2021-11-05 20:51:00 来源:中国专利 TAG:


1.本发明涉及一种嵌入式远程教学实验系统的视频传输方法,属于视频传输领域。


背景技术:

2.随着时代发展,物联网技术,多媒体传输都已经融入到了生活当中,远程教学试验系统也开始成为一种新型的教学方式逐渐融入到目前的教学模式下,成为目前教学方式下的一种补充方式。对于嵌入式远程教学实验系统的学习而言,如果只完成设备和用户之间的字符数据远程交互功能是远远不够的,因为在操作过程中,学生无法观察到实验设备的真实状态,并且无法及时的向教师反馈问题,这将会降低嵌入式远程实验的教学效率。
3.目前高校嵌入式课程教师远程教学大都采用多种第三方视频会议软件的方式进行授课,这种方式存在许多弊端,如授课结束后的实验环节无法实时观察学生的操作情况,并且不同的老师使用不同的视频会议软件增加学生的学习成本。并且学生在操作过程中遇到问题无法通过简明扼要的方式实现和教师进行沟通增加学习的困难。


技术实现要素:

4.本发明要克服现有的嵌入式远程教学实验系统存在的上述问题,提供了一种嵌入式远程教学实验系统的视频传输方法。
5.本发明针对嵌入式远程教学实验系统提出以一种视频传输方法,通过这个方法可以实现教师授课,学生问答、嵌入式设备运行状态观察的功能一体化。这个方法可以通过浏览器的方式实现具体功能,无需下载第三方软件,并且环境搭建简便,维护成本很低。
6.本发明包括直播、点播、远程共享桌面三个方面。
7.本发明的一种嵌入式远程教学实验系统的视频传输方法,包括以下步骤:
8.(1)搭建嵌入式是远程教学实验系统的视频传输服务器(可根据用户规模设置服务器数量),服务器包含如下功能:直播流传输、点播流传输、以及webrtc通信及音视频数据流传输以及内容转发功能。
9.(2)直播数据源发送数据直播视频流数据到视频传输服务器中。将点播视频数据存放进视频传输服务器当中。
10.(3)视频传输服务器将视频数据进行切片操作,生成mpd文件和对应的视频切片数据保存在服务器中。
11.(4)用户通过浏览器或者客户端软件向内容分发服务器发送播放视频请求。
12.(5)内容分发服务器通过负载均衡算法将请求转发到视频传输服务器。
13.(6)视频传输服务器将mpd文件发送到内容分发服务器,接着返回到客户端或浏览器。
14.(7)客户端或浏览器解析mpd文件,根据mpd文件提供的视频切片信息向视频传输服务器发送获取视频切片数据请求。
15.(8)视频切片数据请求通过内容分发服务器发送到视频传输服务器,视频传输服
务器将数据返回到客户端或浏览器。
16.(9)客户端或浏览器将视频切片数据保存到缓存中,当播放缓存达到预定义的播放阈值时开始播放。
17.(10)客户端或浏览器播放视频,在播放的同时客户端或浏览器向视频传输服务器发出获取新视频切片数据请求,获取新的视频切片数据。
18.(11)重复步骤(10),直至客户端发生停止操作或者视频点播内容播放结束。
19.(12)当用户需要和教师实时视频交互时,学生通过浏览器向教师发起webrtc通信请求。如果不发起webrtc通信请求跳转至步骤(24)。
20.(13)通信双方通过访问node.js搭建的web服务器获取用于共享桌面的通信的静态页面,该页面内含一个<video>标签用于显示浏览器采集到的视频数据(桌面数据,或者摄像头采集的视频数据)。
21.(14)学生在浏览器页面点击通信发起webrtc通信请求,浏览器获取本地sdp信息并且会向stun/turn服务器发送消息获取可用的ice candidates协商信息,接着发送webrtc通信请求。
22.(15)webrtc通信请求发送到视频传输服务器中的信令服务器进行通信双方的信息交互。
23.(16)教师端浏览器收到信令服务器发送的通信请求将会获取本地sdp信息并且会向stun/turn服务器发送消息获取可用的ice candidates协商信息,接着通过信令服务器发送到学生浏览器端。
24.(17)信令服务器交换通信双方的sdp信息以及ice candidates协商信息(包括可以使用的网络环境状态等信息)。
25.(18)通信双方交换完信息后根据协商结果,如果是双方网络环境良好能够建立p2p通信则使用p2p通信,如果网络环境糟糕无法建立p2p通信。则视频数据通过turn服务器进行数据转发。
26.(19)协商完成后浏览器(教师端)页面的<video>标签显示从电脑的摄像头采集的视频数据,同时对视频数据进行h.264编码操作,接着通过rtp方式将视频数据发送到学生浏览器或者turn服务器上进行转发操作(由协商后p2p通信方式还是turn转发通信方式决定)。
27.(20)浏览器(学生端)获取电脑桌面数据,将本地桌面的视频数据先进行h.264编码操作,接着通过rtp方式将视频数据发送到教师浏览器或者turn服务器上进行转发操作(由协商后p2p通信方式还是turn转发通信方式决定)。
28.(21)双发浏览器接收到视频数据后会页面上创建一个新的<video>标签用于解码并显示另一方发送来的视频数据。教师端浏览器收到学生发送的桌面视频即可远程共享学生的桌面信息,从而得知学生进度以及遇到的困难。学生端浏览器收到教师端视频可以与教师实时交流解答问题。
29.(22)通信双方持续进行音视频数据交互。
30.(23)当通信双方中一方关闭浏览器界面或点击结束通信按键,结束通信,否则返回步骤(22)。
31.(24)结束。
32.上述方法步骤(1)中视频传输服务器具体包括:
33.(1)视频传输服务器是不同功能的服务器的总称,其由dash直播服务器、dash点播服务器、反向代理服务器(也可称为内容分发服务器)、sip服务器、web服务器(和嵌入式实验箱通信的web服务器)、stun服务器、turn服务器、node.js搭建的信令服务器及web服务器(存放网页播放器静态资源用于实现webrtc通信)共同组成。
34.上述方法步骤(2)中关于直播数据源发送数据及将点播视频数据存入视频传输服务器操作具体包括:
35.(1)直播数据源指教师通过直播软件如(obs)进行直播授课,将采集到的视频数据经过编码后通过rtmp方式经过内容分发服务器发送到视频传输服务器中的dash直播服务器。
36.(2)直播数据源指嵌入式实验箱采集到的实验设备现场视频数据,经过编码后通过rtmp方式经过内容分发服务器发送到dash直播服务器。
37.(3)将点播视频数据存入视频传输服务器指将准备好的点播视频(实验操作教程视频)进行切片操作后存入视频传输服务器中的dash点播服务器中。
38.上述方法步骤(3)中关于视频切片操作具体包括:
39.(1)对于直播流数据而言,直播流数据传入视频传输服务器中的dash直播服务器,视频传输服务器对直播数据流切片产生码率单一的视频切片数据,每段视频切片都具有相同的播放时长,同时生成一个动态的mpd文件存放在dash点播服务器中,随着时间变化,先生成的视频切片数据和动态mpd文件会不断更新,保留最新的视频切片数据和动态mpd文件。
40.(2)对于点播视频数据而言,通过视频切片软件将准备好的视频数据转码并切片生成不同码率的视频切片文件以及生成一个静态mdp文件,这个文件记录了不同码率视频切片的所有信息。将视频切片文件和mpd文件存放到视频传输服务器中的dash点播服务器中。
41.上述方法中步骤(10)中发送获取新的视频切片请求具体包括:
42.(1)对于直播流数据而言,播放使用的是动态mpd文件,因为每个mpd文件只保留了几秒钟的视频切片数据描述,随着时间变化,因此对于直播视频切片数据的请求还需要向视频传输服务器申请获取动态更新后的mdp文件并且根据新下载的mpd文件申请对应的视频切片数据。直播视频切片数据是单一码率的因此不使用mepg

dash的自适应码率选择算法更改码率。
43.(2)对于点播流数据而言,点播流数据播放使用的是静态mpd文件,该文件描述了整个视频文件各种码率等信息,只需要下载一次即可,客户端或浏览器根据第一次下载的静态mpd文件以及mepg

dash的自适应码率选择算法向视频传输服务器发送适合当前带宽码率的视频切片请求。
44.上述方法中步骤(1)至步骤(10)完成了直播、点播的过程。
45.上述方法中步骤(11)至步骤(22)完成了远程共享桌面的功能。
46.本发明的优点:第一点是播放器客户端兼容性强,由于dash传输协议可以通过http协议传输数据,因此使用浏览器就可以播放视频数据,除此之外还可以通过手机app和pc客户端实现dash播放器,可以满足各种播放需求。第二点是dash协议是基于http协议的,
因此对于资源的下载是一段一段的而不用一直占用服务器的端口资源。第三点是由于rtmp、rtp、rtsp需要专用的流媒体服务器,而dash服务器可由普通的web服务器实现,无需专门搭建流媒体服务器节约成本。第四点搭建dash服务器更加适应用户使用环境,当用户的使用环境网络波动较大是,使用rtmp、rtp、rtsp可能出现卡顿现象,使用dash传输协议的客户端可以实现自适应播放功能,根据不同的网络带宽调整下载视频片段的码率减少视频中断次数升用户体验。第五点是搭建服务器集群和反向代理服务器从而增强了服务器处理并发访问的能力。第六点是在反向代理服务器中加入负载均衡算法提高了服务器的使用效率和提高整个系统的并发访问处理的能力。第七点通过实现远程桌面共享实现了用户之间通过浏览器即可进行多媒体通信,不用下载专用客户端直接通过浏览器即可方便使用并且可以很方便的嵌入到由网页编写的教学系统当中。第八点是本发明提出了一个关于嵌入式远程教学系统视频传输的整体方案,并且给出具体的实现方法验证了该套方案的可行性,从而为解决运行在网页上的嵌入式远程教学系统视频部分提供了思路,并且本发明方法涵盖了远程教学实验系统视频相关的主要内容,不仅是嵌入式远程教学系统可用还可以拓展到其他学科的远程教学实验系统和视频相关系统的搭建,拥有较好的拓展性和可移植性。
附图说明
47.图1是本发明方法的直播和点播功能的整体框架图。
48.图2是本发明方法的教师直播流程图。
49.图3是本发明方法的向远端嵌入式设备发送命令的流程图。
50.图4是本发明提供的向远端嵌入式设备发送命令的详细流程图。
51.图5是本发明方法的嵌入式设备推流及播放流程图。
52.图6是本发明方法的视频点播数据准备流程图。
53.图7是本发明方法的点播播放流程图。
54.图8是本发明方法的远程共享桌面功能的整体框架图。
55.图9是本发明方法的远程共享桌面功能流程图。
具体实施方式
56.下面结合附图,对本发明进行进一步详细说明。
57.一种嵌入式远程教学实验系统的视频传输方法提出的总体框架包括:
58.1.搭建dash直播服务器集群。dash直播服务器用于接收教师通过直播软件(如obs)上传的视频数据以及嵌入式设备通过摄像头上传的数据。数据传输通过应用层的rtmp协议将教师电脑端和摄像头端采集到的内容以推流的方式推送至dash直播服务器等待拉流。dash直播服务器的实现通过搭建使用nginx

rtmp

module模块的nginx服务器实现。nginx服务器对rtmp推流的数据进行转码和切片操作,生成mpd文件和相对应的视频流、音频流的切片文件,并且随时间变化不断更新。
59.2.搭建dash点播服务器集群,dash点播服务器用于存放嵌入式实验箱远程操作的步骤和讲解的视频。这些视频内容需要提前处理和准备。dash点播服务器的实现可以通过搭建简单的web服务器实现,具体可以通过apache、nginx等实现。
60.3.视频的准备,通过将已经录制好的视频文件进行转码和切片操作最终为每一个
单一码率的视频文件生成多种码率的切片文件以及一个mpd文件。转码操作可以通过ffmpeg软件实现,切片操作可以通过ffmpeg命令行实现,也可以通过其他软件如mp4box命令行实现。将准备好的视频切片等文件放置于dash点播服务器集群上,并且配置好文件所在的路径和路由地址。
61.4.搭建反向代理服务器,反向代理服务器的作用是分发http请求和rtmp推流数据到服务器集群,并且实现负载均衡功能,使得服务器集群使用效率更高,并减少请求的响应时长。
62.5.搭建node.js的运行环境用于运行信令服务器代码
63.6.搭建一个协议转换的web服务器和sip服务器实现客户端与嵌入式设备之间的远程通信,sip服务器用于客户端与远程的嵌入式设备进行实时的数据交互。协议转换web服务器解决了浏览器和嵌入式设备之间的实时通信,通过将浏览器发送的http消息转换为sip消息,然后转发到sip服务器,接着转发到嵌入式设备,实现浏览器到远程嵌入式设备的数据传输。
64.7.客户端通过dash传输协议播放点播和直播的视频。实现方式既可以使用手机或pc的dash播放器软件,也可以通过手机或pc的浏览器进行播放。远程共享桌面功能的客户端通过浏览器即可使用。
65.8.通过node.js运行环境搭建用于建立webrtc通信的信令服务器和web服务器用于实现webrtc通信的信令交互功能和视频播放页面的访问,最终实现两个用户通过浏览器实现实时远程共享桌面的功能,从而实现学生共享桌面内容到教师浏览器页面,通过语音通话实现教师在线解答问题的功能。
66.通过以上8个部分可以组成嵌入式远程教学实验系统的视频传输的系统框架。
67.参照图1,可以看到本发明提供的一种嵌入式远程教学实验系统的视频传输方法的整体框架图,客户端部分包括手机app、手机浏览器、pc客户端、pc浏览器。服务器包括用于命令传输的协议转换web服务器和sip服务器,用于处理直播视频流的dash直播服务器和用于处理点播视频数据的dash点播服务器。由于教学实验系统面向的是多名学生同时使用即多对多的通信,因此需要搭建视频服务器集群来提高并发响应的质量和降低响应延时。为了能够充分利用视频服务器集群中的每一台服务器资源,我们需要搭建一个反向代理服务器一实现负载均衡。当我们获取资源时也需要搭建一个反向代理服务器二用于转发客户端的请求至相对应的视频服务器获取资源。dash传输协议可以通过http协议实现视频资源的下载,而且无需繁琐的配置,使用简单的web服务器搭建即可。dash直播服务器实现了rtmp流转dash视频流的功能,一方面为了兼容性,这样使用同一个播放器即可实现直播视频和点播视频的播放,另一方面dash传输协议可以实现边缓存便下载的功能,且使用的是80端口,配置简单没有防火墙的限制,部署方便。客户端可以使用浏览器的方式播放,这样无需下载专用播放器,节省本地空间,并且使用方便。为了能够适应大多数的环境同时也支持pc客户端和手机app进行播放。
68.参考图2可以看到本发明提供的一种嵌入式远程教学实验系统的视频传输方法的教师直播流程图。教师通过直播软件(如obs)将采集到的视频数据通过rtmp推流到反向代理服务器一,反向代理服务器一由使用nginx_tcp_proxy_module模块的nginx搭建而成,rtmp流经过反向代理服务器一,在反向代理服务器一完成转发,转发数据至dash直播服务
器上。将视频流转发到dash直播服务器上。dash直播服务器由使用了使用了nginx

rtmp

module模块的nginx搭建而成,将rtmp推流的数据进行切片操作生成实时变化的音视频数据切片和动态的mpd文件。当客户端发送请求时会先经过反向代理服务器二进行请求的转发,转发客户端的请求到目标视频服务器上,当获取视频服务器上的响应数据后返回给客户端。教师直播数据为一对多的方式即一个老师直播多个学生观看,因此在反向代理服务器上需要交将教师直播的内容分发到多个dash直播服务器上,这样可以分摊每一台dash直播服务器的访问压力。
69.参考图3和图4可以看到本发明提供的一种嵌入式远程教学实验系统的视频传输方法的向远端嵌入式设备发送命令的流程图。为了实现网络穿透因此使用sip协议进行命令的传输工作。由于浏览器采用http访问方式为请求加应答的方式,并且http的传输层协议为tcp/ip协议,而sip协议的传输层协议为udp协议,因此使用浏览器向嵌入式设备发送命令时需要通过web服务器进行协议转换,将http消息的内容取出转为sip格式的udp消息,从而实现通过浏览器实现远程发送命令至嵌入式设备。而通过手机app或者pc客户端发送控制消息时则可以直接通过sip消息实现实时通信。当嵌入式设备收到视频传输消息后启动视频采集进程和rtmp推流进程,接着将采集到的视频数据编码为h264格式,然后进行视频的传输工作。当设备正常执行代码时可以将执行状态返回到客户端,包括两种方式,对于使用浏览器发送命令的客户端想要接收反馈的状态数据,可以通过轮询访问web服务器的方式,因为嵌入式设备的状态信息会通过http协议的方式发送到web服务器保存在数据库中,而对于使用pc客户端或手机app作为客户端接收反馈状态数据则可以由嵌入式设备通过sip协议发送消息到客户端实时更新。
70.图5是本发明提供的一种嵌入式远程教学实验系统的视频传输方法的嵌入式设备推流及播放流程图。首先嵌入式设备收到命令开启音视频采集进程和rtmp推流进程,将采集的音视频数据通过rtmp协议推流到反向代理服务器一,反向代理服务器一使用nginx_tcp_proxy_module模块实现rtmp流的转发,转发到指定的dash直播服务器,dash直播服务器由nginx搭建使用了nginx

rtmp

module模块将推流的数据进行dash的切片操作生成实时变化的音视频数据切片和动态的mpd文件,反向代理服务器二由nginx搭建而成,用于收发客户端的http请求,客户端通过http协议与反向代理服务器二进行通信,由于直播流和点播流的location配置不同,因此反向代理服务器二根据不同的路由区分的转发请求到dash直播服务器和dash点播服务器中,将服务器中的mpd文件及音视频文件切片文件返回给客户端,客户端收到数据后进行解析和播放。嵌入式设备采集的视频数据播放是一对一的因此客户端需要通过反向代理服务器二找到自己操作的设备推流到的具体dash直播服务器,因为每个服务器上都只有独一无二的数据,这就需要通过在反向代理服务器一和二都使用自定义的均衡算法,使得设备推流数据转发的dash服务器和客户端访问的dash直播服务器可以对应。
71.图6是本发明提供的一种嵌入式远程教学实验系统的视频传输方法的视频点播数据准备流程图。首先录制较高分辨率(如1080p)的实验操作教学视频,接着通过ffmpeg软件进行转码操作将1080p转成较低的多种不同分辨率和码率的视频(如720p,480p等),通过mp4box对转码后的视频进行切片处理,将不同分辨率的视频切片成多个碎片并且生成一个静态的mpd文件。将生成的静态mpd文件和视频切片文件放入到dash点播服务器中。
72.图7是本发明提供的一种嵌入式远程教学实验系统的视频传输方法的点播播放流程图。客户端访问反向代理服务器二,发送请求获取mpd文件,反向代理服务器二通过负载均衡策略转发请求到dash点播服务器集群中的某一台设备,每一台服务器都存放了相同的内容,这是因为当大量用户同时访问服务器时,如果只有一个服务器会导致响应延迟增加,使用多个服务器存放点播文件可以减轻高并发访问时的压力,接着在服务器中设置好访问路径。对于dash直播的服务器的访问也是通过反向代理服务器转发实现。反向代理服务器收到dash点播服务器或dash直播服务器的响应后,将mpd文件作为应答内容返回给反向代理服务器二。最后反向代理服务器二将应答内容转发到对应客户端。客户端收到mpd文件后进行解析,获取音视频文件下载地址url和带宽等基本信息,根据自适应算法推荐当前最适合的视频片段(只针对点播有效,对于直播而言只有一种分辨率自适应算法可视作无效)下载推荐的视频片段到播放缓存中,等待播放缓存达到指定值时开始播放。
73.图8是本发明提供的一种嵌入式远程教学实验系统的视频传输方法的远程共享桌面功能的整体框架图。通过node.js运行环境搭建用于实现webrtc功能的信令服务器和传输视频交互页面的网页的web服务器,接着通过stun和turn服务器实现网络穿透和数据中继的功能,最终可以实现两个用户使用浏览器进行p2p通信以及当p2p无法建立时通过服务器中转数据的方式实现webrtc视频通信,从而实现视频数据和音频数据通过网页直接传输,从而实现远程屏幕共享和语音通话功能。
74.图9是本发明提供的一种嵌入式远程教学实验系统的视频传输方法的远程共享桌面功能流程图。视频请求发起方需要在本地先创建一个rtcpeerconnection对象,接着创建一个offer提议,这个提议中包含了发起方的本地媒体描述信息,接着发起方设置本地媒体描述描述信息值到本地创建出的rtcpeerconnection对象中,接着向stun/turn服务器发送消息获取ice候选信息,最后将这个offer提议通过信令服务器发送至接收方,当收到来自stun/turn服务器返回的ice候选信息后也会通过信令服务器发送到接收方。接收方收到offer提议后会保存offer中发起者的本地媒体描述信息到接收者创建的rtcpeerconnection对象中接着产生一个应答anwser,这个anwser中也包含了接收者本地的媒体描述信息,接收者设置本地媒体描述信息到本地的rtcpeerconnection对象中接着向stun/turn服务器发送消息获取ice候选信息,最后将answer通过信令服务器发送到发起者,如果收到了来自stun/turn服务器返回的ice候选信息也通过信令服务器发送到发起者,如果接收的是发起者发送的ice候选信息就添加到本地的rtcpeerconnection对象中。发起者收到接收者的anwser应答后将接收者的媒体描述信息设置本地rtcpeerconnection对象,如果接收的是接收者发来的ice候选信息就添加到本地的rtcpeerconnection对象中,进而完成了ice候选信息和本地媒体描述信息的交换工作。由于网络环境十分复杂,不一定能实现p2p通信,因此如果无法实现p2p通信就会通过turn服务器实现数据转发的功能进而完成webrtc通信过程。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献