Video Preview Thumbnail Generation Very Large / How to Estimate Growth?

Server Version#: 1.30.2.6563
Player Version#: 4.99.2

I turned on Video Preview Thumbnail generation about 2 months ago, and I have seen major growth in my Plex Media Server AppData folder since. I have a fairly large library, but the sizing I’ve read around the Internet for Video Preview Thumbnails is much lower than where I’m sitting at. Is there a way to tell if Plex has run amok (as I’ve seen a few repeat videos during the thumbnail generation) or at the least estimate the total sizing required for a library?

So far, I’m sitting at 920 GBs in total size and have had to buy emergency storage twice now to expand available disk space and now I’m stuck at a 2 TB limit unless I move it to much slower storage; and considering 2 months ago I was sitting at around 60 GBs…I’m concerned about the growth potential…

Plex generates a preview for every two seconds of video.

You can change this interval if desired.

See GenerateBIFFrameInterval in Advanced, Hidden Server Settings.

Changing the settings affects only future thumbnails, not those already created.

To change what has already been generated, delete the existing thumbnails (edit library → Advanced → Delete Preview Thumbnails). Plex will then re-create them at the new interval.

1 Like

Wow, thanks! I’m surprised I didn’t stumble on that already! That’ll absolutely help keep my sizing in check!

That said, I’m guessing the only halfway decent way to estimate sizing would be something like the average of thumbnails already generated multiplied by the the total length of all video content divided by 2 in the case of the default?

I have not seen any info about estimating the amount of storage space required for thumbnails.

This would very much be a “back of the envelope” calculation. Hopefully close enough for buying drives.

The thumbnails are stored as .bif files in the Media directory in the Plex Data Folder. That directory also holds chapter thumbnails (jpg), Artwork (jpg or other picture type), and some other files.

Estimating what would happen with your current library is (seemingly) straightforward.

  1. Find a program, powershell script, etc that can tell you space used by .bif files in the Plex Data Folder.

  2. “bif space” required for current media:

  • 2 seconds = x bytes, where x = current storage space for thumbnails
  • 3 seconds = 2/3 x or .67x
  • 4 seconds = 2/4 x or .5x
  • 5 seconds = 2/5 x or .4x

To project future requirements, work it out for bytes per minute of video:.
  1. Determine total minutes of video currently on Plex server (*).

  2. Divide above byte calculations by total video minutes.

    That gives you the estimated space required for .bif files, on a per minute basis, when generated at 2, 3, etc second intervals.

    You can use that to estimate space required as your libraries grow.


* Determining total minutes of video in your Plex server.

Not sure of an easy, accurate way to do this.

Two thoughts:

Plex Dash mobile app: Very easy. Not so accurate. It shows you the rough total amount of time for each library - “1 day, 13 hours”, “3 months, 3 weeks”, etc.

WebTools-NG: Very accurate. Not as easy. Use the Export Tools section (wiki). Export a CSV list of all media in a library. It includes duration. Pull it into a spreadsheet and add up the duration column. Repeat for each library. The default reports contain a lot of info. You can create a custom report (level) to export just the desired info, such as title & duration.

2 Likes

I’ve been using 10 seconds for a long time. The other advantage of a larger interval is that they generate faster, too.

Some clients - like Roku - have a minimum scrub distance of 10 seconds, so it doesn’t hurt the experience much at all. Apple devices have a smaller minimum scrub distance, but 10 seconds still feels “pretty good” to me.

@FordGuy61 - that math is good in theory but I don’t think the savings are quite that large in practice. I think there’s some interaction with keyframes but I haven’t looked closely or recently.

These were the actual results from a movie back when I did look:

setting size savings
2 30 MB original
5 19 MB 37%
10 11 MB 63%
2 Likes

Thanks. Good to have some real numbers.

1 Like

AFAIR, BIF files are just concatenated jpg files.
So the actual size mainly depends on how good the picture content of the actual screenshots compresses with the jpg algorithm.
So it can vary from movie to movie, even if they have the same running length.

2 Likes

Well, shoot…when I did my projections before, I got some ridiculous space estimates. I went to redo them, using more precise measurement (Bytes vs GBs)…but then I read @OttoKerner’s comment and realized…the size per BIF isn’t per frame…and so, I don’t know if there is quite a way to calculate an average or estimate of space projection wise, as Plex would have to have completed thumbnail generation to compare to total time. At least unless there is a consistent total number of frames a BIF would have?

So unless I’m dyslexiaing it up…I’m SOL for projecting total size, and best bet is just to delete thumbnails, adjust to per 10 seconds instead per @Volts, and pray, hahaha.

Yeah, this seems to be the best approach. Looks like my attempt to estimate size was all wet. :rofl:

1 Like

I would say process was good; we just neglected the nuance of the BIF, haha.

Hi, I’m trying to set GenerateBIFFrameInterval on regedit (because I use it on Windows) follow this document. But it’s still not change. All new media files still generate thumbnails at default intervals not the new interval that I set on regedit.

Did anyone know why? and how to solve this?

Share a screenshot of Regedit and the full path and key and type and value you’ve created?

Regedit makes it all too easy to do sliiiightly the wrong thing.

This is my config

I set it to 1 because I want to generate thumbnails every second since my media is only short videos 5-10 minutes.

Note: Actually, this key (GenerateBIFKeyframesOnly) is not presented on the regedit at the first place. I just add it by myself.

This is an informed guess -

Most media won’t have keyframes that close together.

So if you want a VERY short interval you may also need to set GenerateBIFKeyframesOnly to 0.

Let us know if that helps.

Also, what happens with longer movies? The .bif files will get big, I worry about it impacting clients if the need to download a 150MB file!

Hi, Thank you for your help.
After running the schedule job last night I found that no matter how I set GenerateBIFKeyframesOnly is 0 or 1, whatever, it will already generate BIF with an interval of 1 second. It’s been working since I set it up. GenerateBIFFrameInterval to 1. But I can’t see it on Plex Apple TV because when I scrub a thumbnail it shows a preview every 10 seconds but when I scrub on the web it shows every second. So, I think this might be a limitation of Plex app on the Apple TV. That’s why I raised the issue because I was mistaken it wasn’t working until I found this on Plex Web.

Different apps have a different minimum scroll/seek distance. Setting a smaller GenerateBIFFrameInterval than the app minimum scroll/seek distance won’t change the app behavior.

I thought the Apple TV interval was smaller, though.

Yes, I agree. And that’s will make thumbnail quite useless on some platform :smiling_face_with_tear:

1 Like

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.