I have a collection of about ~110 4K Blu-Ray movies that I’ve ripped and I want to take the time to compress and store them for use on a future Jellyfin server.
I know some very basics about ffmpeg
and general codec information, but I have a very specific set of goals in mind I’m hoping someone could point me in the right direction with:
- Smaller file size (obviously)
- Image quality good enough that I cannot spot the difference, even on a high-end TV or projector
- Preserved audio
- Preserved HDR metadata
In a perfect world, I would love to be able to convert the proprietary HDR into an open standard, and the Dolby Atmos audio into an open standard, but a good compromise is this.
Assuming that I have the hardware necessary to do the initial encoding, and my server will be powerful enough for transcoding in that format, any tips or pointers?
If you want to do an open codec, use AV1 codec and Opus for audio.
https://github.com/master-of-zen/Av1an and use aomenc for the av1 codec.
Ffmpeg doesn’t have good av1 support.
With current hardware support I would advise against using AV1 or even H.265.
I’d recommend to experiment with H.264 and low CRF values to see what quality loss and file size OP is comfortable with: https://trac.ffmpeg.org/wiki/Encode/H.264
God no. X264 is way worse than x265 is way worse than av1 for quality by size.
Yes, everything made in the past 15 years can do x264, but that does not mean it is a good idea. Only do x264 if you have a specific device that needs it. Otherwise, x265 is a better choice for long term storage.
AV1 is definitely what I’d like to do. I’m not aiming for maximum compatibility; small file size and high quality encodes are my goal. I can transcode if needed.
Keep in mind at least your server should be able to decode whatever you choose in hardware, so AV1 might still not be a good idea depending on your current hardware and upgrade plans.
You’re right, I forgot about the on-the-fly transcoding abilities of Jellyfin for a moment. But still, the server should be able to handle whatever codec they choose in hardware.
What hardware doesn’t support H.265?
Old smartphones, old CPUs/GPUs, some SBCs.
How many of those are you streaming video to, though?
Intel iGPUs have supported H265 since 7th gen, which is 8 years old now (released in 2016). Nvidia added support the same year, starting with the GTX1050. Even the Raspberry Pi 4 supports hardware-accelerated H265.