web-codecs VS libav.js

Compare web-codecs vs libav.js and see what are their differences.

web-codecs

WebCodecs is a flexible web API for encoding and decoding audio and video. (by WICG)

libav.js

This is a compilation of the libraries associated with handling audio and video in ffmpeg—libavformat, libavcodec, libavfilter, libavutil, libswresample, and libswscale—for emscripten, and thus the web. (by Yahweasel)
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 libav.js
14 2
899 267
2.2% -
8.1 9.3
8 days ago 16 days ago
HTML JavaScript
GNU General Public License v3.0 or later -
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

web-codecs

Posts with mentions or reviews of web-codecs. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-10-30.
  • Replacing WebRTC: real-time latency with WebTransport and WebCodecs
    10 projects | news.ycombinator.com | 30 Oct 2023
    Encoding alpha, please! https://github.com/w3c/webcodecs/issues/672
  • Real-Time Video Processing with WebCodecs and Streams
    3 projects | news.ycombinator.com | 18 Mar 2023
    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

  • Microsoft Clipchamp
    5 projects | news.ycombinator.com | 27 Aug 2022
    As I understand it, Web Codecs is quite a ways away from being a web standard - it is currently just a draft[1] for a recommendation for a possible future standard.

    Just beware of any major API changes or any indication that it might be dropped in its entirety!

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

  • Chrome 94 Beta: WebCodecs, WebGPU, Scheduling, and More
    1 project | news.ycombinator.com | 30 Aug 2021
    WebCodecs has Mozilla and Microsoft coauthors: https://w3c.github.io/webcodecs/

    WebGPU was chartered in 2017, with more Apple people in the initial membership than Mozilla or Google people: https://gpuweb.github.io/admin/cg-charter.html

    Google specifically has approached Apple for input about scheduler.postTask(), and they say they've presented the proposal before at a working group that Apple is part of: https://lists.webkit.org/pipermail/webkit-dev/2021-June/0319...

    I won't disagree that there's a ton that can be improved about the process, but it seems pretty unsubstantiated to claim that Google is "rushing forwards as fast as possible" given that they've been spending years working on these APIs in public. You can see from the rest of the post that they're running some experiments which they're specifically choosing not to enable by default, though they could.

  • Show HN: I made a meme creator that makes around $4k a month
    2 projects | news.ycombinator.com | 27 Aug 2021
    I work for PaperlessPost.com, and for our Flyer product we export mp4s from ffmpeg compiled to WASM, which is similar to ffmpeg.js but optimized for our use case which sounds similar. We have this WebAssembly method working well but iOS 15 (and the other major browsers) now support MediaExporter which might be a better way to go if you have something else to convert these files. This becomes and issue because you can't control the format MediaRecorder is recording to but the management of memory, the image quality, the compression, the performance hit will be more ideal than these other methods. OMGgif is very slow and will produce large files or very bad looking ones. Keep in mind that GIFs limit the colors so something that looks nice on the screen might not look the same after it is saved. The other thing to look out for is the WebCodecs APIs which should be the ultimate way to handle all of this in the future but it is only working in Chrome I think https://github.com/w3c/webcodecs
  • Loading Audio in Node JS
    2 projects | dev.to | 1 Jun 2021
    While in theory it might be possible to run ffmpeg through emscripten and run it in a web worker (I certainly assume someone has done this), it's not necessarily practical to try and use the same technique from node to transcode audio on the web. The good news is that the w3c has chartered a working group to focus on web codecs. While this is at the time of writing still in early stages, the working group is powering ahead on designing and proposing an API to enable media transcoding on the web, and hopefully that will become available to us in the near future.
  • WebCodecs
    1 project | news.ycombinator.com | 28 Apr 2021
  • What's the deal with the WebCodecs and InsertableStreams APIs?
    2 projects | /r/webdev | 13 Apr 2021
  • WebCodecs is a flexible web API for encoding and decoding audio and video
    2 projects | news.ycombinator.com | 12 Mar 2021

libav.js

Posts with mentions or reviews of libav.js. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-10-30.
  • Replacing WebRTC: real-time latency with WebTransport and WebCodecs
    10 projects | news.ycombinator.com | 30 Oct 2023
    I'm currently working with WebCodecs to get (the long awaited) frame-by-frame seeking and reverse playback working in the browser. And it even seems to work, albeit the VideoDecoder queuing logic seems to give some grief for this. Any tips on figuring out how many chunks have to be queued for a specific VideoFrame to pop out?

    An aside: to work with video/container files, be sure to check the libav.js project that can be used to demux streams (WebCodecs don't do this) and even used as a polyfill decoder for browsers without WebCodec support!

    https://github.com/Yahweasel/libav.js/

  • Libav.js – FFmpeg libraries compiled for JavaScript
    1 project | news.ycombinator.com | 11 Jul 2023

What are some alternatives?

When comparing web-codecs and libav.js you can also consider the following projects:

web-bugs - A place to report bugs on websites.

moq-js - Typescript library for Media over QUIC

webrtc-rtptransport - Repository for the RTPTransport specification of the WebRTC Working Group

meyda - Audio feature extraction for JavaScript.

standards-positions

webrtc-for-the-curious - WebRTC for the Curious: Go beyond the APIs

WebKit - Home of the WebKit project, the browser engine used by Safari, Mail, App Store and many other applications on macOS, iOS and Linux.

omggif - JavaScript implementation of a GIF 89a encoder and decoder

localtls - DNS server for providing TLS to webservices on local addresses

caniuse - Raw browser/feature support data from caniuse.com

lossless-cut - The swiss army knife of lossless video/audio editing

ogv.js - JavaScript media player using Ogg/Vorbis/Theora/Opus/WebM libs compiled with Emscripten