MSU TV Commercial Detector

http://compression.ru/video/tv_commercial_detector

Introduction

Commercial breaks take up to 20% time of broadcasting. When you record television programmes for home collection, it is reasonable to cut out commercial blocks in order to reduce size of the videofile and keep your time, that is usually spent on fast forwarding of advertisements. Commercial breaks can be detected by estimating special features of segments and by tracking of tv-channel logo.

How to use

You need to install AviSynth for normal work of program. You can download it from official site avisynth.org.

Program is launched from command line. You need to enter only one parameter: name of the processing file.
Example:

	msu-commdetector.exe example.mpg
Program will create avs file to open video and then will proceed to work. When program is launched without paremeters it tries to open file "source.avs" in home folder. The result of program work will be a textfile "result.txt" with marking of commercial block by frames and avs script removing these commercial blocks from video. Made avs file can be opened with any program working with avi (for example: VirtualDub, MeGUI, AviDemux, etc.).

Advanced settings

In file commdetector.ini you can specify advanced settings.

AnalyzeLogo = 0
Don't perform logo extraction. Useful for TV channels where logo doesn't fade for commercial time or in cases when program gives result that don't seem to be truth.
ExtractCommercial = 1
To create avs script including only commercial. May be useful for checking whether program is working correctly or not.
WriteDebugScript = 1
To create avs script where every block is subscribed as commercial or non-commercial.

Sometimes program yields wrong results by reason of incorrect work of installed in system MPEG-2 decoder. You may use external decoder to solve the problem. Download it form site <подставить сайт> and unpack content of archive to folder c:\Program Files\AviSynth 2.5\plugins\
Also you need to specify in settings file using of external decoder:

ExternalDecoder = 1