After a recent data loss, I’m reconsidering various CODECs before re-encoding my re-pirated “loot”. I’m looking to maintain a good balance between quality and file size as my previous files were HUGE. I’ve read about x264, h264, h265 & vp9 for video and it’s between AAC or AC-3 for audio. I’m looking for long-term and broad device compatibility. Also, I’ll be using FFBatch front-end for ffmpeg for re-encoding. So, fellow pirates, what are your libraries coded in? Any helpful input would be greatly appreciated.
I recommend using H.265 and Opus for audio. In my opinion, encoding to H.264 in 2023 is not a wise choice. AV1 is a good option, especially with hardware encoding and compatible devices.
Also, software enfolding only, hardware encoding really isn’t as good.
I would say good enough for personal use unless you have good cpu
First, just to be clear because codec terminology can be weird, x264 is a h264 encoder, not a separate codec. H265 is not an open standard so it may not play back properly if you use a Firefox or a Firefox based browser. I would recommend av1 if you can encode it, as it is good for quality and file size, however only new GPUs can encode it. CPUs can encode it slowly, but if you don’t have a new gpu (like 40 series Nvidia, arc, or AMD 7000 and maybe 6000) I would recommend vp9. It is a bit worse for file size but it won’t take a year to encode and should be compatible with most browsers.
Thanks for the clarification on 264. I have an AMD 3700x with Radeon 470 graphics card. I’d like a decent balance between CPU/GPU encoding so not to put too much stress on just the CPU. I know nothing about AV1. Can Smart TVs read the AV1 or VP9 codec? I know my LG will take H.264 & H.265 but I haven’t tried the others?
AV1 is only just appearing in TV chipsets, and software support and stability will lag behind there for some time. if you only use your videos on a modern PC or a new-ish phone, then sure go for it, it’s pretty great.
Personally though, as good as AV1 is, I’d be avoiding it for something like a plex/emby/jellyfin library purely because while computers and phones now have decent support, many TVs and streaming boxes do not, the software on those that do is lacking support or is patchy, broken or unstable, and you can run into difficulty even transcoding those files for playback on unsupported devices because of the transcoder backends having their own support problems depending on your server hardware, operating system, and server software choice.
H265 10bit is the current best for those sorts of media libraries, just about any TV or streaming box from the last 5 years will support it just fine and it is still somewhat easy to encode with hardware acceleration.
I recently ran some of my less critical libraries through fileflows to convert a small subset of oversized H264 files to H265 10bit and with roughly 17000 files processed in those libraries I’ve saved about 5tb. that is skipping small H264 files and files already in H265, and has a few encoding tiers based on file size and some handling of reprocessing outputs that end up larger than the original, which can happen with the lower RF values that I am using.
Output quality has been perfectly acceptable, but i still have many thousands of files that I would prefer to keep in the highest quality possible, regardless of file size.
I see what you mean about the other CODECs like VP9 and AV1. The future looks good for them but for a Plex library not so much. I tried converting a single ~20 minute TV episode and it took about ~16mins for AOM-AV1 and VP9 was somewhat over an hour or so. But, H265 zips right along in ~5 mins or less an ep with not as much strain on the CPU. Probably be going down the H265/AAC route. Thanks for the data & information. It’s helped very much!
That will be down to your GPU having hardware acceleration for certain codecs and not others, because a pure CPU encode of those codecs on anything but an Epyc or other ball tot he wall top end CPU is going to take hours.
My Radeon 470 had Kronos Open CL but I think some of my system drivers have gone crazy because the option to use it has disappeared. I’m really considering a new build even though my system’s only 3.5 yrs old.
Yep, this. This is why I’m still favoring HEVC over AV1 or even VP9 right now: player compatibility and ease of Jellyfin transcoding.
Can you encode H265 10bit using the amf_h265 in ffmpeg? I hope I’m using the right terminology?
I am not too knowledgeable on different encoders, but I don’t know if using cpu and gpu is an option. Av1 and vp9 are open standards, meaning basically anything can implement them, but av1 is new so older devices haven’t. The tv will probably handle vp9 fine, but I would still recommend transcoding a test video and looking if it plays back natively. With that gpu av1 is definitely not supported so I would recommend vp9.
I’m favoring h265 10-bit for my library recently. Whether SDR or not, it seems to provide a slightly better compression ratio and fewer banding artifacts than 8-bit. Any player that can handle 4K streaming content can decode h265 10-bit, so there’s a ton of forward compatibility for the foreseeable future
So, any device that handles 4K should be able to handle H.265. Good informattion to know. Thanks for the input!
Depending on what I’m encoding, I am trying as much as possible to do AV1 + Opus.
x264 kind of stands on its own. It is a legendary encoder with excellent encode times, but h264 is an ancient codec and it really shows if you don’t give it a bitrate that’s, frankly, too high. I use it most frequently these days for sharing short, low res clips of videos on Discord or through iMessage or something.
So that leaves us with with our modern choices: hevc, vp9, and AV1.
Off the bat I would say VP9 is irrelevant just because it’s way too slow to encode, and is effectively superseded by AV1. To whatever extent possible I try to use AV1, reencode into AV1, download AV1, and so forth. When done correctly it will shrink files even smaller than hevc can, it can encode relatively quickly with SVT-AV1 and is patent unencumbered so it’s actually supported in web browsers. If the video is an AV1 .webm it will play in Firefox. If I need subtitles, I can put them in a .mkv.HEVC (with x265) is a pretty strong choice. I will not avoid downloading torrents in this format but I will avoid encoding into it. It maybe has better compatibility in certain cases, like if you have a “smart” TV (ugh) that can natively decode it. In which case that might override any decision you will make: you just want the best compatibility with your existing hardware.
As for audio, that’s Opus. Every time. It absolutely whips. For stereo audio I can do Opus at 96 or 112kbps and it is transparent. Another source with more going on (maybe loud explosions and effects and all that) could possibly benefit from 128. It’s great.
The final thing to mention about encoding is no matter which codec you use you will have to learn a bit about how to use it. You can one and done the encoders with default choices, but at minimum you do need to factor in what happens when you do things like change preset speeds. From there you can consider things like what about changing the keyframe interval (for shorter vids I will do more frequent keyframes to make seeking tolerable. For something like a full movie a keyframe every 10 seconds is probably fine. But what about scene detection? What about bit depth?). Potentially much to consider.
For broad compatibility and good quality+compression, h265. I use Handbrake’s Nvidia encoder and it works great. I’m not sure about the differences between AAC and AC3.
AAC is generally more modern and better for lower bitrates, but AC3 (also known as Dolby Digital) has the advantage of being able to be transmitted in 5.1 over SPIDF optical connections, so it can allow for surround sound in older setups that may not otherwise be able to recieve digital surround sound.
Opus is slightly better than AAC at matched bitrates, slightly less commonly supported, and totally open-source. It’s a fine choice as well.
Also of note because of its use for anime encodes is FLAC, which is lossless and therefore results in much larger files, but will always have the exact same quality as the original audio it encoded, so it’s excellent for archival quality.
deleted by creator
Av1 is pretty well supported now on a lot of devices thanks to dav1d, and it’s the video codec with the best quality:compression ratio. “broad device compatibility” will be up to you and your devices, I would seriously look into it. It’s what I personally encode all my stuff to.
as for audio Opus or AAC, AC-3 is bad
Why is AC-3 bad? It’s pretty much compatible with everything, holds Dolby Digital and atmos. Especially if the source is already encoded in AC-3, would it be wise to re-encode it?
if you already have AC-3 content you can leave it as is, however as a codec itself, it is worse then aac and opus in terms of fidelity:size
I agree that if it is already AAC, it should not be changed as it has the highest fidelity and best compression.
While AC-3 is not the best, it and AC-4 are the only formats i know that can encode TrueHD and Atmos metadata, so that should be kept it it is there.
Any transcode will lose fidelity unless the target codec is lossless, and I don’t think AAC has a lossless mode.
yeah but OP is wondering about transcoding their stuff. there is no reason to encode to AC3. I would just use traditional surround if you plan kn transcoding it.