Oh my gosh …
There’s a much better way than the binary hacking above. I found a hidden setting:
In Preferences.xml, add: GenerateBIFKeyframesOnly="0"
By default this setting doesn’t exist, the default value is 1, and Plex uses -skip_frame:v nokey
. This is fast but has occasional problems on certain files if FFmpeg doesn’t detect enough keyframes.
Adding this and changing it to 0 causes Plex to not use that argument and not skip frames. This is much slower, but allows preview thumbnail generation to succeed on some files.
It’s the same as the binary hacking above!
(As above, you probably only want to change this if you notice specific shows that don’t have video preview thumbnails. Let thumbnails generate for those shows, and then change it back to 1 for normal operation.)