trdrop - a raw video analysis program

trdrop - v1.1.1

ˈtɛr-dɹɑp - a raw video analysis program

Examples

Binaries

- Please create an issue if you encounter problems and search the closed issues for already solved ones.

- If you want to have a specific feature in mind, please attach as much exemplary information as possible (screenshots, mockups)

See the release page for the Windows installer. Other distributions are on the roadmap (Linux, MacOS).

Description

The main use of this software is to estimate the "real" framerate of an uncompressed video.

Usually, a dedicated capture card is employed to capture the video stream with a fixed framerate of a console. To estimate the real framerate of the console, we check for differences on a frame-by-frame basis and count the different frames. This results in the "real" framerate.

The same is done with the frametime, as we count the amount of time a single frame is shown.

We also try to detect frametears and incorporate them into the framerate and frametime calculation.

Hence the name tr (short for tear) and a framerate drop.

Features

  • Comparisson of up to 3 videos in parallel
    • any resolution
    • any raw and "real" framerate
  • Export as imagesequence in .png or .jpg
    • Supporting 16:9 export resolution
  • Framerate estimation
    • Customizable plot visualization (color + time)
    • Customizable text overlay (font + color + position)
    • "Centered" plot also possible
  • Frametime estimation
    • Customizable plot visualization (color + time)
  • Tear detection
    • complementing tears don't change the framerate (configurable)
    • Visualization (color)
  • CSV export
    • Framerate
    • Frametime
  • Visual overlay export
  • Difference frame export

See the DEVELOPMENT_HISTORY.md for gifs I made while developing the application.

We will provide a detailed explanation and showcase in the future.

Disclaimer

trdrop is a free, open-source project we develop in our spare time. While we do our best to make it as accurate as possible, we cannot guarantee that it is free of errors.

We do not take responsibility for analysis errors or inaccuracies that might damage or improve the reputation of any brand or organization. trdrop is not an accurate scientific tool, but merely a demonstration of different algorithms.

Contributing

trdrop is created with the Qt framework and OpenCV. Please follow the DEVELOPMENT.md guidelines to get started.

License

MIT License. Commercial use is allowed.

Owner
PhD student in distributed computing and machine learning. Interested in C++, Haskell, Qt, UX and ML.
null
Comments
  • Request: Positioning of the framerate / frame time counter

    Request: Positioning of the framerate / frame time counter

    Hi I think I sorted all the problems out that I had when I initially started using this app. Now it works just fine. Thumbs up and thanks for your efforts!

    However, I have a layout request

    1. I'd love to have a choice where to put the framerate counter (the digits) since the upper left corner is sometimes jammed with game stats and other HUD elements. having a choice between left or right corner and maybe a little margin for height adjustments (+ / - 100 Pixels?!?) would be great since changing the color doesn't always help.

    2. The graph for frame time and frame rate always start their measuring at the far right end of the matrix. However, a better place to see the actual state of the scene would be in the middle with an additional vertical line in the matrix to show it. This way you can see somewhat ahead what is coming up, and by showing the end of the graph coming up, it also shows when the recorded scene will end (which is a good feature when you want to use transitions between different scenes with FPS measurement).

    Is there any chance to get this in the next build or so?

  • TRdrop take over entire screen when mouse hover over menu

    TRdrop take over entire screen when mouse hover over menu

    This is very annoying as the menu location don't update ending in me clicking outside window range. It seems that the fullscreen is just a layer that don't work as things are mapped to the original window. I tested this program with afterburner and found that it's using OpenGL to render the window.

    sugestion to fix this: drop OGL as a window drawer. Dolphin-emu also uses QT so it should be a good reference material. As it is today the interface is beautifull but it isn't efficient.

    Also, the interface seems to be made with touchscreen in mind because things uses too much space. I don't think this is the way people will use this program...

    Congrats for making this amazing program! I'll continue to test and report any weird behavior I find.

  • TRDrop v. 1.10 Issues

    TRDrop v. 1.10 Issues

    Hi Thanks again for your work with TRDrop. Glad to have it! I have worked a little bit with version 1.10 and this is what I found out

    NEW FEATURES

    • New features seem to work fine (centering, FPS text position)
    • However, if you use the new graph centering and load in a new video after you did measuring on another video, the first frames (until the real measurement starts) will show the old video instead of a black screen. Seems like the buffered images are being kept. Happens either way, doesn't matter if you just load a new video or if you delete the first settings as whole. Its not a major issue, but I thought you should know.

    BASIC FEATURES:

    • Text of measuring range on the screen bottom is wrong. it says XXX seconds, though the range is XXX frames
    • It would be great if the measuring range text could be deactivated by option
    • Some videos that run in 60fps are being measured with 61fps. I double checked the videos I used. They can't be 61 FPS, since the device I recorded with can only record 60FPS, and the setting for the software was actually put on 59,94 FPS . I still need to do extra checks to find out if this is a framedrop-issue from adaptive v-sync, so I will have to test it with a few other games. I#ll keep you posted.

    PROGRAM BASICS

    • TRDrop Icon is too dark for the dark windows 10 theme. It is barely recognizable in the Task bar. Icon needs an outline or something like a brighter shadow.
    • A windowed mode would be great, since my HDR-settings switch back and forth every time I go to the settings, which causes black screens and flickering for a short time, every time I enter a menu in TRDrop. This is because Windows checks full screen apps for HDR capabilities when HDR is enabled on a system level. A windowed mode would easily solve this.
  • msvcp140d.dll is missing

    msvcp140d.dll is missing

    Hi, when i open trdrop v0.3 it says msvcp140d.dll is missing.... Do i need to install some visual c++ ? I tried to download msvcp140d.dll and paste it to the Windows/SysWOW64, but nothing changed I am using Windows 10 64bit. I hope someone will help :)

  • trdrop_c app crashes, debug says ucrtbase.dll

    trdrop_c app crashes, debug says ucrtbase.dll

    trying to get this running, I'm having issues.

    When I run the trdrop_c app, it starts up but eventually crashes before I can do anything. It allows me to run a debug:

    "Unhandled exception at 0x00007FFE0907B70E (ucrtbase.dll) in trdrop_c.exe: Fatal program exit requested."

    Any help?

    What additional software do I need to install with this

  • TRDrop takes up the entire screen + video render instead of images?

    TRDrop takes up the entire screen + video render instead of images?

    Trying out the new version of TrDrop but the program takes up the entire screen. image

    Also, is there any way to render to a video instead of having a ton of images in a folder? Pretty dissapointing that I've found nothing about it.

  • Output BMPs of just chart?

    Output BMPs of just chart?

    Hi!

    I was wondering if it's at all possible for the bmp output option to display just the chart frames with a transparency so it can be overlayed on top of video. Our specific use case demands we overlay the chart instead of having it baked into one single video or bmp stream.

  • Increase analysis range to 1200 frames + extra improvements

    Increase analysis range to 1200 frames + extra improvements

    The max of 3 seconds in 60 FPS previously was going too quick.

    Known issues: frame rate and graph does not start and end with the video. This is an old bug and was less noticeable on 180 frames previously.

    Build for testers: https://drive.google.com/file/d/13UOVRN-ujap_FK3vQE-vC8fff3YR4ZqK/

    Demo: https://youtu.be/JVG441SJ7_w

    New features:

    Framerate text in white: image

    Fixed fullscreen bug. image

    Smaller graph fonts: image

    Draw lines and triangle before framerate plot: image

    Center frametime:

    image

    Fixes #96 Fixes #74 Fixes #36

  • How to install and use the program

    How to install and use the program

    Hello all, this might be too basic for you, but I would like to ask someone to explain how to use the program? I launch the .exe file and after a brief DOS window flash nothing happens. I've placed the video files in the program folder and launched it, but nothing happened. Thank you very much.

  • Cannot choose more than 180 frames analysis range

    Cannot choose more than 180 frames analysis range

    Hi,

    Hopefully I'm not just doing something wrong, I read that some issues were fixed to allow an higher value than 180 frames for the range of frames per seconds and frame time. I'm using v1.1.1 but whenever I input a higher number it automatically jumps back to 180. Is there a way to increase beyond 180 or is it a feature which will be added in the future?

    Thanks in advance.

  • Quieter scenes not detected as changed even if pixel-diff is set to 0

    Quieter scenes not detected as changed even if pixel-diff is set to 0

    I noticed that while testing battle scenes from neptunia RE;Birth 1. FPS drops in scenes while the game is waiting for player's input. There is some minor movements like range glow and a slowly spining circle on character's avatar that have the turn. The game is running at flawless 60fps clearly but trdrop can't see the changes dropping fps even with pixel-diff set to 0 (in tests I saw that the program gets more permissive to change with higher value).

    Scene captured using shadowplay at 130mbits to avoid quality loss as much as possible while keeping the 60fps target.

    tested using 0.3 alpha build

  • How to properly export videos from video editor for 3 games and measure them?

    How to properly export videos from video editor for 3 games and measure them?

    Hi. I am recording lossless video from ps4 pro(with and without boost mode) and xbox one s, then a edit this videos in premier pro, so every video have the same start time, i make some cuts etc(no fx), and then i exporting this videos and trying to measure 3 videos in trdrop to make one video. But in 30fps games, trdrop shows 60fps, sometimes it's just shows 0 fps and other such problems. Maybe i am doing something wrong, or someone have experience on what settings should be in premiere pro, or maybe i should use another video editor. Would appreciate any help.

  • Custom frametime limit is ignored

    Custom frametime limit is ignored

    Just started trying to use this and noticed that it outright ignores the custom value I set for the frametime graph. I have it set to 90, but as soon as it goes beyond that it automatically adjusts the graph to whatever the highest spike was.

    EDIT: Also noticed the sidebar option to modify further frametime settings is grayed out, so maybe I'm just jumping the gun and this feature still isn't fully complete?

  • How to collect a Loseless video

    How to collect a Loseless video

    I own 4K60 Pro MK2

    But I'm not sure how to collect mine

    My previous collection seems to be wrong

    I'm using OBS now, is there a prefabricated file

    Or other recommended apps

  • N64 switch gameplay measures as 1fps

    N64 switch gameplay measures as 1fps

    I wanted to measure the fps of Majora's mask played with the switch's N64 emulator but gameplay is measured at a constanct 1fps for some reason, cutscenes are measured at the correct 20fps which I think is because of the noise filter they put over the cutscenes but actual gameplay measurements are unusable. The video is a lossless HEVC video recorded using OBS' StreamFX plugin and NVENC encoder directly from my AverMedia Live Gamer 4K.

    Video

    I was able to measure it just fine with a pretty jank python method, using OpenCV to basically create a difference map and counting each frame that has any pixels that aren't pure black. No idea if this method is useful to you but I thought I'd share either way.

    Code

Related tags
Video stabilization is a software-based approach in real-time to eliminating environmental effects (wind, heavy vehicle etc.) and enhance the visual performance that degrade video streaming quality.
Video stabilization is a software-based approach in real-time to eliminating environmental effects (wind, heavy vehicle etc.) and enhance the visual performance that degrade video streaming quality.

Video Stabilization Contents General Info Installation To Do General Info Video stabilization is a software-based approach in real-time to eliminating

Nov 23, 2022
Minimalist video maker -- simplify your music score video making process!

VisualScores 极简视频制作程序,简化你的乐谱视频制作! 如果需要编译,请解压 lib 文件夹中压缩包。 使用前请参考 manual 文件夹中的用户手册。 请勿修改、移动或删除 resource 文件夹中的任何文件。 VisualScores Minimalist video maker

Sep 7, 2022
OpenShot Video Library (libopenshot) is a free, open-source C++ library dedicated to delivering high quality video editing, animation, and playback solutions to the world

OpenShot Video Library (libopenshot) is a free, open-source C++ library dedicated to delivering high quality video editing, animation, and playback solutions to the world

Dec 3, 2022
Open h.265 video codec implementation.
Open h.265 video codec implementation.

libde265 - open h.265 codec implementation libde265 is an open source implementation of the h.265 video codec. It is written from scratch and has a pl

Nov 30, 2022
Vireo is a lightweight and versatile video processing library written in C++11

Overview Vireo is a lightweight and versatile video processing library that powers our video transcoding service, deep learning recognition systems an

Dec 8, 2022
Olive is a free non-linear video editor for Windows, macOS, and Linux.
Olive is a free non-linear video editor for Windows, macOS, and Linux.

Olive is a free non-linear video editor for Windows, macOS, and Linux.

Nov 30, 2022
Video player for 3ds
Video player for 3ds

Video player for 3DS Patch note v1.0.1 Added allow skip frames option v1.0.0 Initial release Summary Video player for 3DS Performance 256x144(144p)@30

Nov 21, 2022
Plugin for VLC that pauses/plays video on mouse click

Pause Click plugin for VLC VLC plugin that allows you to pause/play a video by clicking on the video image. Can be configured to work nicely with doub

Nov 29, 2022
A WFH utility to visually indicate user engagement of audio and video
A WFH utility to visually indicate user engagement of audio and video

DIY: In meeting indicator - WFH Utility The need for in meeting indicator at home So many of you have gotten accustomed to work from home by now. This

Jun 28, 2021
Real-Time Intermediate Flow Estimation for Video Frame Interpolation filter for VapourSynth

Description RIFE filter for VapourSynth, based on rife-ncnn-vulkan. Usage rife.RIFE(clip clip[, int model=0, int gpu_id=auto, int gpu_thread=2, bint t

Nov 23, 2022
SRS is a simple, high efficiency and realtime video server, supports RTMP/WebRTC/HLS/HTTP-FLV/SRT/GB28181.
SRS is a simple, high efficiency and realtime video server, supports RTMP/WebRTC/HLS/HTTP-FLV/SRT/GB28181.

SRS is a simple, high efficiency and realtime video server, supports RTMP/WebRTC/HLS/HTTP-FLV/SRT/GB28181.

Dec 5, 2022
Anki-like app for spaced repetition of video clips
Anki-like app for spaced repetition of video clips

ReeePlayer The ReeePlayer application is designed for spaced repetition of fragments (clips) of video and audio files with similar principle as in Ank

Oct 28, 2022
NymphCast is a audio and video casting system with support for custom applications.
NymphCast is a audio and video casting system with support for custom applications.

NymphCast is a software solution which turns your choice of Linux-capable hardware into an audio and video source for a television or powered speakers. It enables the streaming of audio and video over the network from a wide range of client devices, as well as the streaming of internet media to a NymphCast server, controlled by a client device.

Dec 1, 2022
Shotcut - a free, open source, cross-platform video editor
 Shotcut - a free, open source, cross-platform video editor

cross-platform (Qt), open-source (GPLv3) video editor

Dec 7, 2022
SortNode is a JS binding for SORT: Simple, online, and real-time tracking of multiple objects in a video sequence.

SortNode is a JS binding for SORT: Simple, online, and real-time tracking of multiple objects in a video sequence.

Aug 2, 2022
Vita Recorder is a plugin that allows to record video clips during your play sessions.

Vita Recorder Vita Recorder is a plugin that allows to record video clips during your play sessions. The code is based off VITA2PC at which has been a

Nov 8, 2022
Color composite video code from ESP_8_BIT as an Arduino library

ESP_8_BIT Color Composite Video Out Library Purpose The composite video generation code from ESP_8_BIT extracted and packaged into a standalone Arduin

Nov 27, 2022
a simple example of video streaming with a ESP32 AI Thinker
a simple example of video streaming with a ESP32 AI Thinker

esp32-video-streaming its a simple camera system that im trying to make for fun I want to make an async server but idk it doesnt works correctly and w

Mar 9, 2022
ScanNet is an RGB-D video dataset containing 2.5 million views in more than 1500 scans, annotated with 3D camera poses, surface reconstructions, and instance-level semantic segmentations.

ScanNet is an RGB-D video dataset containing 2.5 million views in more than 1500 scans, annotated with 3D camera poses, surface reconstructions, and instance-level semantic segmentations.

Dec 6, 2022