Finding the Warts in WebAssembly+WebRTC
A while ago we looked at how Zoom was avoiding WebRTC by using WebAssembly to ship their own audio and video codecs instead of using the ones built into the browser’s WebRTC. I found an interesting branch in Google’s main (and sadly mostly abandoned) WebRTC sample application apprtc this past January. The branch is named wartc… a name which is going to stick as warts!
The repo contains a number of experiments related to compiling the webrtc.org library as WebAssembly and evaluating the performance.
Continue reading Finding the Warts in WebAssembly+WebRTC at webrtcHacks.
How Janus Battled libFuzzer and Won (Alessandro Toppi)
Thanks to work initiated by Google Project Zero, fuzzing has become a popular topic within WebRTC since late last year. It was clear WebRTC was lacking in this area. However, the community has shown its strength by giving this topic an immense amount of focus and resolving many issues. In a previous post, we showed how to break the Janus Server RTCP parser. The Meetecho team behind Janus did not take that lightly. They got to the bottom of what turned out to be quite a big project.
Continue reading How Janus Battled libFuzzer and Won (Alessandro Toppi) at webrtcHacks.
First steps with QUIC DataChannels
What I learned about H.264 for WebRTC video (Tim Panton)
Lets get better at fuzzing in 2019 – here’s how
Tribbles Startrek GIF from Tribbles GIFs
Fuzzing is a Quality Assurance and security testing technique that provides unexpected, often random data to a program input to try to break it. Natalie Silvanovich from Google’s Project Zero team has had quite some fun fuzzing various different RTP implementations recently.
She found vulnerabilities in:
- WebRTC — mostly issues in the RTP payload
- Facetime – a few out-of-bounds, stack corruption, and heap corruption issues
- Whatsapp and what didn’t work
In a nutshell, she found a bunch of vulnerabilities just by throwing unexpected input at parsers.
Continue reading Lets get better at fuzzing in 2019 – here’s how at webrtcHacks.
Troubleshooting Unwitting Browser Experiments (Al Brooks)
Improving Scale and Media Quality with Cascading SFUs (Boris Grozev)
How Zoom’s web client avoids using WebRTC
Zoom has a web client that allows a participant to join meetings without downloading their app. Chris Koehncke was excited to see how this worked (watch him at the upcoming KrankyGeek event!) so we gave it a try. It worked, removing the download barrier. The quality was acceptable and we had a good chat for half an hour.
Opening chrome://webrtc-internals showed only getUserMedia being used for accessing camera and microphone but no RTCPeerConnection like a WebRTC call should have.
Continue reading How Zoom’s web client avoids using WebRTC at webrtcHacks.
Breaking Point: WebRTC SFU Load Testing (Alex Gouaillard)
If you plan to have multiple participants in your WebRTC calls then you will probably end up using a Selective Forwarding Unit (SFU). Capacity planning for SFU’s can be difficult – there are estimates to be made for where they should be placed, how much bandwidth they will consume, and what kind of servers you need.
To help network architects and WebRTC engineers make some of these decisions, webrtcHacks contributor Dr. Alex Gouaillard and his team at CoSMo Software put together a load test suite to measure load vs.
Continue reading Breaking Point: WebRTC SFU Load Testing (Alex Gouaillard) at webrtcHacks.
Messenger was not forced to wiretap but…
By david drexler – Flickr, CC BY 2.0, Link
Back in August, Reuters reported on a “secret legal fight” between the FBI and Facebook about wiretapping Messenger calls. The Verge as they found our old post about reverse-engineering Messenger from 2015 and had a number of follow-up questions on it for a Messenger wiretapping article they ran. Technical details on the case are quite hard to find so I was not able to dig deeper into the specifics around wiretapping.
Continue reading Messenger was not forced to wiretap but… at webrtcHacks.
Guide to WebRTC with Safari in the Wild (Chad Phillips)
I has been more than a year since Apple first added WebRTC support to Safari. My original post reviewing the implementation continues to be popular here, but it does not reflect some of the updates since the first limited release. More importantly, given its differences and limitations, many questions still remained on how to best develop WebRTC applications for Safari.
I ran into Chad Phillips at Cluecon (again) this year and we ended up talking about his arduous experience making WebRTC work on Safari.
Continue reading Guide to WebRTC with Safari in the Wild (Chad Phillips) at webrtcHacks.
VR Video Calling with WebRTC and WebVR (Dan Jenkins)
WebRTC isn’t the only cool media API on the Web Platform. The Web Virtual Reality (WebVR) spec was introduced a few years ago to bring support for virtual reality devices in a web browser. It has since been migrated to the newer WebXR Device API Specification.
I was at ClueCon earlier this summer where Dan Jenkins gave a talk showing that it is relatively easy to add a WebRTC video conference streams into a virtual reality environment using WebVR using FreeSWITCH.
Continue reading VR Video Calling with WebRTC and WebVR (Dan Jenkins) at webrtcHacks.
Suspending Simulcast Streams for Savvy Streamlining (Brian Baldino)
If you’re new to WebRTC, Jitsi was the first open source Selective Forwarding Unit (SFU) and continues to be one of the most popular WebRTC platforms. They were in the news last week because their parent group inside Atlassian was sold off to Slack but the team clarified this does not have any impact on the Jitsi […]
The post Suspending Simulcast Streams for Savvy Streamlining (Brian Baldino) appeared first on webrtcHacks.
A playground for Simulcast without an SFU
Simulcast is one of the more interesting aspects of WebRTC for multiparty conferencing. In a nutshell, it means sending three different resolution (spatial scalability) and different frame rates (temporal scalability) at the same time. Oscar Divorra’s post contains the full details. Usually, one needs a SFU to take advantage of simulcast. But there is a […]
The post A playground for Simulcast without an SFU appeared first on webrtcHacks.
Chrome Screensharing Blues – preparing for getDisplayMedia
The Chrome Webstore has decided to stop allowing inline installation for Chrome extensions. This has quite an impact on WebRTC applications since screensharing in Chrome currently requires an extension. Will the [crayon-5b2272a8d9b0f447286991-i/] API come to the rescue? Screensharing in Chrome When screensharing was introduced in Chrome 33, it required implementation via an extension as a way to […]
The post Chrome Screensharing Blues – preparing for getDisplayMedia appeared first on webrtcHacks.
Smile, You’re on WebRTC – Using ML Kit for Smile Detection
Now that it is getting relatively easy to setup video calls (most of the time), we can move on to doing fun things with the video stream. With new advancements in Machine Learning (ML) and a growing number of API’s and libraries out there, computer vision is also getting easier to do. Google’s ML Kit is […]
The post Smile, You’re on WebRTC – Using ML Kit for Smile Detection appeared first on webrtcHacks.
Autoplay restrictions and WebRTC (Dag-Inge Aas)
One of the great things about WebRTC is that it is built right into the web platform. The web platform is generally great for WebRTC, but occasionally it can cause huge headaches when specific WebRTC needs do not exactly align with more general browser usage requirements. The latest example of this is has to do […]
The post Autoplay restrictions and WebRTC (Dag-Inge Aas) appeared first on webrtcHacks.
So your VPN is leaking because of Chrome’s WebRTC…
We have covered the “WebRTC is leaking your IP address” topic a few times, like when I reported what the NY Times was doing and in my WebRTC-Notifier. Periodically this topic comes up now and again in the blogosphere, generally with great shock and horror. This happened again recently, so I here is an updated look […]
The post So your VPN is leaking because of Chrome’s WebRTC… appeared first on webrtcHacks.
Progressive Web Apps (PWA) for WebRTC (Trond Kjetil Bremnes)
One of WebRTC’s biggest challenges has been providing consistent, reliable support across platforms. For most apps, especially those that started on the web, this generally means developing a native or hybrid mobile app in addition to supporting the web app. Progressive Web Apps (PWA) is a new concept that promises to unify the web for […]
The post Progressive Web Apps (PWA) for WebRTC (Trond Kjetil Bremnes) appeared first on webrtcHacks.
YouTube Does WebRTC – Here’s How
I logged into YouTube on Tuesday and noticed this new camera icon in the upper right corner, with a “Go Live (New)” option, so I clicked on it to try. It turns out you can now live stream directly from the browser. This smelled a lot like WebRTC, so I loaded up chrome://webrtc-internals to see […]
The post YouTube Does WebRTC – Here’s How appeared first on webrtcHacks.