Skip to content

Repository files navigation

Build Status Maven Central

webrtc-java

Connecting the Java world through WebRTC

webrtc-java is a Java wrapper for the WebRTC Native API, providing similar functionality to the W3C JavaScript API. It allows Java developers to build real-time communication applications for desktop platforms without having to work directly with native code.

The library provides a comprehensive set of Java classes that map to the WebRTC C++ API, making it possible to establish peer-to-peer connections, transmit audio and video, share screens, and exchange arbitrary data between applications.

Features

  • Complete WebRTC API implementation - Includes peer connections, media devices, data channels, and more
  • Cross-platform support - Works on Windows, macOS, and Linux (x64, ARM, ARM64)
  • Media capabilities - Audio and video capture from cameras and microphones
  • Desktop capture - Screen and application window sharing
  • Media file playback - Send video and audio files over a peer connection in place of a camera and microphone, with the optional FFmpeg-based webrtc-java-media module
  • Call recording - Record what a peer connection sends or receives into MKV, WebM or MP4 files, without re-encoding, with the webrtc-java-media module
  • Encoded transforms - Read, change or drop encoded audio and video frames on their way through a sender or receiver, e.g. for end-to-end encryption, like insertable streams in the browser
  • Data channels - Bidirectional peer-to-peer data exchange
  • Statistics API - Detailed metrics for monitoring connection quality
  • Simple integration - Available as a Maven dependency
  • Native performance - Thin JNI layer with minimal overhead

Getting Started

For more detailed information, check out the documentation:

  • Quickstart - Get up and running quickly with webrtc-java
  • Guides - Comprehensive documentation on using the library
  • Examples - Sample code demonstrating various features
  • Media Files - Sending video and audio files with the media module
  • Media Recording - Recording calls into media files with the media module
  • Encoded Transforms - Reading and changing encoded frames, e.g. for end-to-end encryption
  • Video Codecs - Adding video codecs implemented in Java, or limiting the built-in ones
  • Build Notes - Instructions for building the library from source

License

Copyright (c) 2019 Alex Andres

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

About

WebRTC for desktop platforms running Java

Topics

Resources

Stars

395 stars

Watchers

17 watching

Forks

Releases

Sponsor this project

Used by

Contributors

Languages