FFmpeg for browser and node, powered by WebAssembly

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
  • ffmpeg.wasm

    FFmpeg for browser, powered by WebAssembly

  • mediacapture-record

    MediaStream Recording

  • I guess this could be used to remux the broken files that are spitted by the MediaRecorder API, which have missing metadata that prevents from seeking and thus far has been ignored / sweeped away in Chrome [1], Firefox [2], and even the standard itself [3], which ignored in its design the basic fact that encoding any file should include a "closing" stage (where metadata is written) before yielding it as a finished file.

    [1]: https://bugs.chromium.org/p/chromium/issues/detail?id=642012

    [2]: https://bugzilla.mozilla.org/show_bug.cgi?id=1283464

    [3]: https://github.com/w3c/mediacapture-record/issues/119

  • 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
  • reference-types

    Discontinued Proposal for adding basic reference types (anyref)

  • > And there's been talk of exposing the JS GC to wasm for a few years. Hopefully when that stuff lands, it'll get easier to marshal objects across the gap.

    You don't need a Wasm GC to do this. If you only need js objects to pass on to, say, the host's function or check is null or not, then reference types that are opaque external references: https://github.com/WebAssembly/reference-types/blob/master/p...

    You can even do many more things if you export `Reflect` to WebAssembly: https://github.com/AssemblyScript/assemblyscript/blob/main/t...

    Reference Types are available almost everywhere already (In Safari will be available after 15.0): https://webassembly.org/roadmap

  • assemblyscript

    A TypeScript-like language for WebAssembly.

  • > And there's been talk of exposing the JS GC to wasm for a few years. Hopefully when that stuff lands, it'll get easier to marshal objects across the gap.

    You don't need a Wasm GC to do this. If you only need js objects to pass on to, say, the host's function or check is null or not, then reference types that are opaque external references: https://github.com/WebAssembly/reference-types/blob/master/p...

    You can even do many more things if you export `Reflect` to WebAssembly: https://github.com/AssemblyScript/assemblyscript/blob/main/t...

    Reference Types are available almost everywhere already (In Safari will be available after 15.0): https://webassembly.org/roadmap

  • rust-ffmpeg-wasi

    ffmpeg libraries precompiled for WebAsembly/WASI, as a Rust crate.

  • There’s also a ffmpeg port to WebAssembly that can be used from Rust: https://github.com/jedisct1/rust-ffmpeg-wasi or linked to a Zig project targeting WebAssembly: https://github.com/jedisct1/tinyglitch

  • tinyglitch

    Just an experiment with libavformat/libavcodec

  • There’s also a ffmpeg port to WebAssembly that can be used from Rust: https://github.com/jedisct1/rust-ffmpeg-wasi or linked to a Zig project targeting WebAssembly: https://github.com/jedisct1/tinyglitch

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