bumblebee
bumblebee copied to clipboard
use `xav` instead of `ffmpeg`
The xav library is a wrapper around the libav libs, from which FFmpeg is built. The nice thing is, that this compiles these libav functions to a NIF, so that you don't need FFmpeg installed on your computer.
There are two prerequisites until this could be merged:
- the
xavlibrary could precompile the NIF so we get a real benefit from this change. Otherwise, we just make it harder for the user to install the development packages (Install instructions from xav) instead of the normal FFmpeg binary xavneeds to updatenxso we can merge. I've already opened a PR https://github.com/elixir-webrtc/xav/pull/19. To test this branch, i temporarily setoverride: trueon thenxdependency
@kevinschweikert thanks for the PR! Dropping the ffmpeg dependency would be great, but yeah, I agree that we need xav to be precompiled for this to be beneficial.
Sounds good to me!
Awesome idea! I will bring back the ffmpeg implementation when xav is not available. Thanks for the feedback and suggestions!
I've just realised that it's not just about precompilation, the main blocker is that xav still requires ffmpeg to be installed, so at the moment there is no benefit really (perhaps a tiny bit less overhead, because we don't need System.cmd, but I think that's fine). So I think what we need is xav having the necessary ffmpeg C code vendored, and then ideally precompilation.
Precompiling FFmpeg is not an easy task as it has so many other dependencies. I agree that until Xav solves this problem, it's better for Bumblebee to stay with the current solution