ExactDedup
From Avisynth wiki
Revision as of 06:49, 8 November 2015 by Raffriff42 (Talk | contribs)
Abstract | |
---|---|
Author | Steve Melenchuk, Arick Chan |
Version | v0.03 |
Download | ExactDedup+Version+0.03.zip |
Category | Duplicate frame detectors |
License | GPLv3 |
Discussion | TASVideos Thread |
Contents |
Description
ExactDedup is a filter intended to remove frames that are exact duplicates of each other, leaving only the first and (optionally) last frames of a run intact, and generates a Matroska v2 timecodes file with timing information for the ensuing stream.
Due to the particulars of the AviSynth API, ExactDedup requires two passes to function efficiently. It could theoretically be designed to run with one pass, but this would result in a very long startup delay while the plugin precomputes all of the duplicate frame information and timecodes.
ExactDedup theoretically supports any input colorspace, but has been tested only with RGB colorspaces.
Requirements
- *** vcredist_x86.exe is required for ExactDedup-x86
- *** vcredist_x64.exe is required for ExactDedup-x64
Syntax and Parameters
- ExactDedup (clip, bool "firstpass", string "dupinfo", string "times", int "maxdupcount", bool "_keeplastframe")
- clip =
- Input clip.
- clip =
- bool firstpass = true
- Controls which pass the plugin is running.
- The first pass generates a mapping of output frames to input frames (stored in the file specified by dupinfo) and Matroska v2 timecodes (stored in the file specified by times); seeking during this pass is impossible.
- bool firstpass = true
- string dupinfo = "dupinfo.txt"
- The name of a temporary file generated by the first pass and read by the second pass; each line corresponds to a frame in the output video stream, and specifies the frame number of the frame in the input stream that will be used as that output frame.
- string dupinfo = "dupinfo.txt"
- string times = "times.txt"
- The name of the Matroska v2 timecodes file that will be output by the first pass.
- string times = "times.txt"
- int maxdupcount = 20
- The number of maximum consecutive duplicate frames corresponding to a single frame of the output; i.e. a maximum of (maxdupcount - 1) frames will be removed from a run of duplicates before another frame is kept.
- int maxdupcount = 20
- bool _keeplastframe = false
- Keeps the last frame of a run of duplicates. If a run of duplicates is larger than maxdupcount, this keeps only the last frame of the entire run, not of the individual maxdupcount-size blocks.
- bool _keeplastframe = false
Examples
ExactDedup with default settings:
AviSource("Blah.avi") ExactDedup(firstpass=true, dupinfo="dupinfo.txt", times="times.txt", maxdupcount=20, _keeplastframe=false)
Changelog
Version Date Changes
v0.0.3 2011/12/18 - primarily incorporates changes from Aktan to fix some incompatibilities with AviSynth's Crop() function (and likely other AviSynth functions) and some VirtualDub usage patterns. - 64-bit binary courtesy of Velitha.
v0.0.2 2011/11/18 - fixes a bug resulting in incorrect timecodes being output for some framerates (such as NTSC NES), and also outputs timecodes to nanosecond precision (as opposed to the microsecond precision of 0.01).
v0.0.1 2011/11/16 - initial release
External Links
- TASVideos Forum - ExactDedup discussion.
Back to External Filters ←