Coder Social home page Coder Social logo

jinchengshi / owt-client-native Goto Github PK

View Code? Open in Web Editor NEW

This project forked from open-webrtc-toolkit/owt-client-native

0.0 1.0 0.0 3.68 MB

Open WebRTC Toolkit client SDK for native Windows/Linux/iOS applications.

Home Page: https://01.org/open-webrtc-toolkit

License: Apache License 2.0

Shell 0.03% C++ 70.93% Python 7.01% C 10.01% Objective-C 4.35% Java 0.07% CSS 1.43% TeX 0.78% Objective-C++ 5.15% HTML 0.16% Dockerfile 0.07%

owt-client-native's Introduction

Open WebRTC Toolkit Native SDK

Introduction

The Open WebRTC Toolkit(OWT) client SDK for native Windows/Linux/Android/iOS applications is built upon the W3C WebRTC standard to accelerate the development of real time communication applications on these platforms. It supports peer to peer communication, and conference mode communication working with Open WebRTC Toolkit conference server.

  • Supported Windows platform: Windows 8 and above.
  • Supported Linux platform: Ubuntu 16.04 & 18.04.
  • Supported iOS platform: iOS 9.0 and above.

Documentation

To generate the API document, go to the scripts directory, and run python build-win.py --docs for Windows or ./gendoc.sh in talk/owt/docs/ios for iOS.

You need Doxygen in your path.

How to build

Prepare the development environment

Before you start, make sure you have the following prerequisites installed/configured:

The following dependencies are for Windows only:

Get the code

  • Make sure you clone the source code to a directory named src.
  • Create a file named .gclient in the directory above the src dir, with these contents:
solutions = [
  {
     "managed": False,
     "name": "src",
     "url": "https://github.com/open-webrtc-toolkit/owt-client-native.git",
     "custom_deps": {},
     "deps_file": "DEPS",
     "safesync_url": "",
  },
]
target_os = []

Build

Windows

  1. Set DEPOT_TOOLS_WIN_TOOLCHAIN to 0 in your system environment.
  2. Set Visual Studio related environmental variables. You can either call VsDevCmd.bat under Common7\Tools directory of your Visual Studio installation, or start build in Developer Command Prompt for VS.
  3. In src directory, Run gclient sync. It may take long time to download large amount of data the first time you run it. Also you are required to run this whenever DEPS file is updated.
  4. Go to the src/scripts directory, and run: python build-win.py --gn_gen --sdk --tests --ssl_root /path/to/ssl --msdk_root /path/to/msdk --output_path /path/to/output.
  • The optional msdk_root should be set to the directory of your Intel MediaSDK for Windows, version 2020 R1 or higher. This is typically C:\Program Files (x86)\IntelSWTools\Intel(R) Media SDK 2020 R1\Software Development Kit. If specified, will enable hardware accelerated video codecs for most of the video codecs.
  • The optional --sdk is to inform the build script to use lib.exe that is part of Visual Studio toolchain for merging owt libraries with external openssl libraries.

Linux

  1. In src direcotry, run gclient sync. It may take long time to download large amount of data.
  2. Go to the src/scripts directory, and run: python build_linux.py --gn_gen --sdk --tests --ssl_root /path/to/ssl --output_path /path/to/out.
  • If --msdk_root is specified to correct Intel MediaSDK path, for example, '/opt/intel/mediasdk', hardware decoders will be built besides the software implementations.
  • If the optional --fake_audio is specified, the internal audio devices implementation based on alsa or pulseaudio will not be built and a dummy implementation will be used.

Common build options shared by Windows and Linux:

  • By default x86|Debug library will be created. Specify --arch x64 if you want to build x64 libraries; Specify --scheme release if release version of library is to be built.
  • The built binary will be under path specified by --output_path. If --output_path is not set, the built binary will be under src/out directory.
  • The optional --ssl_root should be set to the root directory of lastest OpenSSL 1.1.1 binary. If specified, SDK will link to external openssl library instead of boringssl.
  • Use --gn_gen to generate args.gn during the first build or when you change either ssl_root/msdk_root/quic_root options.
  • The optional --quic_root should point to the directory containing WebTransport library pre-built from owt-sdk-quic repo. This will build the SDK with WebTransport enabled for conference mode. Refer to README.webtransport for the version of webtransport library to be used.
  • The optional --tests will trigger unit tests after build.

iOS

Update to latest macOS(Big Sur) and Xcode. iOS SDK can only be built on macOS.

  1. Replace the last line of .gclient with target_os=["ios"]
  2. Run gclient sync. It may take a long time to download a large amount of data.
  3. Run scripts\build.py.

Android

  1. Replace the last line of .gclient with target_os=["android"]
  2. Run gclient sync. It may take long time to download large amount of data.
  3. Build libwebrtc for OWT Android SDK with scripts/build_android.py.

Linux

  • Run gclient sync in the directory that contains 'src'. It may take a long time to download a large amount of data.
  • Go to the src/scripts directory, and run: python build_linux.py --gn_gen --sdk --output_path /path/to/out --fake_audio. The built binary will be under output_path,
  • The document for sdk will also be copied to this directory if docs have been generated.
  • If output_path is not set, the built binary will be under the src/out directory.

How to contribute

We warmly welcome community contributions to the owt-client-native repository. If you are willing to contribute your features and ideas to OWT, follow the process below:

  • Make sure your patch will not break anything, including all the build and tests.
  • Submit a pull request to Pull Requests.
  • Watch your patch for review comments, if any, until it is accepted and merged.

The OWT project is licensed under Apache License, Version 2.0. By contributing to the project, you agree to the license and copyright terms therein and release your contributions under these terms.

How to report issues

Use the "Issues" tab on Github.

See Also

http://webrtc.intel.com

owt-client-native's People

Contributors

brgavino avatar bshapero89 avatar chuigda avatar gaomingkai avatar grgustaf avatar huachunbo avatar ihorbenko avatar jianjunz avatar jinchengshi avatar labwebrtctest avatar lzhai avatar owt-bot avatar qwu16 avatar ssmao avatar suncf2 avatar taste1981 avatar xueshiqiao avatar yanbin7 avatar yflisa avatar yxian avatar zhangyihui1 avatar zhouhuirun2015 avatar zhy1030 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.