一种基于WebRTC的课堂实时视频投影方法及系统技术方案

技术编号:22726011 阅读:46 留言:0更新日期:2019-12-04 07:09
本发明专利技术公开了一种基于WebRTC的课堂实时视频投影方法及系统,其特征在于,包括通过应用WebRTC标准分别在PC端和移动端配置应用程序,平板端应用负责在投影时开启平板电脑的摄像头和麦克风,用于采集视频和音频数据及数据编码,并基于WebRTC建立的点对点数据传输通道,将视频和音频以媒体流传输至PC端,PC端接收音视频数据的媒体流后,一方面执行对媒体流的播放,一方面执行对媒体流的保存和本地存储;同时支持移动端对PC端视频播放的远程且实时控制。达到在无需搭建额外的流媒体服务器条件下即可实现在局域网内视频实时传输及投影,省去了部署流媒体服务器的繁琐环节,降低了实时投影系统部署的复杂性的效果。

A real-time video projection method and system based on webrtc

The invention discloses a class real-time video projection method and system based on webrtc, which is characterized in that the application program is respectively configured at the PC end and the mobile end by applying the webrtc standard, and the flat end application is responsible for opening the camera and microphone of the tablet computer when projecting, for collecting video and audio data and data coding, and point-to-point data transmission established based on webrtc The transmission channel transmits video and audio as media stream to the PC end. After the PC end receives the media stream of the received video data, on the one hand, it performs the playback of the media stream, on the other hand, it performs the storage and local storage of the media stream; on the other hand, it supports the remote and real-time control of the video playback of the PC end by the mobile end. It can realize the real-time transmission and projection of video in LAN without building additional streaming media server, save the tedious part of deploying streaming media server, and reduce the complexity of real-time projection system deployment.

【技术实现步骤摘要】
一种基于WebRTC的课堂实时视频投影方法及系统
本专利技术涉及教育信息展示领域,特别是涉及一种基于WebRTC的课堂实时视频投影方法及系统。
技术介绍
课堂上,教师采用视频投影方式以增强课堂教学的互动性,采用的方式多是将视频文件保存在笔记本电脑、平板电脑或移动手机本地,通过数据适配线与投影展示端设备相互连接达到投影展示的目的。随着课堂对实时投影的需求增多,人们开始研究如何将在课堂实时采集音视频数据投送到PC电脑上展示,专利“一种应用于教学场景的无线视频投影系统”(申请号:201810669242.8)提出一种解决方案:搭建RTMP流媒体服务器用于视频接收、播放及存储,然而播放器和服务器之间的数据传输对网络环境依赖性强,投屏延迟的问题并不能有效解决,甚至会出现人眼能明显感觉的延迟,再者,网络环境的不稳定无疑会加重投屏的延时,严重影响课堂教学的正常进程,因此急需一种低延迟且传输速度快的实时视频投影技术。WebReal-TimeCommunication(Web实时通信,WebRTC)由一组标准、协议和JavaScriptAPI组成,用于实现浏览器之间(端到端)的音频、视频及数据共享。在实时通信中,音视频的采集和处理是一个很复杂的过程。比如音视频流的编解码、降噪和回声消除等,但是在WebRTC中,这一切都交由浏览器的底层封装来完成。我们可以直接拿到优化后的媒体流,然后将其输出到本地屏幕和扬声器,或者转发给其对等端。专利“云投影的方法、装置及系统”(申请号:201711292228.2)通过WebRTC标准向投影展示端发送图像数据及音频数据,以使投影展示端投影图像数据及播放音频数据。投影发送端与投影展示端统一通过WebRTC标准传输图像数据及音频数据,而不需利用各自对应协议的数据适配线,实现了点对点的投影方式,可以降低线程部署及管理难度,同时实现了图像数据及音频数据的同时展示,用户体验佳;然而本专利仅仅是移动端屏幕录制的实时投影,并没有提供关于“视频拍摄和同步投影”更详细的解决细节。
技术实现思路
本专利技术所要解决的技术问题是克服现有技术的不足,提供一种基于WebRTC的课堂实时视频投影方法及系统。为解决上述技术问题,本专利技术提供一种基于WebRTC的课堂实时视频投影方法,其特征在于,包括通过应用WebRTC标准分别在PC端和移动端配置应用程序,平板端应用负责在投影时开启平板电脑的摄像头和麦克风,用于采集视频和音频数据及数据编码,并基于WebRTC建立的点对点数据传输通道,将视频和音频以媒体流传输至PC端,PC端接收音视频数据的媒体流后,一方面执行对媒体流的播放,一方面执行对媒体流的保存和本地存储;同时支持移动端对PC端视频播放的远程且实时控制,具体实现步骤有:步骤1:建立PC端应用和移动端应用之间的TCP控制命令通道;待移动端和PC端接入无线路由,使两者同处于一个局域网内后,基于TCP协议建立并保持PC端应用和移动端应用之间的TCP通信;具体为:步骤101:通过PC端应用的TCP服务模块启动TCP服务器,服务端口为第一端口,启动侦听是否有Pad端发送的连接请求;步骤102:启动PC端的UDP广播,UDP服务端口为第二端口,广播内容为:TCP服务端口(即第一端口)及当前PC端应用登录的用户账户;步骤103:Pad端应用的TCP客户端侦听局域网的UDP广播,通过接收广播获取PC端的IP地址、服务端口及PC端应用登录的用户账户;步骤104:根据IP地址,Pad端应用向PC端应用发送包含PC端应用登录账户信息的投屏连接请求;特别地,投屏请求选用protobuf编码为二进制数据;步骤105:PC端的服务器响应连接请求,将请求中Pad端应用登录账号信息与PC端应用登录账号信息进行比对,如一致,反馈连接成功;如不一致,反馈连接失败;步骤2:PC端和移动端向Websocket服务器请求连接,具体为:通过Websocket服务模块启动Websocket服务器,服务端口为第三端口,PC端和移动移动端向Websocket服务器发起登记请求,Websocket服务器接收请求后,分别为PC端和移动端各自生成身份登记ID号,作为PC端和移动端的唯一识别;Websocket服务器反馈已有的身份登记ID号及各客户端应用信息至PC端和移动端;步骤3:待PC端和移动端接收到对方的身份登记ID号后,PC端和移动端通过交换WebRTCSDP信息建立实时双向传输视频的通道,即P2P通道;待移动端和PC端之间用于流媒体传输的P2P通道建立后,移动端产生的实时视频数据和音频数据在转化为流媒体数据能通过P2P通道直接传送至PC端;步骤4:在移动端拍摄视频的过程中,待移动端捕捉到由用户点击“投影”按钮而触发生成“视频投屏”指令时,向PC端发送“视频投屏”指令,指令中明确媒体编号及音量;PC端接收到指令,调用流媒体播放模块将流媒体流转为视频数据进行播放显示;特别地,在PC端播放显示过程中,PC端流媒体录制模块对接收到的流媒体数据持续获取并记录保存,直至拍摄结束将记录的流媒体数据转为流媒体文件存储至本地;步骤5:视频回放的实时控制:待需回放视频投屏时,在保证步骤4视频投屏正常的情况下,由移动端向PC端发送“视频回放”指令,告知PC端回放视频的文件名,PC端接收指令,根据文件名在本地数据库中查对应流媒体数据的存储路径,调取流媒体数据在流媒体播放器中播放;在回放视频投屏过程中,移动端通过发送进度控制指令、音量调节指令及播放状态指令,对PC端的视频进度、视频音量及视频状态进行实时控制。所述步骤2中,待PC端和移动端连接Websocket服务器后,PC端和移动端任一方从Websocket信令服务器的退出,均会通知另一方,视频投屏自动结束。所述步骤3的P2P通道建立过程具体包括:步骤301:移动端应用发起“启动投影”的指令,移动端应用自动开启摄像头及麦克风,采集实时产生的媒体数据,所述媒体数据包括视频数据及音频数据,并通过TCP控制指令通道通知PC端启动投影;移动端的Webrtc客户端模块生成SDP信息,消息参数包括媒体信息、传输协议及媒体流传输信息,其中媒体信息包括要交换的媒体类型、媒体格式及采样率;媒体流传输信息包括移动端地址及远程传输端口;步骤302:移动端向Websocket服务器请求获取媒体流传输服务,告知服务器移动端SDP信息及接收媒体数据的PC端身份登记ID号;步骤303:PC端应用接收到“启动投影”指令,PC端应用的Webrtc客户端模块生成SDP信息用于描述媒体信息、传输协议及媒体流传输信息,其中媒体信息包括媒体类型、媒体格式、媒体采样率;媒体流传输信息包括PC端地址及远程传输端口;步骤304:PC端向Websocket服务器申请媒体传输服务,告知服务器PC端SDP及接收媒体数据的移动端身份登记ID号;步骤305:Websocket服务器响应移动端和PC端的媒体传输服务请求,应用WebRTCICE协议,通过交换双方的SDP信息完本文档来自技高网
...

【技术保护点】
1.一种基于WebRTC的课堂实时视频投影方法,其特征在于,包括通过应用WebRTC标准分别在PC端和移动端配置应用程序,平板端应用负责在投影时开启平板电脑的摄像头和麦克风,用于采集视频和音频数据及数据编码,并基于WebRTC建立的点对点数据传输通道,将视频和音频以媒体流传输至PC端,PC端接收音视频数据的媒体流后,一方面执行对媒体流的播放,一方面执行对媒体流的保存和本地存储;同时支持移动端对PC端视频播放的远程且实时控制,具体实现步骤有:/n步骤1:建立PC端应用和移动端应用之间的TCP控制命令通道;待移动端和PC端接入无线路由,使两者同处于一个局域网内后,基于TCP协议建立并保持PC端应用和移动端应用之间的TCP通信;具体为:/n步骤101:通过PC端应用的TCP服务模块启动TCP服务器,服务端口为第一端口,启动侦听是否有Pad端发送的连接请求;/n步骤102:启动PC端的UDP广播,UDP服务端口为第二端口,广播内容为:TCP服务端口(即第一端口)及当前PC端应用登录的用户账户;/n步骤103:Pad端应用的TCP客户端侦听局域网的UDP广播,通过接收广播获取PC端的IP地址、服务端口及PC端应用登录的用户账户;/n步骤104:根据IP地址,Pad端应用向PC端应用发送包含PC端应用登录账户信息的投屏连接请求;特别地,投屏请求选用protobuf编码为二进制数据;/n步骤105:PC端的服务器响应连接请求,将请求中Pad端应用登录账号信息与PC端应用登录账号信息进行比对,如一致,反馈连接成功;如不一致,反馈连接失败;/n步骤2:PC端和移动端向Websocket服务器请求连接,具体为:通过Websocket服务模块启动Websocket服务器,服务端口为第三端口,PC端和移动移动端向Websocket服务器发起登记请求,Websocket服务器接收请求后,分别为PC端和移动端各自生成身份登记ID号,作为PC端和移动端的唯一识别;Websocket服务器反馈已有的身份登记ID号及各客户端应用信息至PC端和移动端;/n步骤3:待PC端和移动端接收到对方的身份登记ID号后,PC端和移动端通过交换WebRTCSDP信息建立实时双向传输视频的通道,即P2P通道;待移动端和PC端之间用于流媒体传输的P2P通道建立后,移动端产生的实时视频数据和音频数据在转化为流媒体数据能通过P2P通道直接传送至PC端;/n步骤4:在移动端拍摄视频的过程中,待移动端捕捉到由用户点击“投影”按钮而触发生成“视频投屏”指令时,向PC端发送“视频投屏”指令,指令中明确媒体编号及音量;PC端接收到指令,调用流媒体播放模块将流媒体流转为视频数据进行播放显示;/n特别地,在PC端播放显示过程中,PC端流媒体录制模块对接收到的流媒体数据持续获取并记录保存,直至拍摄结束将记录的流媒体数据转为流媒体文件存储至本地;/n步骤5:视频回放的实时控制:待需回放视频投屏时,在保证步骤4视频投屏正常的情况下,由移动端向PC端发送“视频回放”指令,告知PC端回放视频的文件名,PC端接收指令,根据文件名在本地数据库中查对应流媒体数据的存储路径,调取流媒体数据在流媒体播放器中播放;在回放视频投屏过程中,移动端通过发送进度控制指令、音量调节指令及播放状态指令,对PC端的视频进度、视频音量及视频状态进行实时控制。/n...

【技术特征摘要】
1.一种基于WebRTC的课堂实时视频投影方法,其特征在于,包括通过应用WebRTC标准分别在PC端和移动端配置应用程序,平板端应用负责在投影时开启平板电脑的摄像头和麦克风,用于采集视频和音频数据及数据编码,并基于WebRTC建立的点对点数据传输通道,将视频和音频以媒体流传输至PC端,PC端接收音视频数据的媒体流后,一方面执行对媒体流的播放,一方面执行对媒体流的保存和本地存储;同时支持移动端对PC端视频播放的远程且实时控制,具体实现步骤有:
步骤1:建立PC端应用和移动端应用之间的TCP控制命令通道;待移动端和PC端接入无线路由,使两者同处于一个局域网内后,基于TCP协议建立并保持PC端应用和移动端应用之间的TCP通信;具体为:
步骤101:通过PC端应用的TCP服务模块启动TCP服务器,服务端口为第一端口,启动侦听是否有Pad端发送的连接请求;
步骤102:启动PC端的UDP广播,UDP服务端口为第二端口,广播内容为:TCP服务端口(即第一端口)及当前PC端应用登录的用户账户;
步骤103:Pad端应用的TCP客户端侦听局域网的UDP广播,通过接收广播获取PC端的IP地址、服务端口及PC端应用登录的用户账户;
步骤104:根据IP地址,Pad端应用向PC端应用发送包含PC端应用登录账户信息的投屏连接请求;特别地,投屏请求选用protobuf编码为二进制数据;
步骤105:PC端的服务器响应连接请求,将请求中Pad端应用登录账号信息与PC端应用登录账号信息进行比对,如一致,反馈连接成功;如不一致,反馈连接失败;
步骤2:PC端和移动端向Websocket服务器请求连接,具体为:通过Websocket服务模块启动Websocket服务器,服务端口为第三端口,PC端和移动移动端向Websocket服务器发起登记请求,Websocket服务器接收请求后,分别为PC端和移动端各自生成身份登记ID号,作为PC端和移动端的唯一识别;Websocket服务器反馈已有的身份登记ID号及各客户端应用信息至PC端和移动端;
步骤3:待PC端和移动端接收到对方的身份登记ID号后,PC端和移动端通过交换WebRTCSDP信息建立实时双向传输视频的通道,即P2P通道;待移动端和PC端之间用于流媒体传输的P2P通道建立后,移动端产生的实时视频数据和音频数据在转化为流媒体数据能通过P2P通道直接传送至PC端;
步骤4:在移动端拍摄视频的过程中,待移动端捕捉到由用户点击“投影”按钮而触发生成“视频投屏”指令时,向PC端发送“视频投屏”指令,指令中明确媒体编号及音量;PC端接收到指令,调用流媒体播放模块将流媒体流转为视频数据进行播放显示;
特别地,在PC端播放显示过程中,PC端流媒体录制模块对接收到的流媒体数据持续获取并记录保存,直至拍摄结束将记录的流媒体数据转为流媒体文件存储至本地;
步骤5:视频回放的实时控制:待需回放视频投屏时,在保证步骤4视频投屏正常的情况下,由移动端向PC端发送“视频回放”指令,告知PC端回放视频的文件名,PC端接收指令,根据文件名在本地数据库中查对应流媒体数据的存储路径,调取流媒体数据在流媒体播放器中播放;在回放视频投屏过程中,移动端通过发送进度控制指令、音量调节指令及播放状态指令,对PC端的视频进度、视频音量及视频状态进行实时控制。


2.如权利要求1所述的一种基于WebRTC的课堂实时视频投影方法,其特征在于:所述步骤2中,待PC端和移动端连接Websocket服务器后,PC端和移动端任一方从Websocket信令服务器的退出,均会通知另一方,视频投屏自动结束。


3.如权利要求2所述的一种基于WebRTC的课堂实时视频投影方法,其特征在于:所述步骤3的P2P通道建立过程具体包括:
步骤301:移动端应用发起“启动投影”的指令,移动端应用自动开启摄像头及麦克风,采集实时产生的媒体数据,所述媒体数据包括视频数据及音频数据,并通过TCP控制指令通道通知PC端启动投影;移动端的Webrtc客户端模块生成SDP信息,消息参数包括媒体信息、传输协议及媒体流传输信息,其中媒体信息包括要交换的媒体类型、媒体格式及采样率;媒体流传输信息包括移动端地址及远程传输端口;
步骤302:移动端向Websocket服务器请求获取媒体流传输服务,告知服务器移动端SDP信息及接收媒体数据的PC端身份登记ID号;
步骤303:PC端应用接收到“启动投影”指令,PC端应用的Webrtc客户端模块生成SDP信息用于描述媒体信息、传输协议及媒体流传输信息,其中媒体信息包括媒体类型、媒体格式、媒体采样率;媒体流传输信息包括PC端地址及远程传输端口;
步骤304:PC端向Websocket服务器申请媒体传输服务,告知服务器PC端SDP及接收媒体数据的移动端身份登记ID号;
步骤305:Websocket服务...

【专利技术属性】
技术研发人员:吴小建
申请(专利权)人:焦点教育科技有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1