I’m looking at my library and I’m wondering if I should process some of it to reduce the size of some files.
There are some movies in 720p that are 1.6~1.9GB each. And then there are some at the same resolution but are 2.5GB.
I even have some in 1080p which are just 2GB.
I only have two movies in 4k, one is 3.4GB and the other is 36.2GB (can’t really tell the detail difference since I don’t have 4k displays)
And then there’s an anime I have twice at the same resolution, one set of files are around 669~671MB, the other set 191 each (although in this the quality is kind of noticeable while playing them, as opposed to the other files I extract some frames)
What would you do? what’s your target size for movies and series? What bitrate do you go for in which codec?
Not sure if it’s kind of blasphemy in here talking about trying to compromise quality for size, hehe, but I don’t know where to ask this. I was planning on using these settings in ffmpeg, what do you think?
I tried it in an anime at 1080p, from 670MB to 570MB, and I wasn’t able to tell the difference in quality extracting a frame form the input and the output.
ffmpeg -y -threads 4 -init_hw_device cuda=cu:0 -filter_hw_device cu -hwaccel cuda -i './01.mp4' -c:v h264_nvenc -preset:v p7 -profile:v main -level:v 4.0 -vf "hwupload_cuda,scale_cuda=format=yuv420p" -rc:v vbr -cq:v 26 -rc-lookahead:v 32 -b:v 0
Codec has huge impact.
Yup! Where possible I try to get everything in x265 for this reason. It takes a little more processing power to transpose, but the difference in file size is worth it.
I’ve heard you’ll take a quality hit to re-encode something from x264 to x265, however. If you care about that, it’s better to just find a new source recorded with x265 or AV1 (if all your devices can run it).
I’m not very knowledgeable in that end of things, though, so I could be wrong.
Edit: Fixed AVC where I had meant AV1
I’ve actively been trying to have as much as possible in AV1, and before that, h265. A lot of my older material is still in h264.
That said, I generally have the following patterns:
-
720p media at feature length should be about 1 GB, if not less.
-
1080p media at feature length in h265 should be between 1.5-2GB. Ideally more towards 1.5GB. The same 1080p media in AV1 should be about 30% smaller.
I simply don’t see the need to encode at higher bitrates to have larger file sizes than that. I don’t see significant difference at 1080p.
-
Any sort of media, including videos, I always go for the highest possible quality I can. I do have a number of 4k displays, so it makes sense to a certain extent, but a lot if it has to do with future-proofing.
Here’s a good example: When personal video cameras were first starting to support 1080, I purchased a 1080i video camera. At the time, it looked great on my 1920x1080 (maybe 1024x768, not sure) monitor. Fast forward over 15 years later, and it the video I recorded back then looks like absolute garbage on my 4k TV.
I remember watching a TV show when 1080p video first became available, and I was blown away at the quality of what was probably a less-than-1GB file. Now watching the same file even on my phone has a noticeable drop is quality. I’m not surprised you saw little difference between a 670MB and a 570MB file, especially if it was animation, which contains large chunks of solid colors and is thus more easily compressed. The difference between two resolutions, though, can be staggering. At this point, I don’t think you can easily find a 1080p TV; everything is 4k. 8k is still not widespread, but it will be one day. If you ever in your life think you’ll buy a new TV, computer monitor, or mobile device, eventually you’ll want higher quality video.
My recommendation would be to fill your media library with the highest-quality video you can possibly find. If you’re going to re-encode the media to a lower resolution or bitrate, keep a backup of the original. You may find, though, that if you’re re-encoding enough video, it makes more sense to save the time and storage space, and spend a bit of money on a dedicated video card for on-the-fly transcoding.
My solution was to install an RTX A1000 in my server and set it up with my Jellyfin instance. If I’m watching HDR content on a non-HDR screen, it will transcode and tone-map the video. If I’m taking a break at work and I want to watch a video from home, it will transcode it to a lower bitrate that I can stream over (slow) my home internet. Years from now, when I’m trying to stream 8k video over a 10Gb fiber link, I’ll still be able to use most of the media I saved back in 2024 rather than try to find a copy that meets modern standards, if a copy even exists.
Edit: I wanted to point out that I realize not everyone has the time or financial resources to set up huge NAS with enterprise-grade drives. An old motherboard and a stack of cheap consumer-grade drives can still give you a fair amount of backup storage and will be fairly robust as long as the drive array is set up with a sufficient level of redundancy.
So you’re saying that you spend like 50 GB or so for every movie in your library? That’s unbelievably impractical. What if you want to download some locally to your phone or laptop for a flight, you have to pick the one or two movies that you think you’re gonna watch. I keep movies in 1080p at about 3 gigs or so. I just flew out to Denver and back and was happy with the dozen movies I was able to download locally for the trip.
Yes, a lot of my movies are 50GB or so. Not everything has a 4k repack available, though. I’d say the vast majority are around 20GB.
1080p would just not be acceptable for me. There’s a clear difference between 1080p and 4k on a 4k screen, especially if the screen is large.
If I’m in a situation where I don’t have connectivity to stream from my server, then I can always just start a Handbrake queue the night before and transcode a few videos to smaller size, or just dump a few onto an external drive. I have never been in a situation where I had to do this, though.
What are you average file sizes for movies and series?
Movies? 4-8GB for most 60-120 minute features. TV shows. For live action 800MB/episode, 500MB/ episode for animation. For hour long stuff probably 1.2-1.6GB/episode.
What would you do? what’s your target size for movies and series? What bitrate do you go for in which codec?
HEVC 10 bit. I target in the 7000-9000kbps bitrate range generally. For animation that can be as low as 3000-5000kbps. Sometimes a bit higher for very grainy old films, occasionally a little lower for grain less modern digital camera work that hasn’t had digital grain added.
If you want to maximize space savings without losing quality you have to understand what needs more bitrate and what can do with less. Across the board you could do something like CRF 20 but you’d have outliers where you don’t get enough bitrate and those where you still end up with rates of 14,000kbps.
The above is for 1080p content.
If you can stand HD video content at 2-3000kbps more power to you but on a large TV I can tell. I think even being reckless and not caring about future-proofing less than 6000kbps is a bad idea for anything but TV shows. Even those I think outside animation you want minimum 2000kbps for 1080p.
I target a certain level of quality and a reasonable compression speed, and whatever file size it takes is what it takes. If a particular video needs twice the file size to reach the same quality than usual, then so be it.
My server has movies ranging from 480p to 4k. Anything under 4k that is a movie shouldn’t be more than 2gb-3gb (this is also highly dependent on the movie in question, lotr movies can be huge so as long as it looks good I don’t mind, I have the space) when it comes to 4k movies it highly depends on the movie but I like to keep them below 10gb if I can.
When it comes to tv shows if it’s 1080p I expect long-form (1 hr) to be around 1-2gb. Less for shorter shows.
As far as bit rate and codecs are concerned keep things as simple as I can .h264 or .h265. My server doesn’t support AV1 so I can’t use that yet maybe in the future. .h265 high10 tends to make my server work too hard. I try to keep the bit rate on the low side as my server is a bit on the low end so a bit rate below 10mbps keeps the server happy and everything plays nice and snappy.