HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
Kagami
ffmpeg.js
JavaScript2016–2025
Kagami / ffmpeg.js

ffmpeg.js

Port of FFmpeg with Emscripten

8Distinct people
10Mentions
0Explicit recommenders
3.5KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Port of FFmpeg with Emscripten

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 1:49:46 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year10 dated mentions

Observed mentions: 2016-12-06 12:04:53 UTC to 2025-06-04 16:39:28 UTC.

012342016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments20162017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 4 mentions; 0 submissions, 4 comments20202021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2025

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC101
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC101
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC101
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC000
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC404
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC202
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC000
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC000
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC000
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC101

What Hacker News says

10 sources
One thing that's really great about wasm is how it enables lots of native libraries to be usable in the browser. Recently I ran into performance issues due to limitations in the WebAudio API and was able to workaround it by compiling FFmpeg to wasm and using it instead. Being able to use FFmpeg in the browser is very powerful and brings a huge suite of encoding/decoding capabilities that browsers currently lack right now (at least until WebCodecs becomes standardized and implemented). On another side, compiling existing C/C++ libraries to wasm is still very painful. I struggled a lot using Emscripten to port FFmpeg to wasm - you have to compile EVERY dependency to wasm (so I ended up re-compiling libopus, libmp3lame, etc.) and the compiler warnings are often super cryptic which made the entire process a complete nightmare. The process rea
Read the rest
lly needs a lot of work still. For anyone that's interested, this is the result from my endeavor: https://github.com/aeroheim/audio-file-decoder And also check out a great general purpose FFmpeg wasm port here: https://github.com/Kagami/ffmpeg.js
In WebAssembly
I've had an in-browser animated meme editor in the freezer for a few years now: https://www.ultime.me/ The idea came when I wanted to make a simple animated meme, but found it exceedingly frustrating to caption a simple animated gif with nice text options (like outlines). Over time, it's grown to have full keyframe animation for all text and image/video clip attributes, so it is actually pretty capable short of using a desktop video editing/fx package. That said, the UX is bad and I should feel bad :) . I made the deliberate choice up front to focus on the underlying data model and internal APIs rather than polishing the UI - as such, it is very much an engineer interface. It would be more usable with some demo videos or call-to-action helpers for new users, but really the UX just needs reworked. Especially around animation/keyframing. On
Read the rest
the bright side, the clean data model and content addressable assets leave the path clear to add things like collaborative multi-user meme editing, git like meme-forking(and diffing?), and so forth. Started it about 3 years ago when I had a period of mostly free time to play. It's been idle for a long time due to starting a family and getting consulting momentum, but I'm intending to make the time this year to polish the UX to the point of general usability and experiment with promotion/monetization. Failing that, I'll probably just open source it and write a couple of blog posts about the internals. It is more or less a static web app, with no server side function short of some optional stats collection. It's written in Clojurescript/Clojure and uses https://github.com/tonsky/rum as a React wrapper and https://github.com/Kagami/ffmpeg.js/ to import most animation formats and export gifs/webm fully in browser (I don't want to pay real server costs to encode animation).
In Ask HN: Show me your half baked project
It's been on the back burner for a year due to starting a family, but my side project is a still|animated meme captioner. https://ultime.me I was frequently annoyed at the lack of middle ground between easy purpose-built image captioning tools (as opposed to general image editors like Gimp), and full blown video editors just to make animated memes. I intend to use some of the extra home time to improve the UI and maybe start adding social features and content import from external urls/clipboard. The user experience is pretty rough now. Not sure I want to host user generated content and deal with DMCA for a hobby project. It's not open sourced (yet), but the fun facts are that it's Clojure/Clojurescript w/ Rum as a react wrapper for the frontend. Have to say - Clojure(script)'s immutable data model is a dream for handling undo/redo in cont
Read the rest
ent editing. It also makes the path to a multi-user editor a'la Google Docs pretty simple. Video encoding to animated gif & webm uses: https://github.com/Kagami/ffmpeg.js It's an almost completely a client side app - the video encoding happens in browser so the user content remains private. (edit: better words)
In Ask HN: What projects are you working on now?
> get the existing documentation translated to Chinese http://opennmt.net/ links to a "Live system" with a Chinese option. Discussed on infoworld[1]. FWIW, its translation of "This is a test." was at least recognized by google translate. > audio [...] using only client-side JavaScript It looks like the audio starts out as small mp3 files, which are then concatenated? There are WebAudio-based libraries both for playing one file after another, and for concatenating them for download.[2] For the mp4 subtitles, hmm, well, even if nothing else, there's ffmpeg.js[3] (but fonts might be an issue?). Thanks for your work. :) [1] http://www.infoworld.com/article/3152050/artificial-intellig... [2] For example (merely the first one I saw): https://github.com/jackedgson/crunker [3] https://github.com/Kagami/ffmpeg.js
In The Vatican's Latinist

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.