cirquit / trdrop

trdrop - a raw video analysis program
MIT License
384 stars 33 forks source link

Total black or total white frames causes fps detection to drop #15

Closed tamodolo closed 7 years ago

tamodolo commented 7 years ago

I detected this while testing captured content using ShadowPlay at max quality (around 130mbps to avoid quality loss as much as possible keeping the 60fps target) from EXE Drive specials and transform sequences from Hyperdimension Neptunia Re;Birth 1. There are some total white/black frames that are considered as unchanged by the program causing the fps value to drop while thats really not the case.

Tested in 0.3 alpha build.

ArctiCMooN commented 7 years ago

trdrop works best with uncompressed video files which is not the case with ShadowPlay. ShadowPlay gives you a h264 video file, which is highly compressed, even with 130 mbit. You can try fraps which has less compression with avi mjpg, but best result is with totally uncompressed video files.

tamodolo commented 7 years ago

You are right. I don't have a capture card that can deliver uncompressed format directly so I can test to see what happens when using FRAPs content or nvenc at 444 color gamut and post results later.

MujoA commented 7 years ago

It is true that trdrop works best with uncompressed video. However, a totally static scene with multiple identical consecutive frames (like a black screen or a totally static menu screen) will always be considered a frame drop as there is no way of differentiating whether it actually is one or if it's just a static scene.

Using uncompressed video might help in come cases where the compression would otherwise eliminate small differences that are not visible to the eye. trdrop only analyzes framerates by comparing pixels of consecutive frames. This is of course a drawback when it comes to actually static scenes, but then again those are usually not the ones we're interested in :)

I'm not sure if we're going to provide a way around this in the future, but for now it is pretty much working as intended so I'll go ahead and close the issue.