Help us keep the list up to date and submit new video software here.
Tool
Complete Version history / Release notes / Changelog / What's New for FFMetrics
v1.5.1 beta 1
Change: More logging added
Change: Updated components: System.Buffers (4.5.1 => 4.6.0), System.Drawing.Common (8.0.10 => 9.0.0), System.Memory (4.5.5 => 4.6.0), System.Numerics.Vectors (4.5.0 => 4.6.0), System.Runtime.CompilerServices.Unsafe (6.0.0 => 6.1.0), HarfBuzzSharp (7.3.0.2 => 7.3.0.3), SkiaSharp (2.88.8 => 2.88.9)
v1.5.0
Bugfix: FFMetrics unable to detect available FFMpeg quality metrics under some circumstances (#164)
v1.5.0 beta 13 (release candidate 5)
Change: Display filename without path for distorted files that are located in the same folder with ref file
v1.5.0 beta 12 (release candidate 4)
Change: FPS detection improved (#159)
Change: Field type detection heuristics adjusted
Change: A number of frames used for media info detection increased from 30 to 60 frames (this is slowing down media info extraction process, but making it a bit more reliable)
Change: Media info extraction timeout increased from 30 to 60 seconds
Change: Unknown field type displayed as '-unknown-' in media info popup and '?' in media info strings
Change: Extracted images should have more accurate colours (#149)
Bugfix: Plots left margin increased and Y-values rotated 45 CCW, so SSIM values truncated not so badly
Bugfix: Missed FPS causing program to crash on media info mouse hover (#160)
v1.5.0 beta 11 (release candidate 3)
Bugfix: Timeout errors must always be logged, not only when program started with -log-level=debug (#157)
Change: Plot control hints slightly adjusted & fixed
v1.5.0 beta 10 (release candidate 2)
Change: Default timeouts increased:
Bad frame extract: 30 seconds => 60 seconds
Media info extract: 10 seconds => 30 seconds
Thumbnail extract: 5 seconds => 30 seconds
FFMpeg version check: 10 seconds => 30 seconds
v1.5.0 beta 9 (release candidate)
New: Plot control hints added in plot window
Change: FFMpeg version check timeout increased to 10 seconds (from 5 seconds)
Change: Updated components: System.Drawing.Common (8.0.6 => 8.0.10), OxyPlot.Core, OxyPlot.SkiaSharp, OxyPlot.SkiaSharp.Wpf, OxyPlot.Wpf, OxyPlot.Wpf.Shared (all Oxy*: 2.1.2 => 2.2.0), Microsoft.NETFramework.ReferenceAssemblies (1.0.2 => 1.0.3)
1.5.0b8
Change:FFMetrics.conf.example updated with current built-in defaults
Change:More values added to Skip dropdown (be careful, high values are slow)
Change:Default metrcis columns width slightly increased
Change:Updated components: System Drawing Common (8.0.4 => 8.0.6)
Bugfix:Frames Harmonic Mean & Std Dev values in popup fixed (the bug introduced in 1.5.0b)
1.5.0b7
Bugfix:Proper fix for issue in finding associated program
Bugfix:More work for preventing ref/distorted swapping caused by File Dialogs
1.5.0b5
Bugfix:Crash while finding associated program when filespec = null (introduced in 1.5.0b5) (#146)
1.5.0b5
New:Added buttons for playing distorted files with system associated program (#145)
New:Now FFMetrics also parses streams' metadata returned by FFMpeg to find bitrate (#144)
Bugfix:Reference file bitrate was duplicated
1.5.0b4
Change:Improved long file path shortening logic (#143)
Bugfix:Fixed a bug when a distorted file could be swapped with ref while adding a new file with File Chooser and double clicking on file name
1.5.0b3
Bugfix:Fixed crash when removing files, introduced in 1.5.0b2 (#142)
1.5.0b2
Change:Use absolute path to VMAF models if FFMpeg.exe located not in FFMetrics folder as in this case models cannot be found by FFMpeg
Bugfix:FFMpeg.exe location detection was broken
Bugfix:Fixed bug in VMAF filter (introduced in 1.5.0b)
1.5.0b
New:VMAF subsample option added (#136)
Change:File ordering re-implemented. More work as original issue was not fixed (#124)
Change:Updated components: System Drawing Common (8.0.2 => 8.0.4), HarfBuzzSharp (7.3.0.1 => 7.3.0.2), SkiaSharp (2.88.7 => 2.88.8)
Bugfix:Temp dir availability and write access is checked on program starup (#134)
Bugfix:Message displayed if log file cannot be created
Bugfix:Fixed crash that might happen while drag & dropping distorted items (#135)
1.4.9b
Change:File ordering re-implemented (#124)
Change:Extension m4v added to accepted files list (#125)
Change:Accepted files list can be configured (see FFMetrics.conf.example) (#127)
Change:Updated components: System Drawing Common (7.0.0 => 8.0.2), HarfBuzzSharp (2.8.2.3 => 7.3.0.1), SkiaSharp (2.88.3 => 2.88.7)
Bugfix:Searching line with file metric returned by FFMpeg more is reliable (#126)
1.4.8b
Change:"Action | Show plots window" in menu should not be tickable option
Change:Updated component: Newtonsoft.Json (13.0.2 => 13.0.3)
1.4.7b
Bugfix:High CPU/GPU utilisation caused by hidden Progress Bars with IsIndeterminate="True"
1.4.6b
New:Click on metric column header order files by metric value (#98)
1.4.5b
New:FFMpeg arguments for getting metrics can be defined in FFMetrics.conf (see FFMetrics.conf.example)
Change:-r <framerate> added before -i <filespec> to FFMpeg arguments while getting metrics (as per VMAF recommendation)
Change:TBR is used instead of FPS if available and not differ too much from FPS (should help with some VFR footage)
Bugfix:Skip was ignored when extracting bad frames
Bugfix:Project options were not always restored correctly on program startup
1.4.3b2
Bugfix:Fixed bug with escaping FFMpeg command line parameters (introduced in 1.4.3b)
1.4.3b
New:A number of bad frames that should be extracted can be configured in FFMetrics.conf (see FFMetrics.conf.example)
New:FFMpeg arguments for getting FFMpeg version info, checking VMAF models, getting media info, extracting bad frames and getting thumbnails can be defined in FFMetrics.conf (see FFMetrics.conf.example)
Change:Timeout for extracting bad frames increased to 30 seconds.
Change:FFMetrics.conf format is changed (see FFMetrics.conf.example)
1.4.2b
Change:Updated components: System.Drawing.Common (6.0.0 => 7.0.0), Newtonsoft.Json (13.0.1 => 13.0.2), OxyPlot.Core, OxyPlot.SkiaSharp, OxyPlot.SkiaSharp.Wpf, OxyPlot.Wpf, OxyPlot.Wpf.Shared (all Oxy*: 2.1.0 => 2.1.2)
Change:Changes to make sure that external program (ffmpeg.exe) is closed (possible fix for crash while extracting bad frames)
Bugix:For ffmpeg with in-build VMAF models option 'model=path=file.json' is used for external json models instead of old option 'model_path=file.json'. The old option claimed as deprecated, but in fact does not work at all (#107)
1.4.1b
Change:Default LAVFI template changed from:
[0:v]{{main}}[main];[1:v]{{ref}}[ref];[main][ref]{{filter}}
to:
[0:v]{{main-trim}},{{main-settb}},{{main-setpts}},{{main-scale}},{{main-setrange}},{{main-format}}[main];[1:v]{{ref-trim}},{{ref-settb}},{{ref-setpts}},{{ref-setrange}},{{ref-format}}[ref];[main][ref]{{filter}}
All values in double curly brackets are substituted as required.
1.4.0b
New:Added a new command line parameter "-exit" that works in conjunction with "-run"
Change:Updated components HarfBuzzSharp, SkiaSharp, SkiaSharp.HarfBuzz, SkiaSharp.Views.Desktop.Common and System.Memory
Bugfix:Fixed crash that could happen while processing short command line arguments
1.3.2b
Bugfix:High CPU/GPU utilisation caused by hidden Progress Bars with IsIndeterminate="True" (bugfix back-ported from 1.4.7b)
1.3.1
No changes since 1.3.1b2
1.3.1b2
Bugfix:Internal exception when using with still images
Bugfix:Exec button is always disabled when stream duration is 0 (still image)
1.3.1b
Change:Progress bar is also displayed on plots window (#87)
Change:Metric value displayed as crossed out if its options not matched with current options (#92)
Change:Options for all metrics are written in results.csv
Change:Updated components HarfBuzzSharp, SkiaSharp, SkiaSharp.HarfBuzz and SkiaSharp.Views.Desktop.Common
1.3.0b
New:Ability to reset per metric results added (#91)
New:FFMpeg in-built VMAF models auto-detection added (#86)
New:FFMpeg timeouts can be configured in FFMetrics.conf (see "FFMetrics.conf.example") (#73)
Mew:A list of FFMpeg built-in VMAF models can be specified in FFMetrics.conf (see "FFMetrics.conf.example").
If the list is specified, the program will not check availability of the models and will just try to use them.
New:Progress indicator displayed on program startup
Change:Removed ability to specify FFMpeg colon escape characters in FFMetrics.conf (it was added in previous beta version)
Change:Relative path to VMAF models is used by default
Change:All external VMAF models are checked now (previously only the first model was checked). Note: this is slowing down program startup that is noticeable on low end PC.
Change:Updated components System.Drawing.Common and System.Runtime.CompilerServices
Change:Migrated .NET 4.7.2 => .NET 4.8 (#88)
Change:Migrated to Visual Studio 2022
1.2.1b
New:Temp dir can be specified in FFMetrics.conf (see "FFMetrics.conf.example") (#83)
New:FFMpeg colon escape characters can be specified in FFMetrics.conf (see "FFMetrics.conf.example") (#84)
Change:With command line parameter "-log-level=debug", option 'Write FFMpeg commands into log' is turned on automatically and disabled in UI (#82)
Change:model_path and log_path enclosed in single quotes separately ("libvmaf='log_path=C\:/path/to/log:model_path=C\:/path/to/model.json'" => "libvmaf=log_path='C\:/path/to/log':model_path='C\:/path/to/model.json'")
1.2.0b
New:Libvmaf options that should be used for checking supported vmaf models can be defined (see "FFMetrics.conf.example") (#81)
New:Built-in ffmpeg vmaf models can be used (see "FFMetrics.conf.example") (#81)
Change:FFMetrics.conf format is changed. Case sensitive metric properties 'Filter' and 'Lavfi' must be used instead of 'LavfiTemplate' (see "FFMetrics.conf.example")
You need to adjust your FFMetrics.conf if you use one
Bugfix:Metric model property "default" was not correct parsed while using in FFMetrics.conf
1.1.0b
New:OxyPlot library upgraded to version 2.1.0
- Much faster renderer used (vital when many long files analyzed in one go)
New:Plots moved to separate window that opened manually or automatically when metrics calculation started (#44)
Plots window auto-opening can be turned OFF using menu: "Options | Plot window opened manually" or using command line parameter "-plot-window-manual"
New:Plots can be saved as SVG (smaller file size and better quality when upscaled)
New:Plots update frequency can be adjusted using menu: "Options | Plot update speed" or using command line parameter "-plot-update-speed=HIGH|NORMAL|LOW|OFF"
New:Plot line styles can be configured in FFMetrics.conf (see "FFMetrics.conf.example") (#71)
New:New project options "Auto-save results on completion" and "Results auto-save file" (#18)
The options can be specified as command line parameters "-auto-save-results" and "-auto-save-results-file=<filespec>"
They replace previously existed command line parameters "-save-results" and "-save-results-file=<filespec>"
New:A number of distorted files displayed in program main window title
New:New command line parameter "-temp-dir=C:\Path\To\Temp". The program will try to create the folder if required (#75)
New:Command line parameters can be specified in *nix style with double dash: "--param=value"
Change:Maximum number of distorted files increased from 12 to 24 by default.
User may further increase it by manually configuring plot line styles in FFMetrics.conf (see "FFMetrics.conf.example") (#3)
Change:While extracting bad frames, program also extracts and save the same frames from reference file (#26)
Bugfix:Files are incorrectly updating on plots while re-ordering
Bugfix:Extracting bad frames is not accurate (#78)
Bugxif:Unable to drop file dragged from Windows Explorer to ref input (#77)
Bugfix:Crash while dragging item from distorted files list over blank Ref field (#79)
1.0.0
Change:Plot line ToolTip shown on mouse hover
Change:Plot line ToolTip contains file name
Change:Graph colours adjusted
Change:While Drag & Drop files, dragged file is not swapped with a file on targed possition
Bugfix:"Scaling method" and "Write FFMpeg Commands in log" are still saved to project file
0.9.9b
New:The best and the worst values per metric highlighted in the grid (#55)
New:New project option: "Skip" -- a duration that will be skipped at the beginning of video stream
Note: only a few small values are in dropdown as the skipping process is slow (#61)
New:Metric calculation time is measured and displayed in ToolTip (#62)
New:Files on the list can be re-arranged using Drag & Drop
Change:Timeout for process of getting FFMpeg version info increased from 2 to 5 seconds (this could help with #59)
Change:Timeout for process of getting supported VMAF model types increased from 2 to 5 seconds (this could help with #57)
Change:Options "Scaling method" and "Write FFMpeg Commands in log" are program options now, not project options.
So they are not stored in project file any longer.
Change:Option "Analyze" renamed to "Duration"
Change:Values in "Skip" and "Duration" dropdowns that will go out of ref's file duration marked in red
Bugfix:Frames' Axe on plot not reset if calculation cancelled and no data gathered (#54)
0.9.8b
New:Percentile 1, 5, 10, 25 calculated and displayed in metric value Tooltip (#25)
New:Json VMAF model files are checked now that they are actually in json format (invalid models not shown in dropdown) (#51)
Change:Improved enabling/disabling logic for buttons "Save results" & "Extract bad frames"
Bugfix:Values in metric value Tooltip are highlighted for unticked files (#53)
Bugfix:Message in metric value field is truncated (only up to 5 digits shown in messages such as "Frame: xyz") (#49)
Bugfix:Crash under some circumstances while extracting bad frames (#52)
Bugfix:FFMpeg command to extract bad frame fails if system decimal separator is not point (#52)
Bugfix:VMAF model is not restored on program restart as other options (#41)
0.9.7b
New:Scaling method can be changed in menu or using command line parameter "-scaling-method=NEIGHBOR|GAUSS|BILINEAR|BICUBIC|LANCZOS|SINC|SPLINE".
It is used only if distorted file's resolution is not equal to reference file's resolution. Default -- bicubic.
Change:Processes for getting ref's media info and ref's thumbnail are off-loaded to background process.
So these processes are not blocking UI on startup any longer (#39)
Change:UI: Block with options is resizable
Change:UI: Block with ref file is resizable
Change:UI: Minimum program windows width decreased
Change:UI: Progress indicator is displayed while getting ref's thumbnail (#40)
Change:UI: Progress indicator is displayed while getting files' media info (#38)
Change:Timeout for process of getting ref's thumbnail increased from 3 to 5 seconds
Change:Timeout for process of getting media info increased from 5 to 10 seconds (#36)
Change:Process of getting media info analyzes maximum 2 seconds and maximum 30 frames (previously 60 frames were always analyzed) (#36)
Bugfix:Old preview displayed after new project is created (#37)
0.9.6b
Change:All FFMpeg commands logged now (if appropriate option is turned ON) (#30)
Change:UI: Bitrate added to short media info for distorted files (#31)
Change:UI: Grid now resizeable horizontally and "path to file" column takes maximum available space (#33)
Bugfix:VMAF parameters saved in CSV results file might be incorrect (#28)
Bugfix:Total bitrate is shown instead of video stream's bitrate (#32)
0.9.5b
New:VMAF model types supported by FFMpeg (json or pkl) detected automatically on program startup (#10)
New:Frames statistics (MeanA, MeanG, Min, Max, StdDevP), frame's info and bitrate added to CSV results file (#17)
New:Bad frames could be extracted and saved as png images (#26)
New:Ref's thumbnail shown in UI
Change:Files list area is resizeable and all 12 files could be visible at once without scrolling (handy for taking screenshots)
Change:FFMpeg process priority changed to "Below Normal" for all calls
0.9.4b
New:Progress is shown in system task bar (#20)
Change:5, 10, 15, 20, 30 minutes added to "Analyze" duration dropdown (#14)
Change:FFMpeg external process timeout for getting media info increased from 2 to 5 seconds (should help with #19)
Change:Program version number returned to title
Bugfix:"Save Project As" not updating title (#21)
Bugfix:Metrics checkboxes not ticked on the 1st program run as they should
Bugfix:Crash if integer returned by FFMpeg as frame metric value instead of double ("42", expected: "42.0")
Bugfix:Crash when FFMpeg process finished prematurely with partial output
On my system this was caused by combination of LAVSplitter + AviSynth + DirectShowSource(VP9 or AV1)
0.9.3b
Change:Logic for generating log filename for VMAF calculation changed for working around ffmpeg/libvmaf bug (fix #13)
Change:Internal changes to improve logging
Bugfix:Un-ticking all files not disabling "Start" button
0.9.2b
Change:Options from project that was specified in command line parameter "-project=/path/to/project.ffmproj" now have
lower priority than options specified in command line parameters directly.
So now VMAF Phone Model option specified in project file will be ignored:
FFMetrics -project=proj.ffmproj -vmaf-phone-model -run
Change:Hotkey for "Save Project As" changed from Ctrl+Alt+S to Ctrl+Shift+S
Change:Hotkey for selecting Ref added (Ctrl+Alt+O)
Change:FFMetrics and FFMpeg versions added into results csv file
Bugfix:Ref's media info not updated (fix #11)
Bugfix:"Save CSV" button disabled after saving reqults that prevents results to be saved more than once
0.9.0b
New:UI: Program menu added
New:UI: Hotkeys added (investigate program menu to find them out)
New:UI: "About" with short program description and link to project homepage added
New:Added ability to work with projects (save/load)
New:Distorted files automatically resized to ref's resolution during metrics calculation
New:Processing duration is remembered over program restarts (aligned with other options)
New:Harmonic Mean added to metric value Tooltip
New:The Best/The Worst Min/Max/Avg/StdDevP metrics' values in Tooltip are highlighted (only ticked files are taken into consideration)
New:Critical values in media info Tooltip highlighted
New:Added ability to copy image to clipboard (Ctrl+C)
New:Command line parameter "-duration=seconds" added (value must exactly match one of the value available in program dropdown)
New:Command line parameter "-project=/path/to/project" added. Values from project file have higher priority.
Change: Command line bool parameter "-vmaf-harmonic-mean" replaced with "-vmaf-pool=harmonic_mean|mean" (to align with libvmaf options)
Change:VMAF json-models used instead of pkl-models if they found in models' folder.
If you use old FFMpeg that supports pkl-models, you must ensure that there are no json-models in models' folder.
If you use new FFMpeg that supports json-models, you must ensure that you've put json-models in models' folder (included in separate archive)
Change:Execution is disabled until media info for all ticked files gathered
Change:FFMetrics.conf format is changed (now vmaf model keys are without extensions).
You will need to re-implement your changes if you using the custom metrics configuration file.
Bugfix:Command line parameters not parsed correctly if sole distorted file specified
0.8.7b
New:More detailed media info displayed per file in Tooltip
Change:FFMpeg detection routing now checks available filters instead of configuration options (#7)
Change:264 and hevc were added to video file extensions list
Change:FFMpeg calculation process priority changed to "Below Normal" (analyze FFMpeg process priority was not changes and is still "Normal")
Bugfix:Metrics values in Tooltips not updating on 2nd+ runs
Bugfix:Metrics' values not cleared after "Reset"
Bugfix:Tooltip with blank metric values still shown after "Reset"
Bugfix:Typo in "Vide Files"
0.8.6b
New:Frames based min, max and standard deviation (pop) shown for each metric value in Tooltip.
Unfortunately, information in frames log not always match the information that ffmpeg shows at the end for file.
For PSNR in frames log I have two decimal places, but at the end 6 decimal places returned.
Bugfix:FFMpeg detection routine cannot detect some builds
0.8.5b
New:Colour format/range displayed in media info for Ref
New:Media info displayed not only for Ref, but for processed files as well (full info available as ToolTip)
Change:When Ref changes calculated metrics/graphs are resetting
Change:Calc button does not reset already calculated metrics/graphs
Change:Colorus are tied to file numbers. When you tick/untick files, lines on graphs will not change colours
Change:'20 seconds' and '2 minutes' entries added to dropdown with processing lengths
Change:FFMpeg version detection routine improved
Bugfix:Manual editing Ref's path does not work correctly
0.8.3b
Change: Long file specs on the list truncating with ellipses in the middle of path (full file specs still can be visible in ToolTip on mouse hover)
Change: On getting media info now 60 frames analyzed (changed from 30)
Bugfix: Program freezing while getting media info when some files added as ref (#4) (deadlock while redirecting process strout/stderr)
0.8.2b
Change:mkv, mts and mxf were added on video file extensions list
Change: Scan type (progressive|interlaced) provided in metadata is honoured
Bugfix:'Clear All' button is not clearing files list in plot
Bugfix:Files list in plot not updated instantly when file added/removed
Bugfix: VMAF values/graphs not displayed correctly when system number decimal separator is non a dot (#2)
0.8.1b
New:Graph can be saved as PNG
New:Program icon added
0.8.0b
New:Overall progress indicator added (program is trying to estimate processing time, not percentage of processed files)
New:Button icons added
New:VMAF option "Harmonic Mean" + command line parameter "-vmaf-harmonic-mean" added
New:VMAF option "Phone" + command line parameter "-vmaf-phone-model" added
New:Results file can be specified
New:Command line parameter "-save-results-file=C:\Path\To\Results.csv" added
New:Program now reads file FFMetric.conf. Lavfi template and some other params could be adjusted there.
For example, one can add calculation VMAF/PSNR, VMAF/SSIM, VMAF/MSSIM, so they will be stored in frames' metrics csv files.
Change:Bool command line parameters now can be specified in a few different ways: "-option", "-option=1" or "-option=true"
Note: "-option=0", "-option=false" or "-option=any-other-value" will NOT turn ON the option any longer
0.7.5b
New:Short media info is displayed for reference file (frame size, frame rate, interlaced/progressive, bitrate, duration)
New:When reference changed, suggested VAF model is selected automatically (4K model will be choosen for 4K files)
New:Folder for frames metrics CSV files could be specified. If left blank, these files will be created aside of processed files (as before)
New:Command line parameter "-log-frames-dir=C:\path\to\dir" added
Change:Another UI re-design
Change:Results file extension changed from "log" to "csv"
0.7.1b
New:Accepts command line parameters:
FFMetrics.exe [options] ref.mp4 main.mp4 [main2.mp4] ...
Options:
-log-frames Log frames' metrics to csv files
-log-commands Log ffmpeg commands
-run Run calculation when program started
-save-results After calculation save results to file
-metric=PSNR|SSIM|VMAF Default: all
-vmaf-model=filename.pkl Default: vmaf_v0.6.1.pkl
-log-level=DEBUG|ERROR|INFO Default: INFO
Change:Command line parameter "-log-level-debug" removed, use "-log-level=DEBUG" instead (see above)
Change:Results file format changed (metric names removed from values and now are in header). It should be easier to open results in Excel now.
0.7.0b
New:Calculation can be cancelled
New:UI: VMAF model can be choosen
New:UI: Only small part of video can be analyzed (pre-defined set on values: 5, 10, 30, 60 seconds, whole file)
New:Added new command line option "-log-level-debug" (can be useful for investigating issues)
New:Errors are shown in tooltips
Change:UI: slightly re-designed
Change:UNC paths should be supported now (\\server\path\to\file.mp4)
Change:VMAF model files now should be in "vmaf-model" sub-folder
Change:Files limit increased from 10 to 12
Change:Target platform changed back to .NET 4.7.2 (included in Windows 10 1803+, older versions of Windows will require .NET 4.7.2 installation)
Change:Internal changes and optimizations
Bugfix:Race conditions while working with external process in background thread should be fixed
0.6.5b
Change:Logging warnings
Change:Improved ffmpeg.exe version detection routine
Bugfix:Unhandled exception when model file(s) missing
0.6.4b
Change:Target platform changed from .NET 4.7.2 to .NET 4.5.2 (included in Windows 10, Windows 7/8 will require .NET 4.5.2 installation)
0.6.3b
New:Selected files on a list can be excluded from analyzing / graphs
0.6.2b
New:Added ability to select metrics for processing
Change:Program do not even trying to create FFMetrics.log until it is really needed
Bugfix:Clear button does not work correctly
Bugfix:Program is not displayed in taskbar
0.6.1b
Initial public release
Change: More logging added
Change: Updated components: System.Buffers (4.5.1 => 4.6.0), System.Drawing.Common (8.0.10 => 9.0.0), System.Memory (4.5.5 => 4.6.0), System.Numerics.Vectors (4.5.0 => 4.6.0), System.Runtime.CompilerServices.Unsafe (6.0.0 => 6.1.0), HarfBuzzSharp (7.3.0.2 => 7.3.0.3), SkiaSharp (2.88.8 => 2.88.9)
v1.5.0
Bugfix: FFMetrics unable to detect available FFMpeg quality metrics under some circumstances (#164)
v1.5.0 beta 13 (release candidate 5)
Change: Display filename without path for distorted files that are located in the same folder with ref file
v1.5.0 beta 12 (release candidate 4)
Change: FPS detection improved (#159)
Change: Field type detection heuristics adjusted
Change: A number of frames used for media info detection increased from 30 to 60 frames (this is slowing down media info extraction process, but making it a bit more reliable)
Change: Media info extraction timeout increased from 30 to 60 seconds
Change: Unknown field type displayed as '-unknown-' in media info popup and '?' in media info strings
Change: Extracted images should have more accurate colours (#149)
Bugfix: Plots left margin increased and Y-values rotated 45 CCW, so SSIM values truncated not so badly
Bugfix: Missed FPS causing program to crash on media info mouse hover (#160)
v1.5.0 beta 11 (release candidate 3)
Bugfix: Timeout errors must always be logged, not only when program started with -log-level=debug (#157)
Change: Plot control hints slightly adjusted & fixed
v1.5.0 beta 10 (release candidate 2)
Change: Default timeouts increased:
Bad frame extract: 30 seconds => 60 seconds
Media info extract: 10 seconds => 30 seconds
Thumbnail extract: 5 seconds => 30 seconds
FFMpeg version check: 10 seconds => 30 seconds
v1.5.0 beta 9 (release candidate)
New: Plot control hints added in plot window
Change: FFMpeg version check timeout increased to 10 seconds (from 5 seconds)
Change: Updated components: System.Drawing.Common (8.0.6 => 8.0.10), OxyPlot.Core, OxyPlot.SkiaSharp, OxyPlot.SkiaSharp.Wpf, OxyPlot.Wpf, OxyPlot.Wpf.Shared (all Oxy*: 2.1.2 => 2.2.0), Microsoft.NETFramework.ReferenceAssemblies (1.0.2 => 1.0.3)
1.5.0b8
Change:FFMetrics.conf.example updated with current built-in defaults
Change:More values added to Skip dropdown (be careful, high values are slow)
Change:Default metrcis columns width slightly increased
Change:Updated components: System Drawing Common (8.0.4 => 8.0.6)
Bugfix:Frames Harmonic Mean & Std Dev values in popup fixed (the bug introduced in 1.5.0b)
1.5.0b7
Bugfix:Proper fix for issue in finding associated program
Bugfix:More work for preventing ref/distorted swapping caused by File Dialogs
1.5.0b5
Bugfix:Crash while finding associated program when filespec = null (introduced in 1.5.0b5) (#146)
1.5.0b5
New:Added buttons for playing distorted files with system associated program (#145)
New:Now FFMetrics also parses streams' metadata returned by FFMpeg to find bitrate (#144)
Bugfix:Reference file bitrate was duplicated
1.5.0b4
Change:Improved long file path shortening logic (#143)
Bugfix:Fixed a bug when a distorted file could be swapped with ref while adding a new file with File Chooser and double clicking on file name
1.5.0b3
Bugfix:Fixed crash when removing files, introduced in 1.5.0b2 (#142)
1.5.0b2
Change:Use absolute path to VMAF models if FFMpeg.exe located not in FFMetrics folder as in this case models cannot be found by FFMpeg
Bugfix:FFMpeg.exe location detection was broken
Bugfix:Fixed bug in VMAF filter (introduced in 1.5.0b)
1.5.0b
New:VMAF subsample option added (#136)
Change:File ordering re-implemented. More work as original issue was not fixed (#124)
Change:Updated components: System Drawing Common (8.0.2 => 8.0.4), HarfBuzzSharp (7.3.0.1 => 7.3.0.2), SkiaSharp (2.88.7 => 2.88.8)
Bugfix:Temp dir availability and write access is checked on program starup (#134)
Bugfix:Message displayed if log file cannot be created
Bugfix:Fixed crash that might happen while drag & dropping distorted items (#135)
1.4.9b
Change:File ordering re-implemented (#124)
Change:Extension m4v added to accepted files list (#125)
Change:Accepted files list can be configured (see FFMetrics.conf.example) (#127)
Change:Updated components: System Drawing Common (7.0.0 => 8.0.2), HarfBuzzSharp (2.8.2.3 => 7.3.0.1), SkiaSharp (2.88.3 => 2.88.7)
Bugfix:Searching line with file metric returned by FFMpeg more is reliable (#126)
1.4.8b
Change:"Action | Show plots window" in menu should not be tickable option
Change:Updated component: Newtonsoft.Json (13.0.2 => 13.0.3)
1.4.7b
Bugfix:High CPU/GPU utilisation caused by hidden Progress Bars with IsIndeterminate="True"
1.4.6b
New:Click on metric column header order files by metric value (#98)
1.4.5b
New:FFMpeg arguments for getting metrics can be defined in FFMetrics.conf (see FFMetrics.conf.example)
Change:-r <framerate> added before -i <filespec> to FFMpeg arguments while getting metrics (as per VMAF recommendation)
Change:TBR is used instead of FPS if available and not differ too much from FPS (should help with some VFR footage)
Bugfix:Skip was ignored when extracting bad frames
Bugfix:Project options were not always restored correctly on program startup
1.4.3b2
Bugfix:Fixed bug with escaping FFMpeg command line parameters (introduced in 1.4.3b)
1.4.3b
New:A number of bad frames that should be extracted can be configured in FFMetrics.conf (see FFMetrics.conf.example)
New:FFMpeg arguments for getting FFMpeg version info, checking VMAF models, getting media info, extracting bad frames and getting thumbnails can be defined in FFMetrics.conf (see FFMetrics.conf.example)
Change:Timeout for extracting bad frames increased to 30 seconds.
Change:FFMetrics.conf format is changed (see FFMetrics.conf.example)
1.4.2b
Change:Updated components: System.Drawing.Common (6.0.0 => 7.0.0), Newtonsoft.Json (13.0.1 => 13.0.2), OxyPlot.Core, OxyPlot.SkiaSharp, OxyPlot.SkiaSharp.Wpf, OxyPlot.Wpf, OxyPlot.Wpf.Shared (all Oxy*: 2.1.0 => 2.1.2)
Change:Changes to make sure that external program (ffmpeg.exe) is closed (possible fix for crash while extracting bad frames)
Bugix:For ffmpeg with in-build VMAF models option 'model=path=file.json' is used for external json models instead of old option 'model_path=file.json'. The old option claimed as deprecated, but in fact does not work at all (#107)
1.4.1b
Change:Default LAVFI template changed from:
[0:v]{{main}}[main];[1:v]{{ref}}[ref];[main][ref]{{filter}}
to:
[0:v]{{main-trim}},{{main-settb}},{{main-setpts}},{{main-scale}},{{main-setrange}},{{main-format}}[main];[1:v]{{ref-trim}},{{ref-settb}},{{ref-setpts}},{{ref-setrange}},{{ref-format}}[ref];[main][ref]{{filter}}
All values in double curly brackets are substituted as required.
1.4.0b
New:Added a new command line parameter "-exit" that works in conjunction with "-run"
Change:Updated components HarfBuzzSharp, SkiaSharp, SkiaSharp.HarfBuzz, SkiaSharp.Views.Desktop.Common and System.Memory
Bugfix:Fixed crash that could happen while processing short command line arguments
1.3.2b
Bugfix:High CPU/GPU utilisation caused by hidden Progress Bars with IsIndeterminate="True" (bugfix back-ported from 1.4.7b)
1.3.1
No changes since 1.3.1b2
1.3.1b2
Bugfix:Internal exception when using with still images
Bugfix:Exec button is always disabled when stream duration is 0 (still image)
1.3.1b
Change:Progress bar is also displayed on plots window (#87)
Change:Metric value displayed as crossed out if its options not matched with current options (#92)
Change:Options for all metrics are written in results.csv
Change:Updated components HarfBuzzSharp, SkiaSharp, SkiaSharp.HarfBuzz and SkiaSharp.Views.Desktop.Common
1.3.0b
New:Ability to reset per metric results added (#91)
New:FFMpeg in-built VMAF models auto-detection added (#86)
New:FFMpeg timeouts can be configured in FFMetrics.conf (see "FFMetrics.conf.example") (#73)
Mew:A list of FFMpeg built-in VMAF models can be specified in FFMetrics.conf (see "FFMetrics.conf.example").
If the list is specified, the program will not check availability of the models and will just try to use them.
New:Progress indicator displayed on program startup
Change:Removed ability to specify FFMpeg colon escape characters in FFMetrics.conf (it was added in previous beta version)
Change:Relative path to VMAF models is used by default
Change:All external VMAF models are checked now (previously only the first model was checked). Note: this is slowing down program startup that is noticeable on low end PC.
Change:Updated components System.Drawing.Common and System.Runtime.CompilerServices
Change:Migrated .NET 4.7.2 => .NET 4.8 (#88)
Change:Migrated to Visual Studio 2022
1.2.1b
New:Temp dir can be specified in FFMetrics.conf (see "FFMetrics.conf.example") (#83)
New:FFMpeg colon escape characters can be specified in FFMetrics.conf (see "FFMetrics.conf.example") (#84)
Change:With command line parameter "-log-level=debug", option 'Write FFMpeg commands into log' is turned on automatically and disabled in UI (#82)
Change:model_path and log_path enclosed in single quotes separately ("libvmaf='log_path=C\:/path/to/log:model_path=C\:/path/to/model.json'" => "libvmaf=log_path='C\:/path/to/log':model_path='C\:/path/to/model.json'")
1.2.0b
New:Libvmaf options that should be used for checking supported vmaf models can be defined (see "FFMetrics.conf.example") (#81)
New:Built-in ffmpeg vmaf models can be used (see "FFMetrics.conf.example") (#81)
Change:FFMetrics.conf format is changed. Case sensitive metric properties 'Filter' and 'Lavfi' must be used instead of 'LavfiTemplate' (see "FFMetrics.conf.example")
You need to adjust your FFMetrics.conf if you use one
Bugfix:Metric model property "default" was not correct parsed while using in FFMetrics.conf
1.1.0b
New:OxyPlot library upgraded to version 2.1.0
- Much faster renderer used (vital when many long files analyzed in one go)
New:Plots moved to separate window that opened manually or automatically when metrics calculation started (#44)
Plots window auto-opening can be turned OFF using menu: "Options | Plot window opened manually" or using command line parameter "-plot-window-manual"
New:Plots can be saved as SVG (smaller file size and better quality when upscaled)
New:Plots update frequency can be adjusted using menu: "Options | Plot update speed" or using command line parameter "-plot-update-speed=HIGH|NORMAL|LOW|OFF"
New:Plot line styles can be configured in FFMetrics.conf (see "FFMetrics.conf.example") (#71)
New:New project options "Auto-save results on completion" and "Results auto-save file" (#18)
The options can be specified as command line parameters "-auto-save-results" and "-auto-save-results-file=<filespec>"
They replace previously existed command line parameters "-save-results" and "-save-results-file=<filespec>"
New:A number of distorted files displayed in program main window title
New:New command line parameter "-temp-dir=C:\Path\To\Temp". The program will try to create the folder if required (#75)
New:Command line parameters can be specified in *nix style with double dash: "--param=value"
Change:Maximum number of distorted files increased from 12 to 24 by default.
User may further increase it by manually configuring plot line styles in FFMetrics.conf (see "FFMetrics.conf.example") (#3)
Change:While extracting bad frames, program also extracts and save the same frames from reference file (#26)
Bugfix:Files are incorrectly updating on plots while re-ordering
Bugfix:Extracting bad frames is not accurate (#78)
Bugxif:Unable to drop file dragged from Windows Explorer to ref input (#77)
Bugfix:Crash while dragging item from distorted files list over blank Ref field (#79)
1.0.0
Change:Plot line ToolTip shown on mouse hover
Change:Plot line ToolTip contains file name
Change:Graph colours adjusted
Change:While Drag & Drop files, dragged file is not swapped with a file on targed possition
Bugfix:"Scaling method" and "Write FFMpeg Commands in log" are still saved to project file
0.9.9b
New:The best and the worst values per metric highlighted in the grid (#55)
New:New project option: "Skip" -- a duration that will be skipped at the beginning of video stream
Note: only a few small values are in dropdown as the skipping process is slow (#61)
New:Metric calculation time is measured and displayed in ToolTip (#62)
New:Files on the list can be re-arranged using Drag & Drop
Change:Timeout for process of getting FFMpeg version info increased from 2 to 5 seconds (this could help with #59)
Change:Timeout for process of getting supported VMAF model types increased from 2 to 5 seconds (this could help with #57)
Change:Options "Scaling method" and "Write FFMpeg Commands in log" are program options now, not project options.
So they are not stored in project file any longer.
Change:Option "Analyze" renamed to "Duration"
Change:Values in "Skip" and "Duration" dropdowns that will go out of ref's file duration marked in red
Bugfix:Frames' Axe on plot not reset if calculation cancelled and no data gathered (#54)
0.9.8b
New:Percentile 1, 5, 10, 25 calculated and displayed in metric value Tooltip (#25)
New:Json VMAF model files are checked now that they are actually in json format (invalid models not shown in dropdown) (#51)
Change:Improved enabling/disabling logic for buttons "Save results" & "Extract bad frames"
Bugfix:Values in metric value Tooltip are highlighted for unticked files (#53)
Bugfix:Message in metric value field is truncated (only up to 5 digits shown in messages such as "Frame: xyz") (#49)
Bugfix:Crash under some circumstances while extracting bad frames (#52)
Bugfix:FFMpeg command to extract bad frame fails if system decimal separator is not point (#52)
Bugfix:VMAF model is not restored on program restart as other options (#41)
0.9.7b
New:Scaling method can be changed in menu or using command line parameter "-scaling-method=NEIGHBOR|GAUSS|BILINEAR|BICUBIC|LANCZOS|SINC|SPLINE".
It is used only if distorted file's resolution is not equal to reference file's resolution. Default -- bicubic.
Change:Processes for getting ref's media info and ref's thumbnail are off-loaded to background process.
So these processes are not blocking UI on startup any longer (#39)
Change:UI: Block with options is resizable
Change:UI: Block with ref file is resizable
Change:UI: Minimum program windows width decreased
Change:UI: Progress indicator is displayed while getting ref's thumbnail (#40)
Change:UI: Progress indicator is displayed while getting files' media info (#38)
Change:Timeout for process of getting ref's thumbnail increased from 3 to 5 seconds
Change:Timeout for process of getting media info increased from 5 to 10 seconds (#36)
Change:Process of getting media info analyzes maximum 2 seconds and maximum 30 frames (previously 60 frames were always analyzed) (#36)
Bugfix:Old preview displayed after new project is created (#37)
0.9.6b
Change:All FFMpeg commands logged now (if appropriate option is turned ON) (#30)
Change:UI: Bitrate added to short media info for distorted files (#31)
Change:UI: Grid now resizeable horizontally and "path to file" column takes maximum available space (#33)
Bugfix:VMAF parameters saved in CSV results file might be incorrect (#28)
Bugfix:Total bitrate is shown instead of video stream's bitrate (#32)
0.9.5b
New:VMAF model types supported by FFMpeg (json or pkl) detected automatically on program startup (#10)
New:Frames statistics (MeanA, MeanG, Min, Max, StdDevP), frame's info and bitrate added to CSV results file (#17)
New:Bad frames could be extracted and saved as png images (#26)
New:Ref's thumbnail shown in UI
Change:Files list area is resizeable and all 12 files could be visible at once without scrolling (handy for taking screenshots)
Change:FFMpeg process priority changed to "Below Normal" for all calls
0.9.4b
New:Progress is shown in system task bar (#20)
Change:5, 10, 15, 20, 30 minutes added to "Analyze" duration dropdown (#14)
Change:FFMpeg external process timeout for getting media info increased from 2 to 5 seconds (should help with #19)
Change:Program version number returned to title
Bugfix:"Save Project As" not updating title (#21)
Bugfix:Metrics checkboxes not ticked on the 1st program run as they should
Bugfix:Crash if integer returned by FFMpeg as frame metric value instead of double ("42", expected: "42.0")
Bugfix:Crash when FFMpeg process finished prematurely with partial output
On my system this was caused by combination of LAVSplitter + AviSynth + DirectShowSource(VP9 or AV1)
0.9.3b
Change:Logic for generating log filename for VMAF calculation changed for working around ffmpeg/libvmaf bug (fix #13)
Change:Internal changes to improve logging
Bugfix:Un-ticking all files not disabling "Start" button
0.9.2b
Change:Options from project that was specified in command line parameter "-project=/path/to/project.ffmproj" now have
lower priority than options specified in command line parameters directly.
So now VMAF Phone Model option specified in project file will be ignored:
FFMetrics -project=proj.ffmproj -vmaf-phone-model -run
Change:Hotkey for "Save Project As" changed from Ctrl+Alt+S to Ctrl+Shift+S
Change:Hotkey for selecting Ref added (Ctrl+Alt+O)
Change:FFMetrics and FFMpeg versions added into results csv file
Bugfix:Ref's media info not updated (fix #11)
Bugfix:"Save CSV" button disabled after saving reqults that prevents results to be saved more than once
0.9.0b
New:UI: Program menu added
New:UI: Hotkeys added (investigate program menu to find them out)
New:UI: "About" with short program description and link to project homepage added
New:Added ability to work with projects (save/load)
New:Distorted files automatically resized to ref's resolution during metrics calculation
New:Processing duration is remembered over program restarts (aligned with other options)
New:Harmonic Mean added to metric value Tooltip
New:The Best/The Worst Min/Max/Avg/StdDevP metrics' values in Tooltip are highlighted (only ticked files are taken into consideration)
New:Critical values in media info Tooltip highlighted
New:Added ability to copy image to clipboard (Ctrl+C)
New:Command line parameter "-duration=seconds" added (value must exactly match one of the value available in program dropdown)
New:Command line parameter "-project=/path/to/project" added. Values from project file have higher priority.
Change: Command line bool parameter "-vmaf-harmonic-mean" replaced with "-vmaf-pool=harmonic_mean|mean" (to align with libvmaf options)
Change:VMAF json-models used instead of pkl-models if they found in models' folder.
If you use old FFMpeg that supports pkl-models, you must ensure that there are no json-models in models' folder.
If you use new FFMpeg that supports json-models, you must ensure that you've put json-models in models' folder (included in separate archive)
Change:Execution is disabled until media info for all ticked files gathered
Change:FFMetrics.conf format is changed (now vmaf model keys are without extensions).
You will need to re-implement your changes if you using the custom metrics configuration file.
Bugfix:Command line parameters not parsed correctly if sole distorted file specified
0.8.7b
New:More detailed media info displayed per file in Tooltip
Change:FFMpeg detection routing now checks available filters instead of configuration options (#7)
Change:264 and hevc were added to video file extensions list
Change:FFMpeg calculation process priority changed to "Below Normal" (analyze FFMpeg process priority was not changes and is still "Normal")
Bugfix:Metrics values in Tooltips not updating on 2nd+ runs
Bugfix:Metrics' values not cleared after "Reset"
Bugfix:Tooltip with blank metric values still shown after "Reset"
Bugfix:Typo in "Vide Files"
0.8.6b
New:Frames based min, max and standard deviation (pop) shown for each metric value in Tooltip.
Unfortunately, information in frames log not always match the information that ffmpeg shows at the end for file.
For PSNR in frames log I have two decimal places, but at the end 6 decimal places returned.
Bugfix:FFMpeg detection routine cannot detect some builds
0.8.5b
New:Colour format/range displayed in media info for Ref
New:Media info displayed not only for Ref, but for processed files as well (full info available as ToolTip)
Change:When Ref changes calculated metrics/graphs are resetting
Change:Calc button does not reset already calculated metrics/graphs
Change:Colorus are tied to file numbers. When you tick/untick files, lines on graphs will not change colours
Change:'20 seconds' and '2 minutes' entries added to dropdown with processing lengths
Change:FFMpeg version detection routine improved
Bugfix:Manual editing Ref's path does not work correctly
0.8.3b
Change: Long file specs on the list truncating with ellipses in the middle of path (full file specs still can be visible in ToolTip on mouse hover)
Change: On getting media info now 60 frames analyzed (changed from 30)
Bugfix: Program freezing while getting media info when some files added as ref (#4) (deadlock while redirecting process strout/stderr)
0.8.2b
Change:mkv, mts and mxf were added on video file extensions list
Change: Scan type (progressive|interlaced) provided in metadata is honoured
Bugfix:'Clear All' button is not clearing files list in plot
Bugfix:Files list in plot not updated instantly when file added/removed
Bugfix: VMAF values/graphs not displayed correctly when system number decimal separator is non a dot (#2)
0.8.1b
New:Graph can be saved as PNG
New:Program icon added
0.8.0b
New:Overall progress indicator added (program is trying to estimate processing time, not percentage of processed files)
New:Button icons added
New:VMAF option "Harmonic Mean" + command line parameter "-vmaf-harmonic-mean" added
New:VMAF option "Phone" + command line parameter "-vmaf-phone-model" added
New:Results file can be specified
New:Command line parameter "-save-results-file=C:\Path\To\Results.csv" added
New:Program now reads file FFMetric.conf. Lavfi template and some other params could be adjusted there.
For example, one can add calculation VMAF/PSNR, VMAF/SSIM, VMAF/MSSIM, so they will be stored in frames' metrics csv files.
Change:Bool command line parameters now can be specified in a few different ways: "-option", "-option=1" or "-option=true"
Note: "-option=0", "-option=false" or "-option=any-other-value" will NOT turn ON the option any longer
0.7.5b
New:Short media info is displayed for reference file (frame size, frame rate, interlaced/progressive, bitrate, duration)
New:When reference changed, suggested VAF model is selected automatically (4K model will be choosen for 4K files)
New:Folder for frames metrics CSV files could be specified. If left blank, these files will be created aside of processed files (as before)
New:Command line parameter "-log-frames-dir=C:\path\to\dir" added
Change:Another UI re-design
Change:Results file extension changed from "log" to "csv"
0.7.1b
New:Accepts command line parameters:
FFMetrics.exe [options] ref.mp4 main.mp4 [main2.mp4] ...
Options:
-log-frames Log frames' metrics to csv files
-log-commands Log ffmpeg commands
-run Run calculation when program started
-save-results After calculation save results to file
-metric=PSNR|SSIM|VMAF Default: all
-vmaf-model=filename.pkl Default: vmaf_v0.6.1.pkl
-log-level=DEBUG|ERROR|INFO Default: INFO
Change:Command line parameter "-log-level-debug" removed, use "-log-level=DEBUG" instead (see above)
Change:Results file format changed (metric names removed from values and now are in header). It should be easier to open results in Excel now.
0.7.0b
New:Calculation can be cancelled
New:UI: VMAF model can be choosen
New:UI: Only small part of video can be analyzed (pre-defined set on values: 5, 10, 30, 60 seconds, whole file)
New:Added new command line option "-log-level-debug" (can be useful for investigating issues)
New:Errors are shown in tooltips
Change:UI: slightly re-designed
Change:UNC paths should be supported now (\\server\path\to\file.mp4)
Change:VMAF model files now should be in "vmaf-model" sub-folder
Change:Files limit increased from 10 to 12
Change:Target platform changed back to .NET 4.7.2 (included in Windows 10 1803+, older versions of Windows will require .NET 4.7.2 installation)
Change:Internal changes and optimizations
Bugfix:Race conditions while working with external process in background thread should be fixed
0.6.5b
Change:Logging warnings
Change:Improved ffmpeg.exe version detection routine
Bugfix:Unhandled exception when model file(s) missing
0.6.4b
Change:Target platform changed from .NET 4.7.2 to .NET 4.5.2 (included in Windows 10, Windows 7/8 will require .NET 4.5.2 installation)
0.6.3b
New:Selected files on a list can be excluded from analyzing / graphs
0.6.2b
New:Added ability to select metrics for processing
Change:Program do not even trying to create FFMetrics.log until it is really needed
Bugfix:Clear button does not work correctly
Bugfix:Program is not displayed in taskbar
0.6.1b
Initial public release