webrtchacks
Video Frame Processing on the Web – WebAssembly, WebGPU, WebGL, WebCodecs, WebNN, and WebTransport
There are a lot of options for reading and changing the pixels inside a video frame. In this post, W3C specialists François Daoust and Dominique Hazaël-Massieux (Dom) review every web-based option for processing video frames on the web available today - JavaScript, WebAssembly (wasm), WebGPU, WebGL, WebCodecs, Web Neural Networks (WebNN), and WebTransport.
The post Video Frame Processing on the Web – WebAssembly, WebGPU, WebGL, WebCodecs, WebNN, and WebTransport appeared first on webrtcHacks.
Real-Time Video Processing with WebCodecs and Streams: Processing Pipelines (Part 1)
WebRTC used to be about capturing some media and sending it from Point A to Point B. Machine Learning has changed this. Now it is common to use ML to analyze and manipulate media in real time for things like virtual backgrounds, augmented reality, noise suppression, intelligent cropping, and much more. To better accommodate this […]
The post Real-Time Video Processing with WebCodecs and Streams: Processing Pipelines (Part 1) appeared first on webrtcHacks.
coturn: No Time to Die – Q&A with new project leads
New coturn project leads Gustavo Garcia and Pavel Punsky give an update on the popular TURN server project, what's new in STUN and TURN standards, and the roadmap for the project
The post coturn: No Time to Die – Q&A with new project leads appeared first on webrtcHacks.
Revealing mediasoup’s core ingredients: Q&A with Iñaki Baz Castillo
I interviewed mediasoup’s co-founder, Iñaki Baz Castillo, about how the project got started, what makes it different, their recent Rust support, and how he maintains a developer community there despite the project’s relative unapproachability. mediasoup was one of the second-generation Selective Forwarding Units (SFUs). This second generation emerged to incorporate different approaches or address different use cases a few years after the first generation of SFUs came to market. mediasoup was and is different. It is node.js-based, built as a library to be part of a serve app, and incorporated the Object-oriented approaches used by ORTC – the alternative spec to WebRTC at the time. Today, mediasoup is a popular SFU choice among skilled WebRTC developers. mediasoup’s low-level native means this skill is required.
The post Revealing mediasoup’s core ingredients: Q&A with Iñaki Baz Castillo appeared first on webrtcHacks.
How Cloudflare Glares at WebRTC with WHIP and WHEP
WebRTC blackbox reverse engineering experts Gustavo and Fippo take a look at Cloudflare's new WebRTC implementation, how Cloudflare uses the new WebRTC-based streaming standards WHIP and WHEP, and the bold pronouncement that they can be a replacement to open source solutions.
The post How Cloudflare Glares at WebRTC with WHIP and WHEP appeared first on webrtcHacks.
Post-Peak WebRTC Developer Trends: An Open Source Analysis
WebRTC had its peaks during the pandemic, but how is it doing now? Did all those new projects die, putting the community back at pre-pandemic “normal” levels or is WebRTC still going strong? I built and analyzed a dataset from over a million GitHub’s events since 2019 to help answer are there many new WebRTC-related repos, how many new users is WebRTC attracting, is the community coding as much as it used to, how are new API's like Insertable Streams and WebCodecs doing?
The post Post-Peak WebRTC Developer Trends: An Open Source Analysis appeared first on webrtcHacks.
Calculating True End-to-End RTT (Balázs Kreith)
Balázs Kreith of the open-source WebRTC monitoring project, ObserveRTC shows how to calculate WebRTC latency - aka Round Trip Time (RTT) - in p2p scenarios and end-to-end across one or more with SFUs. WebRTC's getStats provides relatively easy access to RTT values, bu using those values in a real-world environment for accurate results is more difficult. He provides a step-by-step guide using some simple Docke examples that compute end-to-end RTT with a single SFU and in cascaded SFU environments.
The post Calculating True End-to-End RTT (Balázs Kreith) appeared first on webrtcHacks.
The Ultimate Guide to Jitisi Meet and JaaS
A full review and guide to all of the Jitsi Meet-related projects, services, and development options including self-install, using meet.jit.si, 8x8.vc, Jitsi as a Service (JaaS), the External iFrame API, lib-jitsi-meet, and the Jitsi React libraries among others.
The post The Ultimate Guide to Jitisi Meet and JaaS appeared first on webrtcHacks.
Meet vs. Duo – 2 faces of Google’s WebRTC
A very detailed look at the WebRTC implementations of Google Meet and Google Duo and how they compare using webrtc-internals and some reverse engineering.
The post Meet vs. Duo – 2 faces of Google’s WebRTC appeared first on webrtcHacks.
Fix Bad Lighting with JavaScript Webcam Exposure Controls (Sebastian Schmid)
Step-by-step guide on how to fix bad webcam lighting in your WebRTC app with standard JavaScript API's for camera exposure or natively with uvc drivers.
The post Fix Bad Lighting with JavaScript Webcam Exposure Controls (Sebastian Schmid) appeared first on webrtcHacks.
The WebRTC Bitcode Soap Opera (Saúl Ibarra Corretgé)
Saúl Ibarra Corretgé of Jitsi walks through his epic struggle getting Apple iOS bitcode building with WebRTC for his Apple Watch app.
The post The WebRTC Bitcode Soap Opera (Saúl Ibarra Corretgé) appeared first on webrtcHacks.
Optimizing WebRTC Power Consumption (Markus Handell)
The performance of WebRTC in Chrome as well as other RTC applications needed to be improved a lot during the pandemic when more people with a more diverse set of machines and network connections started to rely on video conferencing. Markus Handell is a team lead at Google who cares a lot about performance of […]
The post Optimizing WebRTC Power Consumption (Markus Handell) appeared first on webrtcHacks.
Ways to save an image from your webcam in 2022
Exploration and examples of the 5 different ways you can save an image from your webcam in JavaScript in 2022. Includes canvas.toBlob, OffscreenCanvas, createImageBitmap, ImageCapture, and ReadableStreams / MediaStreamTrackProcessor
The post Ways to save an image from your webcam in 2022 appeared first on webrtcHacks.
How is WebRTC doing and who is driving usage? (Hint: Google Meet)
I have been looking at these Chrome usage statistics available on chromestatus.com for a while together with Tsahi Levent-Levi for WebRTC Insights but they are too fascinating to keep them behind our paywall. Let’s do some coffee ground reading on the usage of a number of important APIs and what it tells us about what […]
The post How is WebRTC doing and who is driving usage? (Hint: Google Meet) appeared first on webrtcHacks.
How to add virtual background transparency in WebRTC
There is a cool new feature everyone has been trying to implement – background transparency. Virtual backgrounds have been around for a while. Rather than inserting a new background behind user(s), transparency removes the background altogether, allowing the app to place users over a screen share or together in a shared environment. There doesn’t seem […]
The post How to add virtual background transparency in WebRTC appeared first on webrtcHacks.
How does WebRTC End-to-End Encryption work? Matrix.org example (Dave Baker)
One of WebRTC’s great features is its mandated strong encryption. Encryption mechanisms are built-in, meaning developers don’t (often) need to deal with the details. However, these easy, built-in encryption mechanisms assume you have: 1) media is communicated peer-to-peer and 2) a secure signaling channel setup. Most group-calling services make use of a media server device, […]
The post How does WebRTC End-to-End Encryption work? Matrix.org example (Dave Baker) appeared first on webrtcHacks.
Apple’s not so private relay fails with WebRTC
Apple released iOS 15 with iCloud Private Relay broken for WebRTC - it still divulges your IP address. This post walks through why and how the WebRTC API's use your IP address information and how you can check what IP addresses are gathered.
The post Apple’s not so private relay fails with WebRTC appeared first on webrtcHacks.
Dealing with HTMLMediaElements and srcObjects in WebRTC applications
Philipp Hancke discusses a how to properly release Media Element resources with WebRTC and a recent Chrome issue that apps to stop handling larger numbers of participants.
The post Dealing with HTMLMediaElements and srcObjects in WebRTC applications appeared first on webrtcHacks.
Identifying Shared Tabs using Capture Handle (Elad Alon)
Introduction to capture handle - a new Chrome Origin Trial that lets a WebRTC screen sharing application communicate with the tab it is capturing. Examples use case discussed include detecting self-capture, improving the use of collaboration apps that are screen shared, and optimizing stream parameters of the captured content.
The post Identifying Shared Tabs using Capture Handle (Elad Alon) appeared first on webrtcHacks.
Making Zoom’s Smart Gallery on the Web with MediaPipe and BreakoutBox
How to seperate multiple people in the same camera feed into their own unique video streams that can be individually transmitted Google's MediaPipe and the W3C's new MediaStreamTrack API
The post Making Zoom’s Smart Gallery on the Web with MediaPipe and BreakoutBox appeared first on webrtcHacks.