WebRTC (iOS)技术篇一(编译)
1 编译
- 基本上参照官网的方法是能编译通过的,建议购买一台国外的 AES 服务器,否则翻墙会出现无数的坑。
- WebRTC iOS 官网编译地址
- 在 gclient sync 下载的过程中有时候会出现某些类库无法的情况,这个时候可以使用 git clone 的方法,将相关类库下载到 third_party 相关目录中
- 有的时候会出现亚马逊证书的问题,这个时候请将下面这个方法放到 depot_tools 中,然后
- 下载 download_from_google_storage 这个文件,然后替换掉 depot_tools 中的文件,重新 gclient sync,到此下载完结
- 编译和使用 AppRTCMobile 的方法网上很多,可以直接使用。
import urllib2
import os
httpsPrefix = "https://storage.googleapis.com/"
gsPrefix = "gs://"
def download_gs_to_file(url, fileName):
download_http_to_file(url.replace(gsPrefix, httpsPrefix), fileName)
def download_http_to_file(url, fileName):
path=os.path.dirname(fileName)
if not os.path.exists(path):
os.makedirs(path)
response = urllib2.urlopen(url)
CHUNK = 16 * 1024
with open(fileName, 'wb') as f:
while True:
chunk = response.read(CHUNK)
if not chunk:
break
f.write(chunk)
print ('download ......ok')
if __name__ == "__main__":
print ('This is main of module "hello.py"')
download_gs_to_file('gs://chromium-android-tools/play-services/10.2.0/31843001b7ce94fbdf71f2a9db76b28548a795fa', '/tmp/tmpl1RB43/LICENSE')
简单使用(P2P)
WebRTC 默认直接支持 P2P 音视频聊天,效果也是很好的
- coturn NAT 相关服务搭建,这个是 WebRTC 使用的前提,视频或者音频流通过该服务来进行传输,分为 stun 和 turn 两种。
- 信令服务器,不用完全根据网上的方法去搭建信令服务器,WebRTC 主要是用信令服务器来传输 sdp 信息,如果你能够通过 IM 传递 sdp 也是可以的,还简单,常见的比如 socketio。(需要相关 demo 的可以回复联系我)
音视频会议室
- WebRTC 默认不支持会议室功能,因为多路数据收发是很豪客户端性能的,这是时候需要 server 来做数据中转,常见 server 有 MCU 和 SFU
- 本文后续文章会介绍 SFU 的环境大家和使用(以 janus-gateway 举例)
- 大家可以先看看我搭建的 demo 试玩一下,正常配置的 server 使用 janus-gateway 性能是很高的
- janus-gateway github 地址
后面会发文章继续介绍