-
Have you had a look at Handbrake (https://handbrake.fr/)?
At least some of your requirements are directly implemented in Handbrake, e.g., there are different transcoding presets and burning in subs [1]. It uses ffmpeg under the hood as well.
[1] https://handbrake.fr/docs/en/1.5.0/advanced/subtitles.html
-
CodeRabbit
CodeRabbit: AI Code Reviews for Developers. Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.
-
Ooh, if this also used ffmpeg-wasm [1], you could then run the command itself in the browser!
[1] https://github.com/ffmpegwasm/ffmpeg.wasm
-
I've been using ffmpeg-python recently, and it will do a lot of the crazy complex transforms for you, and you can write sane python code vs. trying to deal with the crazy default ffmpeg syntax.
https://github.com/kkroening/ffmpeg-python
-
FWIT we’ve been using ffmpeg-wasm on one of our products [0] for a couple months and the main issue is garbage collection. You’re limited to 4GB memory, but if you don’t kill and restart the workers every N operations it crashes the browser tab (even with proper unlinking of files in the virtual FS).
I suspect you could still make it work with clever usage of the File System Access API as a cache, and process larger files in chunks. Then you’d mostly be limited by the Blob storage limits [1], and memory required to merge processed chunks together.
[0] https://nft-inator.com/app
[1] https://chromium.googlesource.com/chromium/src/+/224e43ce1ca...
-
-
textual
The lean application framework for Python. Build sophisticated user interfaces with a simple Python API. Run your apps in the terminal and a web browser.
-
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
-
-
It works for me. Here's a wasm-ffmpeg solution I created trim audio.
https://wasm-audio-clipper.netlify.app/
Check the repo: https://github.com/marclundgren/wasm-audio-clipper. I ended up lazily registering the context. The memory footprint stays lower even after trimming multiple clips on the same session.
-
> In particular I'm not sure how to really tell ffmpeg to handle multiple audio/sub streams without programmatic interaction - you kinda need to know there are 2 audio streams and 4 sub streams, because you need to tell it what to do with each stream you want included in the output file, even if you do the exact same thing to every stream.
I made a script that converts all the videos in a directory above a certain bitrate to H.265 to save space and found that just using the flags `-map 0` to grab every stream, and `-c:s copy` was enough to avoid having to probe the source for every stream since subtitles were the most problematic if any streams were bitmaps. It then checks if there were any errors before replacing the original video. I still get the occasional outlier that I either fix by hand or just leave as is.
Also the script was written with python and argparse, so it would be relatively easy for me to create a GUI with Gooey[1] if there was interest.
[1] https://github.com/chriskiehl/Gooey
-
ffmpeg-koraktor
An occasionally-growing selection of FFmpeg invocations that have proven handy in various situations.
-
-
-
-
I think I vaguely remembering trying it and eventually gave up as it wasn't working. I believe I arrived at this bug report which still seems open - https://github.com/mpv-player/mpv/issues/8818
Overall I just found it better to leave pretty much everything to the more battle-tested `ffmpeg` and then use mpv to play the content (or can also use ffplay, but I do have have some customizations in mpv which I like).
-
Something like https://github.com/buma/GPSOverlay might give you some pointers.
Although it's not clear if you want to display your additional data as an overlay (like this example) or keep it as some kind of metadata stream. I'm not sure if the second option is even a thing.
-
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
Related posts
-
FFmpeg 7.0 Released
-
Video Generation with Python
-
FFenmass, a wrapper around ffmpeg , adding the ability to recursively encode and recreate directories.Making encoding large amount of media files easier.
-
Convert my entire music folder from flac to mp3?
-
FFenmass, a python ffmpeg cli agnostic wrapper to encode whole directories.