Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,13 @@ The library provides a comprehensive set of Java classes that map to the WebRTC
- **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
- **Video processing** - Change camera and desktop frames before they are sent, e.g. to blur a background, draw an overlay or blank out part of the screen
- **Hardware video codecs** - Encode and decode H.264, H.265, VP9 and AV1 on the GPU with NVENC/NVDEC, Media Foundation, VA-API and VideoToolbox, falling back to software
- **Custom video codecs** - Plug video encoders and decoders written in Java into WebRTC next to the built-in ones, or limit the codecs a factory offers
- **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
- **Encoded frame injection** - Send audio and video that is already encoded, such as a camera's H.264 stream or a recording, through a sender without re-encoding it
- **Data channels** - Bidirectional peer-to-peer data exchange
- **Statistics API** - Detailed metrics for monitoring connection quality
- **Simple integration** - Available as a Maven dependency
Expand Down
6 changes: 6 additions & 0 deletions docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,10 +32,16 @@ features:
details: Record what a peer connection sends or receives into MKV, WebM or MP4 files. Encoded frames go into the file as they are, without re-encoding, so recording costs next to no CPU and keeps the exact quality of the call.
- title: End-to-End Encryption
details: Encoded transforms let Java code read, change or drop every encoded frame between encoder and network, like insertable streams in the browser; the building block for end-to-end encryption, frame metadata and stream analysis.
- title: Send Pre-encoded Media
details: Encoded frame injectors take the place of a sender's track and send frames that are already encoded, such as an IP camera's H.264 stream or a recording, with no encoding in WebRTC.
- title: Hardware Video Codecs
details: Encode and decode H.264, H.265, VP9 and AV1 on the GPU through NVENC and NVDEC, Media Foundation, VA-API and VideoToolbox. A stream the hardware cannot take falls back to software without dropping the call.
- title: Custom Video Codecs
details: Plug video encoders and decoders written in Java into WebRTC, next to the built-in VP8, VP9, AV1 and H.264, to bring in a codec of your own or a hardware encoder from another library.
- title: Screen Sharing
details: Share application windows or the full desktop with minimal setup; integrate screen capture streams like any other media stream.
- title: Video Processing
details: Put a video processor between a camera or desktop source and its tracks to change, replace or drop each frame before it is sent, for background blur, overlays, mirroring or hiding part of the screen.
- title: Data Channels
details: Reliable and unordered/ordered SCTP data channels for arbitrary messaging, file transfer, and app signaling.
- title: Statistics API for monitoring
Expand Down
Loading