最佳实践-音视频对接webrtc

一、webrtc简介

WebRTC (Web Real-Time Communications) 是一项实时通讯系统技术,是google推出的,目前已经形成了标准,各浏览器都支持。通过webrtc技术,不用安装任何插件,用户与用户之间可以通过浏览器直接进行音视频通话。

库快科技的p2p sdk支持和浏览器webrtc建立传输通道,方便用户开发设备端的音视频程序可以直接通过浏览器播放,而不用安装任何插件以及app

二、webrtc建连流程

如上图所示,webrtc建立连接是一个比较复杂的过程,简单描述就是通过信令系统交换通信双方的ip、port信息,如果能p2p直连成功就直连,如果不能直接建立p2p连接则通过中转服务器建立连接。库快科技的p2p sdk内部已经完成上述复杂的建连过程,用户不需要进行开发,直接关注业务层音视频采集发送即可。

kkp2p sdk将webrtc channel建立好之后,业务层需要继续再channel基础之上进行dtls握手,生成通信双方的共享密钥,然后利用该密钥对音视频数据进行srtp加密,以保障通信数据的安全性,demo已经给出示例代码。

二、demo的运行介绍

demo会读取本地磁盘h264文件(源码已经附带),从中读取h264码流,进行rtp封包之后,再进行srtp加密,最后通过sdk创建的webrtc channel发送给浏览器的webrtc,最后浏览器就可以显示视频画面,视频画面是一个跳动的秒表以及一个滚动的小球。

三、demo运行步骤

1、首先启动设备端的模拟程序,启动界面后界面如下所示:

运行之前您需要再官网下载免费的云端服务自行进行部署,服务器域名填写实际的ip地址或者域名,然后点击选择dtls通信需要的数字证书(工程源码里面已经附带),然后点击开始,此时demo即开始监听浏览器webrtc发过来的请求。

2、接着打开html页面,为工程源码的web\webrtc\index.html,打开后效果如下图所示:

如上图所示,账号id为demo界面的peer id参数,服务器的ip填写您云端部署的p2p route模块的登录域名,服务器端口填写p2p route模块配置文件里面的http_wan_host里面的端口,连接描述信息和自定义参数是可选参数,可以不用填,填写好最后点击连接开始播放。

3、连接启动后,demo会启动一个工具push_rtp.exe,该工具主要作用是从h264文件读取码流然后rtp封包后通过udp发送给demo,demo收到rtp包后直接进行srtp加密后通过webrtc channel透传给浏览器。最后如果浏览器页面显现出如下画面,说明demo运行成功。