ExactDedup

From Avisynth wiki
Revision as of 17:15, 21 April 2020 by Reel.Deal (Talk | contribs)

Jump to: navigation, search
Abstract
Author Steve Melenchuk, Arick Chan, StainlessS
Version v0.0.6
Download ExactDedup_25&26_x86_x64_dll_v0-06_20190215.zip
Category Duplicate frame detectors
License GPLv3
Discussion Doom9 Thread - update, 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.


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", bool "show")


clip   =
Input 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.


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  times = "times.txt"
The name of the Matroska v2 timecodes file that will be output by the first pass.


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.


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  show = false
Default false. If True, shows a little info on second pass..


Examples

ExactDedup with default settings:

AviSource("Blah.avi")
ExactDedup(firstpass=true, dupinfo="dupinfo.txt", times="times.txt", maxdupcount=20, _keeplastframe=false, show=false)


Changelog

Version      Date            Changes
v0.0.6 2019-02-15 - Mod by StainlessS - see discussion - Fixed M$ broken relative pathnames.
v0.0.5 2017-05-17 - Mod by StainlessS - see discussion - Using AviSynth+ Header. - Convert to VS2008, x64 compile. - AviSynth v2.6 and AviSynth+ x32/x64 only.
v0.0.4 2017-02-16 - Mod by StainlessS - see discussion - Fixed number of bugs. - AviSynth v2.6 plugin. - Added Support for v2.6 Planar (also added U & V chroma scan for YV12, only scanned luma). - Added Show Arg. - Write times and dupinfo files at end of scan,so you don't have to edit script in text editor before second pass.
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


Archived Downloads

Version Download Mirror
v0.0.6 ExactDedup_25&26_x86_x64_dll_v0-06_20190215.zip ExactDedup_25&26_x86_x64_dll_v0-06_20190215.zip


External Links




Back to External Filters

Personal tools