CN113613032A - 一种嵌入式远程教学实验系统的视频传输方法 - Google Patents

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

Info

Publication number
CN113613032A
CN113613032A CN202110889306.7A CN202110889306A CN113613032A CN 113613032 A CN113613032 A CN 113613032A CN 202110889306 A CN202110889306 A CN 202110889306A CN 113613032 A CN113613032 A CN 113613032A
Authority
CN
China
Prior art keywords
video
server
data
browser
communication
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.)
Pending
Application number
CN202110889306.7A
Other languages
English (en)
Inventor
林梦嫚
包秀钦
孟利民
应颂翔
蒋维
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Dreamvision Network Technology Co ltd
Original Assignee
Hangzhou Dreamvision Network Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Dreamvision Network Technology Co ltd filed Critical Hangzhou Dreamvision Network Technology Co ltd
Priority to CN202110889306.7A priority Critical patent/CN113613032A/zh
Publication of CN113613032A publication Critical patent/CN113613032A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/23106Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving caching operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing 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
    • H04N21/234309Processing 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 by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4 or from Quicktime to Realvideo
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/239Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests
    • H04N21/2393Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests involving handling client requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4331Caching operations, e.g. of an advertisement for later insertion during playback
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/437Interfacing the upstream path of the transmission network, e.g. for transmitting client requests to a VOD server
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440218Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/478Supplemental services, e.g. displaying phone caller identification, shopping application
    • H04N21/4788Supplemental services, e.g. displaying phone caller identification, shopping application communicating with other users, e.g. chatting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/643Communication protocols
    • H04N21/6437Real-time Transport Protocol [RTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

一种嵌入式远程教学实验系统的视频传输方法,包括:1.搭建DASH直播服务器集群;2.搭建DASH点播服务器集群;3.视频的准备,将已经录制好的视频文件进行转码和切片操作;4.搭建反向代理服务器;5.搭建Node.js的运行环境用于运行信令服务器代码;6.搭建一个协议转换的Web服务器和Sip服务器实现客户端与嵌入式设备之间的远程通信;7.客户端通过DASH传输协议播放点播和直播的视频;8.通过Node.js运行环境搭建用于建立WebRTC通信的信令服务器和Web服务器用于实现WebRTC通信的信令交互功能和视频播放页面的访问,最终实现两个用户通过浏览器实现实时远程共享桌面的功能,从而实现学生共享桌面内容到教师浏览器页面,通过语音通话实现教师在线解答问题的功能。

Description

一种嵌入式远程教学实验系统的视频传输方法
技术领域
本发明涉及一种嵌入式远程教学实验系统的视频传输方法,属于视频传输领域。
背景技术
随着时代发展,物联网技术,多媒体传输都已经融入到了生活当中,远程教学试验系统也开始成为一种新型的教学方式逐渐融入到目前的教学模式下,成为目前教学方式下的一种补充方式。对于嵌入式远程教学实验系统的学习而言,如果只完成设备和用户之间的字符数据远程交互功能是远远不够的,因为在操作过程中,学生无法观察到实验设备的真实状态,并且无法及时的向教师反馈问题,这将会降低嵌入式远程实验的教学效率。
目前高校嵌入式课程教师远程教学大都采用多种第三方视频会议软件的方式进行授课,这种方式存在许多弊端,如授课结束后的实验环节无法实时观察学生的操作情况,并且不同的老师使用不同的视频会议软件增加学生的学习成本。并且学生在操作过程中遇到问题无法通过简明扼要的方式实现和教师进行沟通增加学习的困难。
发明内容
本发明要克服现有的嵌入式远程教学实验系统存在的上述问题,提供了一种嵌入式远程教学实验系统的视频传输方法。
本发明针对嵌入式远程教学实验系统提出以一种视频传输方法,通过这个方法可以实现教师授课,学生问答、嵌入式设备运行状态观察的功能一体化。这个方法可以通过浏览器的方式实现具体功能,无需下载第三方软件,并且环境搭建简便,维护成本很低。
本发明包括直播、点播、远程共享桌面三个方面。
本发明的一种嵌入式远程教学实验系统的视频传输方法,包括以下步骤:
(1)搭建嵌入式是远程教学实验系统的视频传输服务器(可根据用户规模设置服务器数量),服务器包含如下功能:直播流传输、点播流传输、以及WebRTC通信及音视频数据流传输以及内容转发功能。
(2)直播数据源发送数据直播视频流数据到视频传输服务器中。将点播视频数据存放进视频传输服务器当中。
(3)视频传输服务器将视频数据进行切片操作,生成MPD文件和对应的视频切片数据保存在服务器中。
(4)用户通过浏览器或者客户端软件向内容分发服务器发送播放视频请求。
(5)内容分发服务器通过负载均衡算法将请求转发到视频传输服务器。
(6)视频传输服务器将MPD文件发送到内容分发服务器,接着返回到客户端或浏览器。
(7)客户端或浏览器解析MPD文件,根据MPD文件提供的视频切片信息向视频传输服务器发送获取视频切片数据请求。
(8)视频切片数据请求通过内容分发服务器发送到视频传输服务器,视频传输服务器将数据返回到客户端或浏览器。
(9)客户端或浏览器将视频切片数据保存到缓存中,当播放缓存达到预定义的播放阈值时开始播放。
(10)客户端或浏览器播放视频,在播放的同时客户端或浏览器向视频传输服务器发出获取新视频切片数据请求,获取新的视频切片数据。
(11)重复步骤(10),直至客户端发生停止操作或者视频点播内容播放结束。
(12)当用户需要和教师实时视频交互时,学生通过浏览器向教师发起WebRTC通信请求。如果不发起WebRTC通信请求跳转至步骤(24)。
(13)通信双方通过访问Node.js搭建的Web服务器获取用于共享桌面的通信的静态页面,该页面内含一个<video>标签用于显示浏览器采集到的视频数据(桌面数据,或者摄像头采集的视频数据)。
(14)学生在浏览器页面点击通信发起WebRTC通信请求,浏览器获取本地sdp信息并且会向STUN/TURN服务器发送消息获取可用的ice candidates协商信息,接着发送WebRTC通信请求。
(15)WebRTC通信请求发送到视频传输服务器中的信令服务器进行通信双方的信息交互。
(16)教师端浏览器收到信令服务器发送的通信请求将会获取本地sdp信息并且会向STUN/TURN服务器发送消息获取可用的ice candidates协商信息,接着通过信令服务器发送到学生浏览器端。
(17)信令服务器交换通信双方的sdp信息以及ice candidates协商信息(包括可以使用的网络环境状态等信息)。
(18)通信双方交换完信息后根据协商结果,如果是双方网络环境良好能够建立P2P通信则使用P2P通信,如果网络环境糟糕无法建立P2P通信。则视频数据通过TURN服务器进行数据转发。
(19)协商完成后浏览器(教师端)页面的<video>标签显示从电脑的摄像头采集的视频数据,同时对视频数据进行H.264编码操作,接着通过RTP方式将视频数据发送到学生浏览器或者TURN服务器上进行转发操作(由协商后P2P通信方式还是TURN转发通信方式决定)。
(20)浏览器(学生端)获取电脑桌面数据,将本地桌面的视频数据先进行H.264编码操作,接着通过RTP方式将视频数据发送到教师浏览器或者TURN服务器上进行转发操作(由协商后P2P通信方式还是TURN转发通信方式决定)。
(21)双发浏览器接收到视频数据后会页面上创建一个新的<video>标签用于解码并显示另一方发送来的视频数据。教师端浏览器收到学生发送的桌面视频即可远程共享学生的桌面信息,从而得知学生进度以及遇到的困难。学生端浏览器收到教师端视频可以与教师实时交流解答问题。
(22)通信双方持续进行音视频数据交互。
(23)当通信双方中一方关闭浏览器界面或点击结束通信按键,结束通信,否则返回步骤(22)。
(24)结束。
上述方法步骤(1)中视频传输服务器具体包括:
(1)视频传输服务器是不同功能的服务器的总称,其由DASH直播服务器、DASH点播服务器、反向代理服务器(也可称为内容分发服务器)、Sip服务器、Web服务器(和嵌入式实验箱通信的Web服务器)、STUN服务器、TURN服务器、Node.js搭建的信令服务器及Web服务器(存放网页播放器静态资源用于实现WebRTC通信)共同组成。
上述方法步骤(2)中关于直播数据源发送数据及将点播视频数据存入视频传输服务器操作具体包括:
(1)直播数据源指教师通过直播软件如(OBS)进行直播授课,将采集到的视频数据经过编码后通过RTMP方式经过内容分发服务器发送到视频传输服务器中的DASH直播服务器。
(2)直播数据源指嵌入式实验箱采集到的实验设备现场视频数据,经过编码后通过RTMP方式经过内容分发服务器发送到DASH直播服务器。
(3)将点播视频数据存入视频传输服务器指将准备好的点播视频(实验操作教程视频)进行切片操作后存入视频传输服务器中的DASH点播服务器中。
上述方法步骤(3)中关于视频切片操作具体包括:
(1)对于直播流数据而言,直播流数据传入视频传输服务器中的DASH直播服务器,视频传输服务器对直播数据流切片产生码率单一的视频切片数据,每段视频切片都具有相同的播放时长,同时生成一个动态的MPD文件存放在DASH点播服务器中,随着时间变化,先生成的视频切片数据和动态MPD文件会不断更新,保留最新的视频切片数据和动态MPD文件。
(2)对于点播视频数据而言,通过视频切片软件将准备好的视频数据转码并切片生成不同码率的视频切片文件以及生成一个静态MDP文件,这个文件记录了不同码率视频切片的所有信息。将视频切片文件和MPD文件存放到视频传输服务器中的DASH点播服务器中。
上述方法中步骤(10)中发送获取新的视频切片请求具体包括:
(1)对于直播流数据而言,播放使用的是动态MPD文件,因为每个MPD文件只保留了几秒钟的视频切片数据描述,随着时间变化,因此对于直播视频切片数据的请求还需要向视频传输服务器申请获取动态更新后的MDP文件并且根据新下载的MPD文件申请对应的视频切片数据。直播视频切片数据是单一码率的因此不使用MEPG-DASH的自适应码率选择算法更改码率。
(2)对于点播流数据而言,点播流数据播放使用的是静态MPD文件,该文件描述了整个视频文件各种码率等信息,只需要下载一次即可,客户端或浏览器根据第一次下载的静态MPD文件以及MEPG-DASH的自适应码率选择算法向视频传输服务器发送适合当前带宽码率的视频切片请求。
上述方法中步骤(1)至步骤(10)完成了直播、点播的过程。
上述方法中步骤(11)至步骤(22)完成了远程共享桌面的功能。
本发明的优点:第一点是播放器客户端兼容性强,由于DASH传输协议可以通过HTTP协议传输数据,因此使用浏览器就可以播放视频数据,除此之外还可以通过手机APP和PC客户端实现DASH播放器,可以满足各种播放需求。第二点是DASH协议是基于HTTP协议的,因此对于资源的下载是一段一段的而不用一直占用服务器的端口资源。第三点是由于RTMP、RTP、RTSP需要专用的流媒体服务器,而DASH服务器可由普通的Web服务器实现,无需专门搭建流媒体服务器节约成本。第四点搭建DASH服务器更加适应用户使用环境,当用户的使用环境网络波动较大是,使用RTMP、RTP、RTSP可能出现卡顿现象,使用DASH传输协议的客户端可以实现自适应播放功能,根据不同的网络带宽调整下载视频片段的码率减少视频中断次数升用户体验。第五点是搭建服务器集群和反向代理服务器从而增强了服务器处理并发访问的能力。第六点是在反向代理服务器中加入负载均衡算法提高了服务器的使用效率和提高整个系统的并发访问处理的能力。第七点通过实现远程桌面共享实现了用户之间通过浏览器即可进行多媒体通信,不用下载专用客户端直接通过浏览器即可方便使用并且可以很方便的嵌入到由网页编写的教学系统当中。第八点是本发明提出了一个关于嵌入式远程教学系统视频传输的整体方案,并且给出具体的实现方法验证了该套方案的可行性,从而为解决运行在网页上的嵌入式远程教学系统视频部分提供了思路,并且本发明方法涵盖了远程教学实验系统视频相关的主要内容,不仅是嵌入式远程教学系统可用还可以拓展到其他学科的远程教学实验系统和视频相关系统的搭建,拥有较好的拓展性和可移植性。
附图说明
图1是本发明方法的直播和点播功能的整体框架图。
图2是本发明方法的教师直播流程图。
图3是本发明方法的向远端嵌入式设备发送命令的流程图。
图4是本发明提供的向远端嵌入式设备发送命令的详细流程图。
图5是本发明方法的嵌入式设备推流及播放流程图。
图6是本发明方法的视频点播数据准备流程图。
图7是本发明方法的点播播放流程图。
图8是本发明方法的远程共享桌面功能的整体框架图。
图9是本发明方法的远程共享桌面功能流程图。
具体实施方式
下面结合附图,对本发明进行进一步详细说明。
一种嵌入式远程教学实验系统的视频传输方法提出的总体框架包括:
1.搭建DASH直播服务器集群。DASH直播服务器用于接收教师通过直播软件(如OBS)上传的视频数据以及嵌入式设备通过摄像头上传的数据。数据传输通过应用层的RTMP协议将教师电脑端和摄像头端采集到的内容以推流的方式推送至DASH直播服务器等待拉流。DASH直播服务器的实现通过搭建使用nginx-RTMP-module模块的Nginx服务器实现。Nginx服务器对RTMP推流的数据进行转码和切片操作,生成MPD文件和相对应的视频流、音频流的切片文件,并且随时间变化不断更新。
2.搭建DASH点播服务器集群,DASH点播服务器用于存放嵌入式实验箱远程操作的步骤和讲解的视频。这些视频内容需要提前处理和准备。DASH点播服务器的实现可以通过搭建简单的WEB服务器实现,具体可以通过Apache、Nginx等实现。
3.视频的准备,通过将已经录制好的视频文件进行转码和切片操作最终为每一个单一码率的视频文件生成多种码率的切片文件以及一个MPD文件。转码操作可以通过ffmpeg软件实现,切片操作可以通过ffmpeg命令行实现,也可以通过其他软件如MP4Box命令行实现。将准备好的视频切片等文件放置于DASH点播服务器集群上,并且配置好文件所在的路径和路由地址。
4.搭建反向代理服务器,反向代理服务器的作用是分发HTTP请求和RTMP推流数据到服务器集群,并且实现负载均衡功能,使得服务器集群使用效率更高,并减少请求的响应时长。
5.搭建Node.js的运行环境用于运行信令服务器代码
6.搭建一个协议转换的Web服务器和Sip服务器实现客户端与嵌入式设备之间的远程通信,Sip服务器用于客户端与远程的嵌入式设备进行实时的数据交互。协议转换Web服务器解决了浏览器和嵌入式设备之间的实时通信,通过将浏览器发送的HTTP消息转换为Sip消息,然后转发到Sip服务器,接着转发到嵌入式设备,实现浏览器到远程嵌入式设备的数据传输。
7.客户端通过DASH传输协议播放点播和直播的视频。实现方式既可以使用手机或PC的DASH播放器软件,也可以通过手机或PC的浏览器进行播放。远程共享桌面功能的客户端通过浏览器即可使用。
8.通过Node.js运行环境搭建用于建立WebRTC通信的信令服务器和Web服务器用于实现WebRTC通信的信令交互功能和视频播放页面的访问,最终实现两个用户通过浏览器实现实时远程共享桌面的功能,从而实现学生共享桌面内容到教师浏览器页面,通过语音通话实现教师在线解答问题的功能。
通过以上8个部分可以组成嵌入式远程教学实验系统的视频传输的系统框架。
参照图1,可以看到本发明提供的一种嵌入式远程教学实验系统的视频传输方法的整体框架图,客户端部分包括手机APP、手机浏览器、PC客户端、PC浏览器。服务器包括用于命令传输的协议转换Web服务器和Sip服务器,用于处理直播视频流的DASH直播服务器和用于处理点播视频数据的DASH点播服务器。由于教学实验系统面向的是多名学生同时使用即多对多的通信,因此需要搭建视频服务器集群来提高并发响应的质量和降低响应延时。为了能够充分利用视频服务器集群中的每一台服务器资源,我们需要搭建一个反向代理服务器一实现负载均衡。当我们获取资源时也需要搭建一个反向代理服务器二用于转发客户端的请求至相对应的视频服务器获取资源。DASH传输协议可以通过HTTP协议实现视频资源的下载,而且无需繁琐的配置,使用简单的Web服务器搭建即可。DASH直播服务器实现了RTMP流转DASH视频流的功能,一方面为了兼容性,这样使用同一个播放器即可实现直播视频和点播视频的播放,另一方面DASH传输协议可以实现边缓存便下载的功能,且使用的是80端口,配置简单没有防火墙的限制,部署方便。客户端可以使用浏览器的方式播放,这样无需下载专用播放器,节省本地空间,并且使用方便。为了能够适应大多数的环境同时也支持PC客户端和手机APP进行播放。
参考图2可以看到本发明提供的一种嵌入式远程教学实验系统的视频传输方法的教师直播流程图。教师通过直播软件(如OBS)将采集到的视频数据通过RTMP推流到反向代理服务器一,反向代理服务器一由使用nginx_tcp_proxy_module模块的Nginx搭建而成,RTMP流经过反向代理服务器一,在反向代理服务器一完成转发,转发数据至DASH直播服务器上。将视频流转发到DASH直播服务器上。DASH直播服务器由使用了使用了nginx-rtmp-module模块的Nginx搭建而成,将RTMP推流的数据进行切片操作生成实时变化的音视频数据切片和动态的MPD文件。当客户端发送请求时会先经过反向代理服务器二进行请求的转发,转发客户端的请求到目标视频服务器上,当获取视频服务器上的响应数据后返回给客户端。教师直播数据为一对多的方式即一个老师直播多个学生观看,因此在反向代理服务器上需要交将教师直播的内容分发到多个DASH直播服务器上,这样可以分摊每一台DASH直播服务器的访问压力。
参考图3和图4可以看到本发明提供的一种嵌入式远程教学实验系统的视频传输方法的向远端嵌入式设备发送命令的流程图。为了实现网络穿透因此使用Sip协议进行命令的传输工作。由于浏览器采用HTTP访问方式为请求加应答的方式,并且HTTP的传输层协议为TCP/IP协议,而Sip协议的传输层协议为UDP协议,因此使用浏览器向嵌入式设备发送命令时需要通过Web服务器进行协议转换,将HTTP消息的内容取出转为Sip格式的UDP消息,从而实现通过浏览器实现远程发送命令至嵌入式设备。而通过手机APP或者PC客户端发送控制消息时则可以直接通过Sip消息实现实时通信。当嵌入式设备收到视频传输消息后启动视频采集进程和RTMP推流进程,接着将采集到的视频数据编码为H264格式,然后进行视频的传输工作。当设备正常执行代码时可以将执行状态返回到客户端,包括两种方式,对于使用浏览器发送命令的客户端想要接收反馈的状态数据,可以通过轮询访问Web服务器的方式,因为嵌入式设备的状态信息会通过HTTP协议的方式发送到Web服务器保存在数据库中,而对于使用PC客户端或手机APP作为客户端接收反馈状态数据则可以由嵌入式设备通过Sip协议发送消息到客户端实时更新。
图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直播服务器可以对应。
图6是本发明提供的一种嵌入式远程教学实验系统的视频传输方法的视频点播数据准备流程图。首先录制较高分辨率(如1080P)的实验操作教学视频,接着通过ffmpeg软件进行转码操作将1080P转成较低的多种不同分辨率和码率的视频(如720P,480P等),通过MP4Box对转码后的视频进行切片处理,将不同分辨率的视频切片成多个碎片并且生成一个静态的MPD文件。将生成的静态MPD文件和视频切片文件放入到DASH点播服务器中。
图7是本发明提供的一种嵌入式远程教学实验系统的视频传输方法的点播播放流程图。客户端访问反向代理服务器二,发送请求获取MPD文件,反向代理服务器二通过负载均衡策略转发请求到DASH点播服务器集群中的某一台设备,每一台服务器都存放了相同的内容,这是因为当大量用户同时访问服务器时,如果只有一个服务器会导致响应延迟增加,使用多个服务器存放点播文件可以减轻高并发访问时的压力,接着在服务器中设置好访问路径。对于DASH直播的服务器的访问也是通过反向代理服务器转发实现。反向代理服务器收到DASH点播服务器或DASH直播服务器的响应后,将MPD文件作为应答内容返回给反向代理服务器二。最后反向代理服务器二将应答内容转发到对应客户端。客户端收到MPD文件后进行解析,获取音视频文件下载地址URL和带宽等基本信息,根据自适应算法推荐当前最适合的视频片段(只针对点播有效,对于直播而言只有一种分辨率自适应算法可视作无效)下载推荐的视频片段到播放缓存中,等待播放缓存达到指定值时开始播放。
图8是本发明提供的一种嵌入式远程教学实验系统的视频传输方法的远程共享桌面功能的整体框架图。通过Node.js运行环境搭建用于实现WebRTC功能的信令服务器和传输视频交互页面的网页的Web服务器,接着通过STUN和TURN服务器实现网络穿透和数据中继的功能,最终可以实现两个用户使用浏览器进行P2P通信以及当P2P无法建立时通过服务器中转数据的方式实现WebRTC视频通信,从而实现视频数据和音频数据通过网页直接传输,从而实现远程屏幕共享和语音通话功能。
图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通信过程。

Claims (5)

1.一种嵌入式远程教学实验系统的视频传输方法,包括以下步骤:
(1)搭建嵌入式是远程教学实验系统的视频传输服务器(可根据用户规模设置服务器数量),服务器包含如下功能:直播流传输、点播流传输、以及WebRTC通信及音视频数据流传输以及内容转发功能;
(2)直播数据源发送数据直播视频流数据到视频传输服务器中;将点播视频数据存放进视频传输服务器当中;
(3)视频传输服务器将视频数据进行切片操作,生成MPD文件和对应的视频切片数据保存在服务器中;
(4)用户通过浏览器或者客户端软件向内容分发服务器发送播放视频请求;
(5)内容分发服务器通过负载均衡算法将请求转发到视频传输服务器;
(6)视频传输服务器将MPD文件发送到内容分发服务器,接着返回到客户端或浏览器;
(7)客户端或浏览器解析MPD文件,根据MPD文件提供的视频切片信息向视频传输服务器发送获取视频切片数据请求;
(8)视频切片数据请求通过内容分发服务器发送到视频传输服务器,视频传输服务器将数据返回到客户端或浏览器;
(9)客户端或浏览器将视频切片数据保存到缓存中,当播放缓存达到预定义的播放阈值时开始播放;
(10)客户端或浏览器播放视频,在播放的同时客户端或浏览器向视频传输服务器发出获取新视频切片数据请求,获取新的视频切片数据;
(11)重复步骤(10),直至客户端发生停止操作或者视频点播内容播放结束;
(12)当用户需要和教师实时视频交互时,学生通过浏览器向教师发起WebRTC通信请求;如果不发起WebRTC通信请求跳转至步骤(24);
(13)通信双方通过访问Node.js搭建的Web服务器获取用于共享桌面的通信的静态页面,该页面内含一个<video>标签用于显示浏览器采集到的视频数据(桌面数据,或者摄像头采集的视频数据);
(14)学生在浏览器页面点击通信发起WebRTC通信请求,浏览器获取本地sdp信息并且会向STUN/TURN服务器发送消息获取可用的ice candidates协商信息,接着发送WebRTC通信请求;
(15)WebRTC通信请求发送到视频传输服务器中的信令服务器进行通信双方的信息交互;
(16)教师端浏览器收到信令服务器发送的通信请求将会获取本地sdp信息并且会向STUN/TURN服务器发送消息获取可用的icecandidates协商信息,接着通过信令服务器发送到学生浏览器端;
(17)信令服务器交换通信双方的sdp信息以及ice candidates协商信息(包括可以使用的网络环境状态等信息);
(18)通信双方交换完信息后根据协商结果,如果是双方网络环境良好能够建立P2P通信则使用P2P通信,如果网络环境糟糕无法建立P2P通信;则视频数据通过TURN服务器进行数据转发;
(19)协商完成后浏览器(教师端)页面的<video>标签显示从电脑的摄像头采集的视频数据,同时对视频数据进行H.264编码操作,接着通过RTP方式将视频数据发送到学生浏览器或者TURN服务器上进行转发操作(由协商后P2P通信方式还是TURN转发通信方式决定);
(20)浏览器(学生端)获取电脑桌面数据,将本地桌面的视频数据先进行H.264编码操作,接着通过RTP方式将视频数据发送到教师浏览器或者TURN服务器上进行转发操作(由协商后P2P通信方式还是TURN转发通信方式决定);
(21)双发浏览器接收到视频数据后会页面上创建一个新的<video>标签用于解码并显示另一方发送来的视频数据;教师端浏览器收到学生发送的桌面视频即可远程共享学生的桌面信息,从而得知学生进度以及遇到的困难;学生端浏览器收到教师端视频可以与教师实时交流解答问题;
(22)通信双方持续进行音视频数据交互;
(23)当通信双方中一方关闭浏览器界面或点击结束通信按键,结束通信,否则返回步骤(22);
(24)结束。
2.如权利要求1所述的一种嵌入式远程教学实验系统的视频传输方法,其特征在于:步骤(1)中视频传输服务器具体包括:
视频传输服务器是不同功能的服务器的总称,其由DASH直播服务器、DASH点播服务器、反向代理服务器(也可称为内容分发服务器)、Sip服务器、Web服务器(和嵌入式实验箱通信的Web服务器)、STUN服务器、TURN服务器、Node.js搭建的信令服务器及Web服务器(存放网页播放器静态资源用于实现WebRTC通信)共同组成。
3.如权利要求1所述的一种嵌入式远程教学实验系统的视频传输方法,其特征在于:步骤(2)中直播数据源发送数据及将点播视频数据存入视频传输服务器操作具体包括:
(21)直播数据源指教师通过直播软件如(OBS)进行直播授课,将采集到的视频数据经过编码后通过RTMP方式经过内容分发服务器发送到视频传输服务器中的DASH直播服务器;
(22)直播数据源指嵌入式实验箱采集到的实验设备现场视频数据,经过编码后通过RTMP方式经过内容分发服务器发送到DASH直播服务器;
(23)将点播视频数据存入视频传输服务器指将准备好的点播视频(实验操作教程视频)进行切片操作后存入视频传输服务器中的DASH点播服务器中。
4.如权利要求1所述的一种嵌入式远程教学实验系统的视频传输方法,其特征在于:步骤(3)中视频切片操作具体包括:
(31)对于直播流数据而言,直播流数据传入视频传输服务器中的DASH直播服务器,视频传输服务器对直播数据流切片产生码率单一的视频切片数据,每段视频切片都具有相同的播放时长,同时生成一个动态的MPD文件存放在DASH点播服务器中,随着时间变化,先生成的视频切片数据和动态MPD文件会不断更新,保留最新的视频切片数据和动态MPD文件;
(32)对于点播视频数据而言,通过视频切片软件将准备好的视频数据转码并切片生成不同码率的视频切片文件以及生成一个静态MDP文件,这个文件记录了不同码率视频切片的所有信息;将视频切片文件和MPD文件存放到视频传输服务器中的DASH点播服务器中。
5.如权利要求1所述的一种嵌入式远程教学实验系统的视频传输方法,其特征在于:步骤(10)中发送获取新的视频切片请求具体包括:
(101)对于直播流数据而言,播放使用的是动态MPD文件,因为每个MPD文件只保留了几秒钟的视频切片数据描述,随着时间变化,因此对于直播视频切片数据的请求还需要向视频传输服务器申请获取动态更新后的MDP文件并且根据新下载的MPD文件申请对应的视频切片数据;直播视频切片数据是单一码率的因此不使用MEPG-DASH的自适应码率选择算法更改码率;
(102)对于点播流数据而言,点播流数据播放使用的是静态MPD文件,该文件描述了整个视频文件各种码率等信息,只需要下载一次即可,客户端或浏览器根据第一次下载的静态MPD文件以及MEPG-DASH的自适应码率选择算法向视频传输服务器发送适合当前带宽码率的视频切片请求。
CN202110889306.7A 2021-08-04 2021-08-04 一种嵌入式远程教学实验系统的视频传输方法 Pending CN113613032A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110889306.7A CN113613032A (zh) 2021-08-04 2021-08-04 一种嵌入式远程教学实验系统的视频传输方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110889306.7A CN113613032A (zh) 2021-08-04 2021-08-04 一种嵌入式远程教学实验系统的视频传输方法

Publications (1)

Publication Number Publication Date
CN113613032A true CN113613032A (zh) 2021-11-05

Family

ID=78339404

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110889306.7A Pending CN113613032A (zh) 2021-08-04 2021-08-04 一种嵌入式远程教学实验系统的视频传输方法

Country Status (1)

Country Link
CN (1) CN113613032A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114257841A (zh) * 2021-12-20 2022-03-29 恒安嘉新(北京)科技股份公司 网页视频的隔离重放方法、装置、系统、设备及介质
CN115442348A (zh) * 2022-11-09 2022-12-06 成都华栖云科技有限公司 一种基于多协议多终端交互的教学实时互动方法及系统
CN115695830A (zh) * 2022-09-19 2023-02-03 北京所思信息科技有限责任公司 一种直播互动方法、装置、设备及存储介质
CN116016458A (zh) * 2023-03-28 2023-04-25 四川蜀通信息科技有限公司 一种基于webrtc实现网页端的音视频交互方法及装置
CN116760803A (zh) * 2023-08-17 2023-09-15 四川汉唐云分布式存储技术有限公司 基于WebRTC技术的实时视频通信系统

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103581693A (zh) * 2013-11-12 2014-02-12 北京清源新创科技有限公司 面向互联网的基于分片传输的大尺度直播时移方法及系统
CN105144730A (zh) * 2014-03-27 2015-12-09 华为技术有限公司 视频传输方法、装置与系统
CN107018446A (zh) * 2017-04-07 2017-08-04 无锡职业技术学院 一种网络视频点播以及直播的推流方法
CN107809683A (zh) * 2017-11-22 2018-03-16 广东电网有限责任公司教育培训评价中心 一种基于浏览器无插件的直播系统及方法
CN107888941A (zh) * 2017-10-27 2018-04-06 广东省南方数字电视无线传播有限公司 视频切片传输方法、装置和系统
CN110072122A (zh) * 2019-04-19 2019-07-30 华为技术有限公司 一种视频播放方法及相关设备
CN111510789A (zh) * 2019-01-30 2020-08-07 上海哔哩哔哩科技有限公司 视频播放方法、系统、计算机设备及计算机可读存储介质
CN111669606A (zh) * 2019-03-09 2020-09-15 苏州知了信息科技有限公司 一种线下线上同步教学的直播系统
CN112073423A (zh) * 2020-09-15 2020-12-11 杭州二更网络科技有限公司 基于WebRTC进行浏览器推流的方法及系统
CN112543357A (zh) * 2020-11-26 2021-03-23 郑州铁路职业技术学院 一种基于dash协议的流媒体数据传输方法
CN113112881A (zh) * 2021-03-10 2021-07-13 浙江工业大学 基于WebRTC远程实验答疑系统

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103581693A (zh) * 2013-11-12 2014-02-12 北京清源新创科技有限公司 面向互联网的基于分片传输的大尺度直播时移方法及系统
CN105144730A (zh) * 2014-03-27 2015-12-09 华为技术有限公司 视频传输方法、装置与系统
CN107018446A (zh) * 2017-04-07 2017-08-04 无锡职业技术学院 一种网络视频点播以及直播的推流方法
CN107888941A (zh) * 2017-10-27 2018-04-06 广东省南方数字电视无线传播有限公司 视频切片传输方法、装置和系统
CN107809683A (zh) * 2017-11-22 2018-03-16 广东电网有限责任公司教育培训评价中心 一种基于浏览器无插件的直播系统及方法
CN111510789A (zh) * 2019-01-30 2020-08-07 上海哔哩哔哩科技有限公司 视频播放方法、系统、计算机设备及计算机可读存储介质
CN111669606A (zh) * 2019-03-09 2020-09-15 苏州知了信息科技有限公司 一种线下线上同步教学的直播系统
CN110072122A (zh) * 2019-04-19 2019-07-30 华为技术有限公司 一种视频播放方法及相关设备
CN112073423A (zh) * 2020-09-15 2020-12-11 杭州二更网络科技有限公司 基于WebRTC进行浏览器推流的方法及系统
CN112543357A (zh) * 2020-11-26 2021-03-23 郑州铁路职业技术学院 一种基于dash协议的流媒体数据传输方法
CN113112881A (zh) * 2021-03-10 2021-07-13 浙江工业大学 基于WebRTC远程实验答疑系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
张志龙: "《无线视频传输优化技术》", vol. 1, 北京邮电大学出版社, pages: 47 - 52 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114257841A (zh) * 2021-12-20 2022-03-29 恒安嘉新(北京)科技股份公司 网页视频的隔离重放方法、装置、系统、设备及介质
CN115695830A (zh) * 2022-09-19 2023-02-03 北京所思信息科技有限责任公司 一种直播互动方法、装置、设备及存储介质
CN115442348A (zh) * 2022-11-09 2022-12-06 成都华栖云科技有限公司 一种基于多协议多终端交互的教学实时互动方法及系统
CN115442348B (zh) * 2022-11-09 2023-01-24 成都华栖云科技有限公司 一种基于多协议多终端交互的教学实时互动方法及系统
CN116016458A (zh) * 2023-03-28 2023-04-25 四川蜀通信息科技有限公司 一种基于webrtc实现网页端的音视频交互方法及装置
CN116760803A (zh) * 2023-08-17 2023-09-15 四川汉唐云分布式存储技术有限公司 基于WebRTC技术的实时视频通信系统

Similar Documents

Publication Publication Date Title
CN113613032A (zh) 一种嵌入式远程教学实验系统的视频传输方法
CN101485170B (zh) 通过网络呈现用流传输的可重复的数据对象
CN101951412B (zh) 基于http协议的多子流流媒体传输系统及其传输方法
CN110535871B (zh) 一种基于WebRTC的课堂实时视频投影方法及系统
US8108541B2 (en) Method and apparatus for providing collaborative interactive video streaming
CN102752667B (zh) 一种多流流媒体直播互动系统及直播互动方法
CN105656910B (zh) 媒体传输服务器、媒体传输系统、用户终端和媒体传输方法
CN101098467B (zh) 一种网络音视频监控方法及系统
CN104270646A (zh) 一种基于移动流媒体的自适应传输方法和系统
CN102065339A (zh) 音视频媒体流的播放方法与系统
CN102811368A (zh) 一种移动视频直播系统
CN105765984B (zh) 发射设备、发射方法、接收设备和接收方法
KR102499231B1 (ko) 수신 장치, 송신 장치 및 데이터 처리 방법
KR20120114016A (ko) 사용자 컨텐츠를 외부 단말기에서 네트워크 적응적으로 스트리밍하는 방법 및 장치
WO2015035742A1 (zh) 一种数字电视的音视频共享方法、终端及系统
CN114629897B (zh) 数据处理方法以及系统
CN110225415B (zh) 一种媒体文件的播放方法
KR102216956B1 (ko) 다중 시점 영상의 프리로드 시스템 및 방법
CN106105239B (zh) 发送设备、发送方法、接收设备、接收方法和程序
US9332421B2 (en) Method and apparatus for random access to multimedia content in wireless communication system
CN108924591B (zh) 基于多终端业务的电视频道精准分群组发布方法及其系统
RU2658672C2 (ru) Устройство предоставления контента, программа, оконечное устройство и система предоставления контента
KR100453491B1 (ko) 네트워크를 통한 화상 통신 시스템 및 그 방법
KR20170143339A (ko) 라이트필드 동영상 제공 장치 및 방법
KR101038080B1 (ko) 단말기 적응형 멀티미디어 스트리밍 서비스를 위한 단말기 정보 통신 장치 및 방법

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20211105