Frame Checker is a PySide6 application for checking video frames using ffmpeg filters. It helps detect black and frozen frames, as well as silence in video files using a user-friendly interface. It's available on Linux, macOS, and Windows.
Frame Checker will use ffmpeg with selected filters and generate logs if any detections are made, converting detections to SMPTE (hours:minutes:seconds:frames) format for easy integration into video editing workflows.
Currently three ffmpeg filters are supported: blackdetect, freezedetect, silencedetect.
- Detects black frames, frozen frames, and silence in video files.
- Outputs timestamps in SMPTE format for seamless video editing workflows.
- Cross-platform support for Linux, macOS, and Windows.
- Provides a simple GUI for setting filters and analyzing videos.
- Customizable settings to fit specific user workflows.
- Automatically generates detailed logs for detected events.
To install Frame Checker, follow the instructions for your operating system.
-
ffmpeg must be installed and added to PATH.
- On Windows and macOS, ffmpeg can be installed during the Frame Checker installation process.
- On Linux, ffmpeg is listed as a dependency in the package.
-
Python 3.10 or higher is required on Linux for the app to work as expected.
- Download the latest Arch package.
- Navigate to the directory where you downloaded the package and run:
sudo pacman -U frame-checker-1.0-1-x86_64.pkg.tar.zst
- to uninstall:
sudo pacman -R frame-checker
- Download the latest Debian package.
- Navigate to the directory where you downloaded the package and run:
sudo apt install ./frame-checker_1.0-1_all.deb
- to uninstall:
sudo apt remove frame-checker
-
Download the appropriate installer from Releases:
- Universal (
universal2
): frame-checker-1.0-1-universal2.pkg - Intel (
x86_64
): frame-checker-1.0-1-x86_64.pkg - Apple Silicon (
arm64
): frame-checker-1.0-1-arm64.pkg
- Universal (
-
During installation, you will be prompted to install ffmpeg. Clicking Yes will start install ffmpeg script, which will install Homebrew package manager and use it to install ffmpeg. In case you already have Homebrew, you can skip this step and just run
brew install ffmpeg
, it is exactly what the script does. -
If you are installing ffmpeg manually, ensure that ffmpeg binaries are linked somewhere in this PATH:
PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/homebrew/bin
or Frame Checker won't be able to use them. (Eg.
/usr/local/bin/ffmpeg
and/usr/local/bin/ffprobe
)
-
Download the Windows installer and run it.
-
Ensure that "Install FFmpeg" option is checked during setup. This will start install ffmpeg script, which will download latest ffmpeg release and install it in
C:\ffmpeg
. If you choose to leave it unchecked, ensure that ffmpeg is installed and added to the PATH.
Note: Windows and macOS installers are self-signed, so you'll probably get unidentified developer warnings.
- Open Frame Checker.
- Select a video file or directory to analyze.
- Select the desired filters (e.g., Blackdetect, Freezedetect, Silencedetect).
- Adjust filter options as needed.
- Click Start Checker to process the video.
- Click Open logs folder to view results.
Below is an example of a detection log generated by Frame Checker:
During startup, Frame Checker will create necessary config directory with setting.ini
.
- On Windows and MacOS config directory will be created under
Documents/Frame Checker
. - On Linux it will default to
/home/user/frame-checker
, unlessXDG_CONFIG_HOME
is set.
Customize general application settings in settings.ini
under [app]
section:
- Theme (dark or light).
- Default log directory.
- Default media directory.
Example:
[app]
theme = Dark
logdir = /home/user/logs
mediadir = /home/user/videos
Customize default filter options in the settings.ini
file under each filter section:
- Blackdetect:
[blackdetect] duration = 2.00 pic_th = 0.98 pix_th = 0.10
- Freezedetect:
[freezedetect] noise = 60 duration = 2.00
- Silencedetect:
[silencedetect] noise = 60 duration = 2.00 mono = False
In case you need more information on what each filter option does, check out:
- GUI-based settings customization.
- Additional detection filters and features.
- Add support for audio files.
- Community feedback and contributions.
Frame Checker supports Linux, macOS (Ventura 13.7.5 or higher), and Windows.
Follow the official ffmpeg documentation for your platform.
Logs are stored in the default logs
directory created in Frame Checker config directory
on startup, which can be customized in settings.ini
by changing logidr
value.
Errors outputted by ffmpeg (Eg. checking corrputed files) are logged in
frame-checker.log
, located in logs
directory.
- PySide6 - Qt for Python.
- ffmpeg-progress-yield - used to capture progress when running ffmpeg.
- tabulate - used to tabulate filter detections.
- qtmodern - used for theme.
This project is licensed under the GNU General Public License (GPL) v3. See LICENSE and COPYING files for details.