Real-Time Video Processing with WebCodecs and Streams

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • web-codecs

    WebCodecs is a flexible web API for encoding and decoding audio and video.

  • From developer.mozilla.org [0]

    > WebCodecs API

    > The WebCodecs API gives web developers low-level access to the individual frames of a video stream and chunks of audio. It is useful for web applications that require full control over the way media is processed. For example, video or audio editors, and video conferencing.

    And from w3c [1]:

    > The WebCodecs API allows web applications to encode and decode audio and video

    All this looks really promising, I wouldn't have thought that we could use browsers directly to render videos. Maybe Puppeteer could then stream the content of the page it is rendering, for example a three.js animation.

    [0] https://developer.mozilla.org/en-US/docs/Web/API/WebCodecs_A...

    [1] https://github.com/w3c/webcodecs

  • localtls

    DNS server for providing TLS to webservices on local addresses

  • Here we are again, locking useful features behind HTTPS :)

    Background: I have been working on a software that creates and streams extra virtual displays via the local network (like Duet Display or Apple's sidecar), and the easiest way to get started for everyone is to stream to a web browser.

    WebRTC is kinda easy to implement thanks to webrtc-rs, but has unacceptable latency as I do not have control over whether or when exactly a frame is rendered (I need to be able to drop outdated frames). This API has the potential to do exactly what I want, but:

    * It is not possible to connect to a local server if the viewer page is served via HTTPS, as the local server won't have HTTPS.

    * It is possible to generate CAs and certificates locally and instruct users to install them, but I don't think that anyone out there will like this solution.

    * We have WebTransport that might be able to do this, but it is an overly complex technology that uses HTTP/3 (plus no support on anything but Chromium), and tools like localtls[1] that requires internet connection and my own domain (I would really want this tool to be able to run completely offline).

    Modern web APIs are kinda useless when you don't have internet, but the ship has sailed.

    [1] https://github.com/Corollarium/localtls

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • webrtc

    A pure Rust implementation of WebRTC (by webrtc-rs)

  • I have opened an issue on GitHub [1], we can continue there.

    [1] https://github.com/webrtc-rs/webrtc/issues/426

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts