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.
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.
Before you start, make sure you have the following prerequisites installed/configured:
The following dependencies are for Windows only:
src
.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 = []
VsDevCmd.bat
under Common7\Tools
directory of your Visual Studio installation, or start build in Developer Command Prompt for VS
.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.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
.
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.src
direcotry, run gclient sync
. It may take long time to download large amount of data.src/scripts
directory, and run: python build_linux.py --gn_gen --sdk --tests --shared --output_path /path/to/out
.
--msdk_root
is specified to correct Intel MediaSDK path, for example, '/opt/intel/mediasdk', hardware decoders will be built besides the software implementations.--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.--shared
option when invoking build_linux.py. Shared library is recommend because it avoids symbol conflicts.--docs
option in above command.Common build options shared by Windows and Linux:
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.--output_path
. If --output_path
is not set, the built binary will be under src/out
directory.--sio_root
should be set to the root directory of Socket.IO cpp 3.x SDK, with headers in include
sub-folder, libsioclient_tls.a in lib
sub-folder.--ssl_root
should be set to the root directory of lastest OpenSSL 3.0 series directory. If specified, build tool will search external OpenSSL headers in ssl_root/include
and OpenSSL binaries in ssl_root/lib
. But binaries are not included in OWT SDK, so applications still need to link libcrypto and libssl.--ffmpeg_root
should be set to the root directory of FFmpeg, with headers in include
sub-folder, and libs in lib
sub-folder. Binary libraries are not necessary for building OWT SDK, but it's needed by your application or tests when this argument is specified. If this argument is not specified, FFmpeg will not be used. If neither --ffmpeg_root
nor --msdk_root
is specified, and external decoder doesn't support H.264, GN arg rtc_use_h264
should be set to false
, otherwise, a runtime error will occur.--gn_gen
to generate args.gn during the first build or when you change either ssl_root
/msdk_root
options.--tests
will trigger unit tests after build.build*.py
with --help
for argument description.Update to latest macOS and Xcode. iOS SDK can only be built on macOS.
gclient sync
. It may take a long time to download a large amount of data.scripts\build.py
.This branch doesn't support Android build. owt-client-android depends on 5.0.x branch of this repository.
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:
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.
Use the "Issues" tab on Github.