Why aren't more releases x265?
Nearing the filling of my 14.5TB hard drive and wanting to wait a bit longer before shelling out for a 60TB raid array, I've been trying to replace as many x264 releases in my collection with x265 releases of equivalent quality. While popular movies are usually available in x265, less popular ones and TV shows usually have fewer x265 options available, with low quality MeGusta encodes often being the only x265 option.
While x265 playback is more demanding than x264 playback, its compatibility is much closer to x264 than the new x266 codec. Is there a reason many release groups still opt for x264 over x265?
A lot of TV shows are direct rips from streaming services and they don't use H.265 because of the ridiculous licensing it comes with.
I suspect AV1 will become much more popular for streaming in a few years when the hardware support becomes more common. It's an open source codec, so licensing shouldn't be an issue. Then we will see a lot more AV1 releases.
What's AV1 compression like compared to x265?
It's comparable, sometimes better
In my experience, you always gain space savings going av1 from 264 and 265 as well. For me its always been significant savings at the same quality level.
Ofc YMMV and use a very recent ffmpeg with the best av1 libraries.
In my experience about ~8% better but 4x slower to transcode
By a factor of 2 with the same bitrate. But you only need half the bitrate for the same quality (SNR) so it really isn't.
However, encoding is about 10x more demanding in terms of bitrate, or 5x for the same quality. This may be worth it for long-term storage or wide distribution over limited bandwidth (torrenting), but not for one-time personal use.
For a Jellyfin server however it's quite a boon.
Did you do something specific to play x265 on JellyFin? Last time I tried, the video kept crashing every 5-8minutes, even with a low bitrate threshold.
Which client? Works fine here
JellyFin App for Android TV (on a Shield)
There is an option to use an external player. So you could use VLC as an external player and use it. It would work better.
I tried that, but the result is the same (and progress doesn't seem to be saved). Maybe it's specific to the Shield or to my files
Only if you're disk limited or bandwidth limited. And in many cases will lead to transcoding the content, which could be a problem if you're CPU limited or have no GPU for hardware transcoding.
Everything (not literally... but figuratively) can do x264. Not everything can do x265...
Go AV1... In my direct experience the space saving is simply amazing at the same quality.
265 doesn't seems to be the future since all Android are going to support AV1 by mandatory from A14.
I recently started transcoding my media to save some space, and I went with h265 instead. AV1 will be great in a few years, but the hardware support is just not there yet.
Av1 would be great if everything supported playback, maybe soon. Tvs and chromecast with google tv 4k specifically. Somehow the 1080p one does
Will still be at least 10 years away sadly for it to be truly ubiquitous... Remember I couldn't play x265 properly for quite a while.
I got an amazon fire stick, all the new ones support av1 and all android devices from A14 must support av1 too.
On PC vlc plays it just fine too.
It doesn't play well on older kit though. Even the Nvidia Shield Pro won't play them unless they're really low resolution.
265 is ideal for me, even if it's hamstrung on open source browsers.
Some notes: Don't use GPU to reencode you will lose quality.
Don't worry for long encoding times, specially if the objective is long term storage.
Power consumption might be significant. I run mine what the sun shine and my photovoltaic picks up the tab.
And go AV1, open source and seems pretty committed to by the big players. Much more than h265.
Why is the GPU reencoding bad for the quality? Any source for this?
I have some comments based on personal experiences with GPU av1 encoding: you will always end up with either larger or worse output with GPU encoding because currently all the encoders have a frame deadline. It will only try for so long to build frame data. This is excellent when you are transcoding live. You can ensure that you hit generation framerate goals that way. If you disable the frame deadline, it's much much slower.
Meanwhile CPU encoders don't have this because CPU is almost never directly used in transcoding. And even with a frame deadline the output would still not be at the same speed as the GPU. However the CPU encoders will get frames as small as you ask for.
So if you need a fast transcode of anything, GPU is your friend. If you're looking for the smallest highest quality for archival, CPU reference encoders are what's needed.
Yeah that caught my eye too, seems odd. Most compression/encoding schemes benefit from a large dictionary but I don't think it would be constrained by the sometimes lesser total RAM on a GPU than the main system - in most cases that would make the dictionary larger than the video file. I'm curious.
It's not odd at all. It's well known this is actually the truth. Ask any video editor in the professional field. You can search the Internet yourself. Better yet, do a test run with ffmpeg, the software that does encoding and decoding. It's available to download by anyone as it's open source.
Hardware accelerated processing is faster because it takes shortcuts. It's handled by the dedicated hardware found in GPUs. By default, there are parameters out of your control that you cannot change allowing hardware accelerated video to be faster. These are defined at the firmware level of the GPU. This comes at the cost of quality and file size (larger) for faster processing and less power consumption. If quality is your concern, you never use a GPU. No matter which one you use (AMD AMF, Intel QSV or Nvidia NVENC/DEC/CUDA), you're going to end up with a video that appears more blocky or grainy at the same bitrate. These are called "artifacts" and make videos look bad.
Software processing uses the CPU entirely. You have granular control over the entire process. There are preset parameters programmed if you don't define them, but every single one of them can be overridden. Because it's inherently limited by the power of your CPU, it's slower and consumes more power.
I can go a lot more in depth but I'm choosing to stop here because this can comment can get absurdly long.
My understanding is that all of the codecs we are discussing are deterministic. If you have evidence to the contrary I'd love to see it.
GPU encoders like NVENC run their own algorithms that are optimized for graphics cards. The output it compatible with x265, but the encoder is not identical and there are far fewer options to tweak to optimize your video.
The output is orders of magnitude faster but (in my experience) objectively worse, introducing lots of artifacts
The evidence you want to see is literally something you can do or search the Internet yourself. There's thousands of results. CPU is better than a GPU no matter codec you use. This hasn't changed for decades. Here's one of many direct from a software developer.
https://handbrake.fr/docs/en/latest/technical/performance.html
This. It sounds really odd to me that the GPU would make what is pretty much math calculations somehow "different" from what the CPU would do.
GPU encoders basically all run at the equivalent of "fast" or "veryfast" CPU encoder settings.
Most high quality, low size encodes are run at "slow" or "veryslow" or "placebo" CPU encoder settings, with a lot of the parameters that aren't tunable on GPU encoders set to specific tunings depending on the content type.
NVENC has a slow preset:
https://docs.nvidia.com/video-technologies/video-codec-sdk/12.0/ffmpeg-with-nvidia-gpu/index.html#command-line-for-latency-tolerant-high-quality-transcoding
As they expand the NVENC options that are exposed on the command line, is it getting closer to CPU-encoding level of quality?
So the GPU encoding isn't using the GPU cores. It's using separate fixed hardware. It supports way less operations than a CPU does. They're not running the same code.
But even if you did compare GPU cores to CPU cores, they're not the same. GPUs also have a different set of operations from a CPU, because they're designed for different things. GPUs have a bunch of "cores" bundled under one control unit. They all do the exact same operation at the same time, and have significantly less capability beyond that. Code that diverges a lot, especially if there's not an easy way to restructure data so all 32 cores under a control unit* branch the same way, can pretty easily not benefit from that capability.
As architectures get more complex, GPUs are adding things that there aren't great analogues for in a CPU yet, and CPUs have more options to work with (smaller) sets of the same operation on multiple data points, but at the end of the day, the answer to your question is that they aren't doing the same math, and because of the limitations of the kind of math GPUs are best at, no one is super incentivized to try to get a software solution that leverages GPU core acceleration.
*last I checked, that's what a warp on nvidia cards was. It could change if there's a reason to.
The way it was explained to me once is that the asic in the gpu makes assumptions that are baked in to the chip. It made sense because they can't reasonably "hardcode" for every possible variation of input the chip will get.
The great thing though is if you're transcoding you can use the gpu to do the decoding part which will work fine and free up more cpu for the encoding half.
Already been explained a few times, but GPU encoders are hardware with fixed options, with some leeway in presets and such. They are specialized to handle a set of profiles.
They use methods which work well in the specialized hardware. They do not have the memory that a software encoder can use for example to comb through a large amount of frames, but they can specialize the encoding flow and hardware to the calculations. Hardware encoded can not do everything software encoders do, nor can they be as thorough because of constraints.
Even the decoders are like that, for example my player will crash trying to hardware decode AV1 encoded with super resolution frames, frames that have a lower resolution that are supposed to be upscale by the decoder. (a feature in AV1, that hardware decoder profiles do not support, afaik.)
GPU encoding means it's using the encoder the GPU and driver provides. Which can be worse than software encoders. For software encoders they exist for encoding. On a GPU it's one feature of many, and doesn't necessarily seek out the same high bar.
Not really, I don't do GPU encoding anyway so can't say first person.
But everybody says so on all forums so maybe its true.
Yep, gpu de- and encoding is high-speed but often lower quality and with old codec versions. Common mistake to think that gpu = better.
In order to encode to a specific format without unintentionally losing quality, doesn't the initial file have to be a remux?
Yes, that's right. But the point stands, you indeed shouldn't do such encoding on the GPU, it's a tradeoff of (fast) speed vs (poor) quality and (big) size. Good for when you need realtime encoding.
Indeed, but YMMV and to me quality is still good if source was not a remix but a top quality encoding
You can downsample from BluRay, which would give you least loss.
But if you only have some good h264 version and want space savings, you can also reencode that, while probably loosing some small amount of quality, depending on your settings.
RARBG was so good for this, their releases were of such good consistent quality
If you search for ORARBG on therarbg site you can still find some OG releases and not random YIFY crap
I just use qbitorrent and the search feature
Didn't even know that was a thing ngl and I use qbit nox on my server. Kinda obsoletes the *arr suite
Eh, the *arr apps are more about the freedom to be hands-off. Ideally you will just request something in a frontend like Overseerr from your phone and it will handle the rest. Or automatically grab upon release.
I only found out shortly after the closure of RARBG. Found this is the best way to find old RARBG torrents, just search for whatever then filter for RARBG or 265
Not if you have lots of specific filters set up in the *Arr suite. So much better getting a HQ rip automatically than choosing a random one in qbit.
MeGusta and Im pretty sure all other x265 groups aren't really considered official scene releases and usually the sources are the larger x264 scene releases. I've found that you can get the same if not better results as MeGusta encoding with a simple -cq 27 with the nvenc_h265 encoder which is reasonably fast.
A good portion of the world thats pirating media is playing it cheap junk with 10+ year old CPUs that can't handle x265, most do not have terabytes of media they just watch and delete so overall size isnt a huge issue, most likely when a new codec does become more mainstream, it won't actually mean smaller releases anyway, it will just mean better quality ones.
In the 00's the standard everyone used was 800mb DivX because thats the size CD-Rs came in, over time, going into the 2010s we got x264 releases but the targets were around 4-8gb usually and by that point the size of optical media didn't really matter since flash drives are cheap and reusable and overall internet speeds for people continues to increase as well so its more likely that when the day comes, the scene will probably coalesce around something like 8-16gb per release.
That's why I grab the Chinese versions of stuff in the original language, they seem to not care about license and encode in h265 in the app
I’d be interested to know how many of the streaming services natively offer x265. If it’s not many, then I could understand why release groups wouldn’t wanna re encode (e.g. it wouldn’t be a true WEB-DL anymore)
Prob 0 % as h265 is like HDMI and needs to be licensed to be used. Sadly this has set up 265 to be a failure outside of piracy
It's used for the majority of HDR streams and all Dolby Vision streams. h265 is the only codec that supports DV
Every 4K WEB-DL I see uses x265. It’s extremely popular by streaming services.
There's always the chance that compatibility / breadth can be a factor. I don't know how much more demanding 265 is than 264 but if it is "noticeable" / "enough", if it means someone can't play the content in their (smart) TV set or on their phone, it makes sense then to release for the more compatible option / avoid a dual release.
My old laptop can't handle h265. I don't think my old SmartTV can, either. We need h264 for those devices since they both have dedicated h264 decoding hardware.
Word! My daily driver phone is old enough that I think it can only handle like, h236 or something at most.
I had no idea about the differences with h264 / 265.
Interesting article to skim here for the uninitiated https://www.techspot.com/article/1131-hevc-h256-enconding-playback/
I only download h265 because my drive is filling up as well. I can usually play it back easily in software, except for film grain that wrecks the performance
I've just recently started using tdarr to convert all of my media to x265on 14/02 and so far I've saved 4.02 TB of what was 28.12TB media collection. (The number isn't a true reflection though because new episodes and shows have been added to that library since I started)
I'm letting tdarr manage the conversion process and once up and running meant that my NAS, desktop, my NUC and a mini pc are all plodding through and converting when I'm not using them for other things.
If you are worried about the disk space being taken and have some CPU time you can devote to the conversion process then I'd suggest it's worth looking into tdarr.
How much kw and months did you use for that? 😮
I'm going to choose not to answer that for two reasons...
But yes I'm in a position where I was more willing to pay for the power than I was to buy additional storage space as I'm hitting the top of what I can do without significant expense.
Agree. That's why i want to place my mini-server on my dad's farm, he has solar on the roof.
I've always wanted to do that, but how do you handle seeding?
Just keep it seeding?
Of course if you want both, best space saving would be to use the same file.
I have multiple servers, so it doesnt really matter anyways, one machine downloads and seeds via its SSD and theother is just for storage on HDDs. Though i could setup tiered storage in this scenario to be able to seed more with same SSD strorage amount.
Ah, fair point. I don't use torrents, my media comes from usenet, so that doesn't need to factor into my thinking.
My (overly?) Complex setup does allow me to resort to torrents as a last resort, but that happens on another machine outside my home network and gets synchronised into my home via a one-way syncthing share, so even on the rare occasion I have to resort to torrents I can leave it on that server seeding for a few weeks or months.
I've done a bunch of transcoding of things to x265 in the past (as I'm sure everyone is aware transcoding isn't GREAT but cuts down on storage costs). With that said I've now moved to AV1. I don't use GPU encoders at all as I found the quality to be pretty terrible. I just use a custom written ZSH script to go through and check the current format (it also converts audio to OPUS too)
My raspberry pi doesnt transcode h265 very well at all. Much easier to expand the storage until I can upgrade to something better