-
-
Notifications
You must be signed in to change notification settings - Fork 1.8k
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 from 6.1.1 to 7.x for faster transcoding #4181
Comments
Signed-off-by: Michael Mayer <michael@photoprism.app>
Signed-off-by: Michael Mayer <michael@photoprism.app>
Signed-off-by: Michael Mayer <michael@photoprism.app>
These changes install FFmpeg 7 as described at https://ubuntuhandbook.org/index.php/2024/04/ffmpeg-7-0-ppa-ubuntu/ for testing purposes. Unfortunately, this appears to be a privately maintained PPA (so no guaranteed updates) and there is no ARMv7 build. |
Signed-off-by: Michael Mayer <michael@photoprism.app>
It also seems like the |
Signed-off-by: Michael Mayer <michael@photoprism.app>
AVC Decoder / Encoder SupportRunning the FFmpeg 6.1.1 (standard Ubuntu 24.04 LTS distribution package)
FFmpeg 7.0 (installed from
|
The If you use Docker Compose, you can add services:
photoprism:
environment:
PHOTOPRISM_INIT: "ffmpeg" Please note, though, that this version does not support hardware transcoding and is therefore only suitable if you use standard software transcoding. The static build may also not support all video formats. |
The new image uses the standard FFmpeg 6 distribution package instead of having FFmpeg 7 pre-installed from "ppa:ubuntuhandbook1/ffmpeg7". Signed-off-by: Michael Mayer <michael@photoprism.app>
Signed-off-by: Michael Mayer <michael@photoprism.app>
Signed-off-by: Michael Mayer <michael@photoprism.app>
Signed-off-by: Michael Mayer <michael@photoprism.app>
Installing ffmpeg v7 under docker is failing for me. I'm running fully updated raspberry pi os(64bit) on a raspberry pi 5 8gb and did a docker compose pull before adding "ffmpeg" to the photoprism_init section. When I open a shell on the container I can see /opt/ffmpeg folder is created but is empty. photoprism | init: ffmpeg |
@Ep0chalypse Seems to work for me, at least with the amd64 version (I'd be surprised if xz is only installed there and not in the arm64 base image, the download URL seems to be correct too...):
Can you test it again in case it was a temporary issue? Otherwise, since the error might depend on certain environment settings, e.g. the |
Signed-off-by: Michael Mayer <michael@photoprism.app>
@Ep0chalypse I've updated our Dockerfiles to make sure the An updated |
I tried a few times last night and again just now and it is still failing. I created a new container using the :preview build and it worked. So it looks like you guessed right and that xz isn't installed on the aarch64 base image. |
Thanks for testing it again! Then ARM64 users should use our preview image until these changes become available with the next release at the end of the month when we are back in the office. It does not contain anything that would affect stability. |
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:
Sample Files for Testing:
Related Documentation:
Acceptance Criteria:
Any help figuring out the best way to upgrade to FFmpeg 7.x and then testing it would be much appreciated!
The text was updated successfully, but these errors were encountered: