WebRTC (iOS)技术篇一(编译)

WebRTC (iOS)技术篇一(编译)

1 编译

  1. 基本上参照官网的方法是能编译通过的,建议购买一台国外的 AES 服务器,否则翻墙会出现无数的坑。
  2. WebRTC iOS 官网编译地址
  3. 在 gclient sync 下载的过程中有时候会出现某些类库无法的情况,这个时候可以使用 git clone 的方法,将相关类库下载到 third_party 相关目录中
  4. 有的时候会出现亚马逊证书的问题,这个时候请将下面这个方法放到 depot_tools 中,然后
  5. 下载 download_from_google_storage 这个文件,然后替换掉 depot_tools 中的文件,重新 gclient sync,到此下载完结
  6. 编译和使用 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 音视频聊天,效果也是很好的

  1. coturn NAT 相关服务搭建,这个是 WebRTC 使用的前提,视频或者音频流通过该服务来进行传输,分为 stun 和 turn 两种。
  2. 信令服务器,不用完全根据网上的方法去搭建信令服务器,WebRTC 主要是用信令服务器来传输 sdp 信息,如果你能够通过 IM 传递 sdp 也是可以的,还简单,常见的比如 socketio。(需要相关 demo 的可以回复联系我)

音视频会议室

  1. WebRTC 默认不支持会议室功能,因为多路数据收发是很豪客户端性能的,这是时候需要 server 来做数据中转,常见 server 有 MCU 和 SFU
  2. 本文后续文章会介绍 SFU 的环境大家和使用(以 janus-gateway 举例)
  3. 大家可以先看看我搭建的 demo 试玩一下,正常配置的 server 使用 janus-gateway 性能是很高的
  4. janus-gateway github 地址

后面会发文章继续介绍

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章