diff --git a/README.md b/README.md index 444e2c2f..a8417422 100644 --- a/README.md +++ b/README.md @@ -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 diff --git a/docs/index.md b/docs/index.md index 12c2f867..68740180 100644 --- a/docs/index.md +++ b/docs/index.md @@ -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