ORTC Lib

View project on GitHub

Welcome to ORTC Lib.

ORTC Lib is an open source library for UWP, iOS, and Android for building RTC (Real-Time Communication) applications compatible with other WebRTC and ORTC browsers (or other on-the-wire compatible technologies).

Optimized for Mobile

ORTC Lib has been designed specifically with mobile applications in mind. The engine is optimized for mobile networks and firewalls, power consumption, CPU, media handling, backgrounding, and logging and statistics.

WebRTC 1.0 API Adapter / Shim

ORTC Lib has a built-in adapter API exposing the standard WebRTC 1.0 API while using the ORTC Lib core engine. This allows developers to continue to use the current WebRTC 1.0 API while graduling adapting code to take advantage of all the advanced ORTC API capabilities and features.

Key Features

Mobile-optimized ICE stack
  • Aggressive and regular nomination
  • Continuous nomination
  • Extended ICE gather options
  • Controllable ICE candidate search order
  • IPv6 optimizations
Advanced Media controls & support
  • Granular control of bandwidth usage
  • Simulcast support
  • Scalable Video Coding (SVC) ready*
  • Start, stop and change media sources directly
  • Many audio & video codecs
  • Multiple Cipher Suites (SDES, DTLS)
Extensive Native Platform support
  • iOS, Android, Windows, Mac
Intuitive Object API’s
  • Fully ORTC 1.0 complaint
Improved network performance
  • Faster setup times
  • Quicker network handovers for near-seamless handoffs/roaming
  • Control bandwidth vs. quality/performance tradeoffs
Better native/mobile support
  • Optimize mobile application network & battery usage
  • Support embedded/IoT devices*
Application-optimized session establishment
  • Unidirectional stream support for broadcast applications
  • Forking/twining for recording
Easier development
  • Intuitive Object API’s without complex SDP parsing & munging
  • Optimized for your specific application without forking the stack
  • Popular native development languages supported
Future-proof implementation
  • WebRTC-NV/2.0 is based on ORTC
  • More easily incorporate new technologies like SVC*
Microsoft friendly
  • Works with Windows 10 Edge and Windows UWP

Technical Specs

Supported environments
  • UWP
  • iOS*
  • Mac*
  • Android*
Supported languages
  • C#
  • C++
  • Swift / Objective-C*
  • Java*
Audio codecs & capabilities
  • Opus
  • G.711
  • G722
  • Isac*
  • CN
  • DTMF
  • RED
  • RTX
  • FEC
Video codecs & capabilities
  • VP8
  • VP9*
  • H.264
  • RED
  • RTX
  • ULPFEC
Simulcast support
Forking support
ICE
  • Aggressive and regular nomination
  • Continuous nomination
  • Extended ICE gather options
  • Controllable ICE candidate search order (faster setup)
  • ICE-lite compatible
IPv6 support
SVC*
Removed Chrome dependencies
  • WebRTC renderer
  • JSEP/SDP
  • PeerConnection
  • Libjingle
Security
  • OpenSSL
NAT Traversal
  • Custom ICE/STUN/TURN implementation
  • (RFC Standard)
  • IPv6
  • Extended support for Trickle ICE
  • Extended support for Continuous Gathering Mode
  • Multiple Network Interfaces (multi-homed)
  • ICE Consent Freshness
  • MOBILITY-TICKET support
Assembly Optimizations
  • YUV conversion
  • ...and too much more to list here
DNS
  • IDN (Internationalized Domain Names)
  • SRV
  • A / AAAA
Mobile
  • Reduced energy consumption
  • Application Backgrounding
  • Reduced footprint
Media
  • RTP / RTCP Multiplexing
  • A/V Multiplexing
  • Enhanced audio routing
  • Video rotation control
  • Facial recognition (iOS)*
Logging
  • Remote
  • Local

Support or Contact

Need help with ORTC Lib? Check out the official ORTC API documentation or contact the lead contributor and I’ll help you sort it out.

* Planned features