Skip to content

Draft: Transcode video upload filter

Users upload videos in various formats and sizes. With this new filter admins can decide to transcode all uploaded videos using ffmpeg and params specified in config.

Ffmpeg is pretty slow and CPU-heavy, so I'm not sure if it's a good idea to run it synchronously on upload. There is no existing foundation to offload it to an async worker though, so maybe it's good enough as a first step. Actually, I'm not sure if it's even possible given the need for compatibility with various clients.

Code is heavily inspired by !3331 (closed). It's the first time I touch Elixir so it's highly possible I made some rookie mistakes.

Fixes #1228.

TODO:

  • Plugin skeleton
  • Fix plugin being stuck in a loop
  • Move output extension to config
  • Allow additional args to be set in config
  • Stop polluting logs with ffmpeg progress
  • Add tests
  • Update cheatsheet
Edited by Igor Rogatty

Merge request reports