Aaand it's minimally working, so: https://ffmpeg.app is now live!

Use FFmpeg recipes without fiddling with the command line!

Consider this an early beta. There's still a ton missing:

- Ability to tweak the command line (i.e. hand editing, or selectors)
- Proper mobile styles
- About, disclaimers, etc
- Many more command recipes
- Better accessibility
- "Bug fixes and performance improvements"

But, it's doing the thing!

#ffmpeg #video

FFmpeg.app

A website where you can search for and perform video and audio conversions, right on your browser.

@zeh I tried to transcode a video on my iphone but just get this “FAILED” message, is that expected?

@viv thanks for testing. Running on phones is giving all sorts of errors, mostly due to file sizes being a bit more than what browsers are willing to handle locally. ☹️

In your case it's surprisingly failing gracefully (rather than crashing catastrophically) - the JS console might be showing the specific error it's encountering. Feel free to share with me if you want, would give me more clues.

I'll investigate more soon when I work on the mobile styles, might need some specialized changes.

@zeh it’d be nice if it printed a more detailed error message, even if it’s not directly actionable by a user

@viv it's a good suggestion actually. Thanks. Added to the list.

It needs to get better at parsing the logs from ffmpeg in any case.

@zeh it seems like one of the problems here is that the h264 codec is trying to malloc and failing (see attached screenshot)

i'm guessing that @ffmpeg/ffmpeg is the single-threaded version that starts with 32mb allocated and can grow. the multithreaded version preallocates its (1gb) heap and would fail to be created at all, instead of failing partway.

256mb appears to be a safe initial size on ios but this isn't a primary source

i couldn't find any details about what emscripten does if MAXIMUM_MEMORY isn't set but ALLOW_MEMORY_GROWTH is. i started a build of ffmpeg.wasm with that set to 1gb and will probably try that at some point

ffmpeg.wasm/build/ffmpeg-wasm.sh at 0a220257fed2519c6359d26fabd56ea3176cb1e3 · ffmpegwasm/ffmpeg.wasm

FFmpeg for browser, powered by WebAssembly. Contribute to ffmpegwasm/ffmpeg.wasm development by creating an account on GitHub.

GitHub

@viv nice! Very insightful.

And yeah, I'm wondering if I'll need my own builds for mobile clients with some tweaks. In FF Android for example it just crashes entirely. So I might need some tweaks there.

Will need to look into that soon.

@viv If you have the interest and time, you can re-test using https://dev.ffmpeg.app/ - I've done an update to the latest version of the ffmpeg wasm dependency, which fixed a bunch of stuff... and surprisingly, it seems to have fixed memory/crash issues on mobile, as encoding now works on the two failed devices I had failing (Android Pixel 7 on Firefox, and iPhone 12 Pro on Safari).
FFmpeg.app

A website where you can search for and perform video and audio conversions, right on your browser.

@zeh I’m still getting “FAILED” when trying to transcode a video to h.264 (tried a couple videos with lengths 12s and 2s) and muting a video. this is on an iphone 11 with safari

@viv thanks for testing, will try some more. Bummer.

Planning on exposing the error message correctly soon too, at the very least.