Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Videos: Upgrade FFmpeg to v7.x for faster transcoding and extended file format support #4181

Open
5 tasks
lastzero opened this issue Apr 16, 2024 · 0 comments
Open
5 tasks
Labels
help wanted Well suited for external contributors! video Video Formats, Transcoding, FFmpeg, Streaming & Co

Comments

@lastzero
Copy link
Member

lastzero commented Apr 16, 2024

As a user with videos that need to be transcoded or videos in the new EVC and VVC formats, I would like to see FFmpeg shipped with and used by PhotoPrism as it supports multi-threaded transcoding and the latest codecs.

There are static builds provided directly by the FFmpeg project, but it's unclear if we can use them since (a) they only support a subset of codecs which are freely available (so our file format support could shrink rather than grow) and (b) hardware video transcoding must continue to work for (at least) all currently supported GPUs and CPUs, which might require dynamic linking:

Video Formats currently supported by PhotoPrism:

  • 3G2 Mobile Multimedia Container (CDMA2000) Video .3g2
  • 3GP Mobile Multimedia Container (3G) Video .3gp
  • ASF Advanced Systems Format Video .asf
  • AV1 AOMedia Video 1 Video .av1
  • AVC Advanced Video Coding (H.264, MPEG-4 Part 10) Video .avc
  • AVI Microsoft Audio Video Interleave Video .avi
  • DV DV Video Video .dv
  • FLV Adobe Flash Video .f4v, .flv
  • HEVC High Efficiency Video Coding (H.265) Video .hevc
  • M2TS Blu-ray MPEG-2 Transport Stream Video .m2ts
  • M4V Apple iTunes Multimedia Container Video .m4v
  • MJPG Motion JPEG Video .mjpeg, .mjpg
  • MKV Matroska Multimedia Container Video .mkv
  • MOV Apple QuickTime Video .mov, .qt
  • MP2 MPEG 2 (H.262) Video .mp2, .mpv
  • MP4 Multimedia Container (MPEG-4 Part 14) Video .mp, .mp4
  • MPG Moving Picture Experts Group (MPEG) Video .mpeg, .mpg
  • MTS Advanced Video Coding High Definition (AVCHD) Video .mts
  • OGV Ogg Media (OGG) Video .ogg, .ogv, .ogx
  • VVC Versatile Video Coding (H.266) Video .vvc
  • WEBM Google WebM Video .webm
  • WMV Windows Media Video .wmv

Sample Files for Testing:

Acceptance Criteria:

  • Our official Docker image MUST include FFmpeg 7.x for all currently supported architectures: AMD64, ARM64 and ARMv7
  • If there is an official Linux distribution backport (e.g. from Ubuntu), it SHOULD be used; otherwise, we can ideally install pre-compiled FFmpeg 7.x binaries from a trusted, external source or, if there is no other option, compile our own binaries from source code
  • For all other architectures, there SHOULD be a way to either compile binaries or download and install pre-compiled FFmpeg 7.x binaries
  • All currently supported video formats (free and non-free) MUST continue to work, in addition to the newly supported EVC and VVC video file formats
  • Hardware video transcoding MUST continue to work for (at least) all currently supported GPUs and CPUs

Any help figuring out the best way to upgrade to FFmpeg 7.x and then testing it would be much appreciated!

@lastzero lastzero added help wanted Well suited for external contributors! video Video Formats, Transcoding, FFmpeg, Streaming & Co live Hybrid photo/video file format support labels Apr 16, 2024
@lastzero lastzero removed the live Hybrid photo/video file format support label Apr 16, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Well suited for external contributors! video Video Formats, Transcoding, FFmpeg, Streaming & Co
Projects
Status: Upcoming
Development

No branches or pull requests

1 participant