Comskip.txt

Here you can ask your questions on how to use Comskip for the detection of commercials. Also questions on how to remove commercials are welcome
Post Reply
MediaPC
Posts: 13
Joined: Tue Jul 27, 2010 1:12 pm

Comskip.txt

Post by MediaPC »

Hi I am hoping that you could change the way the comskip.txt file is layed out as the way it is now it is very hard to read.
By adding a space between each setting and explaination it is much easier to read. I do this everytime a new version of comskip comes out. I think most people would agree with this.
It would only have to be done once and then as you add settings to update it. Infact just copy what i have included here
Thanks Mark :D
PS sorry for the big post but could not see where to attach a file

[Main Settings]

detect_method=43 (0 - 255)
;the sum of the values for which kind of frames comskip will consider as possible cutpoints: 1=uniform (black or any other color) frame, 2=logo, 4=scene change, 8=resolution change, 16=closed captions, 32=aspect ration, 64=silence, 128=cutscene, 255=all.
;;The detect methods chosen can used for two purposes. The detection of where to cut and determining if a block (the segment between cutpoints) is show or commercial. Some methods only help defining cutpoints (such as blackframe) others only for determining show or commercial (such as closed captioning) and others for both (such as aspect ratio or logo)

verbose=10 (0 - 10)
;Set to 10 to show a lot of extra info, acceptable levels are 0 (no info at all, only errors) till 12 (a really a lot of info)

max_brightness=60 (10 - 255)
;Frame not a black frame if more then maxbright (see next) number of the pixels of the frame have a brightness greater than this (scale 0 to 255)

maxbright=1 (1 - MAXINT)
;Amount of pixels in a black frame allowed to be brighter then max_brightness

test_brightness=40 (10 - 255)
;Frame not pure black if a small number of the pixels of the frame has a brightness greater than this. To decide if the frame is truly black, comskip will also check average brightness (scale 0 to 255)
;; If more then about 10% of the frame has a higher brightness then test_brightness the frame is not regarded black

max_avg_brightness=25 (10-255)
;Frame is pure black if the average brightness is less then this

max_commercialbreak=600 (0 - MAXINT)
;The maximum duration in seconds of any commercial break, that is a sequence of blocks regarded as commercial

min_commercialbreak=25 (0 - MAXINT)
;The minimum duration in seconds of any commercial break, that is a sequence of blocks regarded as commercial

max_commercial_size=125 (0 - MAXINT)
;The maximum duration in seconds of any single commercial, that is any block between cutpoints regarded as commercial

min_commercial_size=4 (0 - MAXINT)
;The minimum duration in seconds of any single commercial, that is any block between cutpoints regarded as commercial

min_show_segment_length=125 (0 - MAXINT)
;Any block larger then this in seconds is regarded as a show block

max_volume=500 (0 - 32000)
;The maximum sound volume allowed at or around a black frame, volume_slip determines the allowed ofset in frames between sound and video

non_uniformity=500 (0-20000)
;The maximum fraction of pixels that are allowed to have more then noise_level brightness difference from the average brightness of a frame to be regarded as a uniform frame
;; A value of 0 will activate a automatic setting of this value, not recommended as a well tuned manual setting is better

[Detailed Settings]

min_silence=12 (0-3200)
;The minimum number of frames the volume has to be below the silence level to be regarded as a silence cutpoint.

noise_level=5 (1-255)
;The maximum deviation of the average brightness in a uniform frame that allows pixels not to be counted as non uniform.

brightness_jump=200 (10-255)
;Any frame with a jump in average brightness compared to the previous frame is a candidate scene change cutpoint

fps=25
;To set the frame rate when reviewing .csv files as there is no other way to determine the framerate

validate_silence=1 (0=off / 1=on)
;Heuristic validation of the quality of the silence cutpoints. If the validation fails the method will automatically be disabled

validate_uniform=1 (0=off / 1=on)
;Heuristic validation of the quality of the uniform cutpoints. If the validation fails the method will automatically be disabled

validate_scenechange=1 (0=off / 1=on)
;Heuristic validation of the quality of the scene change cutpoints. If the validation fails the method will automatically be disabled

global_threshold=1.05
;Any block that has a score above this value will be regarded as commercial, any score below will be regarded as show. Do not change this value

disable_heuristics=4 (0-255, bitmaks)
; Bitmask, when a bit is set the corresponding heuristics method is disabled. H1 -> 1, H2 -> 2, H3 ->4, H4 -> 8, etc
;; This is usefull when certain heuristics fail to improve the results and have to be disabled. Set verbose=10 and inspect the log file for the applied heuristics. Each heuristic is identified with an H followed by a number from 1 till 7

[CPU Load Reduction]

play_nice_start=-1 (-1 - 2359)
;Start time in 24 hour format when CPU load reduction should be used, 14:00 is written as 1400

play_nice_end=-1 (-1 - 2359)
;End time in 24 hour format when CPU load reduction should be used, 14:00 is written as 1400

play_nice_sleep=10 (0-MAXINT)
;Amount of miliseconds for each frame the processing should be suspended to reduce CPU load.
;;The effect depends on the processing speed in frames/second. When 10 frames/second are processed then a value of 10 only reduces 10% PCU load. When 100 f/s then the reduction is 50%

[Input Correction]

max_repair_size=200 (0 - MAXINT)
;The maximum number of dummy frames that will be inserted to keep a consistent timeline, any jump in PTS larger then this will be ignored. Setting to 0 disabled repair, any value larger then 1000 is useless
;;Accurate measurement of the duration of commercials is essential, using the PTS to calculate the duration of commercials is usefull when frames are corrupt due to transmission errors. This fails to work for large PTS discontinueties.

ms_audio_delay=5 (0-200)
;Audio/video aligment fix for dvr-ms files. Only change this value when during inspection a offset between sound and video is observed for dvr-ms recordings

volume_slip=20 (5-MAXINT)
;Maximum number of frames the silence is allowed to be misalligned with a blackframe to be regarded as a cutpoint. When the broadcast has transmission errors and bad PTS a value of upto 200 can be required. A higher value increases the chance of false positives on black frames.

variable_bitrate=1 (0=off / 1=on)
;Enables an adaptive algorithm when seeking during previewing of a recording in the debugwindow. Sometimes this fails and it has to be disabled

[Aspect Ratio]

ar_delta=0.08 (0.01 - 0.5)
;All aspect ratios within this range will be regarded as having the same aspect ration
;;Used for tuning the quality of the aspect ratio cutpoints and determining the scoring on aspect ratio differences. A too small value will create too many cutpoints and wrong scoring. A too large value will ignore relevant differences in aspect ratio.

cut_on_ar_change=1 (0=off / 1=on)
;Enable the generation of cutpoints on aspect ratio changes.
;;When the aspect ratio method is disabled the aspect ratio will still be use for scoring the blocks. When the aspect ratio method is disabled no aspect ratio cutpoints will be generated

[Global Removes]

padding=0 (0-MAXINT)
;Amount of seconds each commercial will be reduced both as start and end.
;;When you always want to see the start and end of the commercial break this can be used.

remove_before=0
;Set the amount of seconds to remove before ALL commercials

remove_after=0
;Set to the amount of seconds to remove after ALL commercials

added_recording=14 (0-MAXINT)
;Amount of minutes that a recording is longer then the actual show + closing commercial (if any)
;;This value is used to determine the maximum amount to remove in the below delete_show_... settings

delete_show_after_last_commercial=0 (0=disabled / 1=on / 2-MAXINT amount of seconds)
;Any part of the show that comes after the last commercial is deleted when that part is shorter then added_recording (1) or the amount of seconds set (2 or more).
;;To be used when more then the actual show is recorded and part of the next show separated from the actual show with a commercial break is to be removed. Make sure there is ALWAYS a closing commercial recorded and recognized

delete_show_before_first_commercial=0 (0=disabled / 1=on / 2-MAXINT amount of seconds)
;Any part of the show that comes before the first commercial is deleted when that part is shorter then added_recording (1) or the amount of seconds set (2 or more).
;;To be used when the recording may start before the actual show and there is always a commercial break separating the two shows.

delete_show_before_or_after_current=0 (0=disabled / 1=on / 2-MAXINT amount of seconds)
;Any part of the show that comes before or after the actual show and is separated from the show by a small commercial block less then min_commercial_break is deleted when that part is shorter then added_recording (1) or the amount of seconds set (2 or more).
;;To be used when the recording contains more then the actual show and the preveious and next show are separated from the actual show with very small commercials, too small to be an actual commercial break

delete_block_after_commercial=0 (0=off / 1=on)
;When enabled the first show block directly after a commercial will be deleted
;;Only to be use in very specific situations when you know what you are doing.

min_commercial_break_at_start_or_end=39 (0-MAXINT)
;Any commercial at the very beginning or end of the recordin shorter then the amount of seconds set will not be regarded as commercial but as show
;;To be used when you are sure the recording always starts with show but the early part of the show has some characteristics that cause it to be regarded as commercial

always_keep_first_seconds=0
;Any commercial at the start shorter then this amount of seconds will be regarded as show

always_keep_last_seconds=0
;Any commercial at the end shorter then this amount of seconds will be regarded as show

[USA Specific]

intelligent_brightness=0 (0=off / 1=on)
;Only for historic reasons, should not be used

black_percentile=0.0076
;Only for historic reasons, should not be used

uniform_percentile=0.003
;Only for historic reasons, should not be used

score_percentile=0.71
;Only for historic reasons, should not be used

[Main Scoring]

;All the modifiers below are used to calculate the score of a block. The score starts as 1 and is then multiplied by the value below, if applicable, to come to the final score

length_strict_modifier=3
;Used when the block adheres to some strict criteria for commercials

length_nonstrict_modifier=1.5
;Used when the block adheres to some lesser used criteria for commercials

combined_length_strict_modifier=2
;used when a short number of sequential blocks adhere to the strict criteria for commercials

combined_length_nonstrict_modifier=1.25
;used when a short number of sequential blocks adhere to the lesser used criteria for commercials

ar_wrong_modifier=2
;Used when the aspect ratio of a block is different from the dominant aspect ratio

excessive_length_modifier=0.01
;Used when the length of a block exceeds min_show_segment

dark_block_modifier=0.3
;Used when a block is darker then the average

min_schange_modifier=0.5
;Used when a block has much less then average scene changes

max_schange_modifier=2
;Used when a block has much more then average scene changes

logo_present_modifier=0.01
;Used when a block has logo or use in reverse when there is no logo

punish_no_logo=1
;Do not modify the score of a block because it has no logo

[Detailed Scoring]

;;The following settings are used to score blocks based on the certain average aspects of video and audio. The debugwindow shows these averages as white or red straight lines for each block. Red lines indicate blocks that have average values above the threshold, white lines for blocks below the threshold.
;;The bitmask is: 1=brightness, 2=uniformity 4=volume, 8=silence amount, 16=scene change rate

punish=0 (bitmask)
;Set the bitmask of the average audio/video aspects to monitor
;;When the average value is above the threshold a block is punished towards commercial by multiplying the score with the punish_modifier
;;Example: when you want to punish load blocks set punish=4

reward=0 (bitmask)
;Not implemented

punish_threshold=1.3 (1.0 - 10.0)
;When the average is punish_threshold times above the average then it will be punished.
;; A value of 1 set the average to be the threshold. A value of 1.5 sets the threshold to 50% above the average

punish_modifier=2 (1.0 - 10.0)
;Used to modify the score when the punish is above the threshold.

reward_modifier=0.5 (0.01 - 1.0)
;Not implemented

[Logo Finding]

border=10 (0-MAXINT)
;The amount of pixels in the outside border to ignore in any processing
;;When the recording contains noise in the outmost pixels of the video these can be ignored by setting the right amount of border

give_up_logo_search=2000 (0-MAXINT)
;Logo search is stopped when no logo is found after the amount of seconds set. Make sure there is always ample oportunity to learn the logo. Better have the value too large then too small

delay_logo_search=0 (0,1, MAXINT)
;Delay the start of the logo search, this helps if there is another logo early in the recording.
;;When set to 1 logo seach will start after added_recording*60 seconds, or you can set it to the number of seconds after which to start the logo search

logo_max_percentage_of_screen=0.1
;Set the fraction of the screen that can be occupied by logo. When two logo's are identified the square space between them is included in the logo space.
;;Two logo's, at the same side of the screen can be found but may require a slightly larger value (0.15 till 0.2) 0.1 is only used for finding a single logo

ticker_tape=0 (0=off / 1=on)
;Use to set the amount of pixels at the bottom of the screen to completely ignore in processing.
;;Usefull when there is a ticker tape or text at the bottom that never disappears.

ignore_side=0
;Should be usefull to ignore the right/left half of the screen but not sure its implemented.

subtitles=0 (0=off / 1=on)
;Do not try to find a logo at the lower half of the screen when this is on.
;;Subtitles sometimes stay soo long they can be considered a logo. Set this to make this impossible

logo_at_bottom=0 (0=off / 1=on)
;The oposite. Set when you are sure the logo is at the bottom.

logo_threshold=0.75 (0.1 - 0.95)
;A logo is search using a logo mask. The logo threshold determines how much of the logo mask must match the video.
;;Only very clean logo's can use a value of 0.9 or higher) You can see the quality of the logo detection in the yellow line in the debug window. The cleaner/higher the line, the better the quality, the higher you can set the threshold

logo_filter=0 (0-10)
;With a very noisy logo you can use this setting to enable a temporal filter on the logo detection.
;;With noisy logo a value of 4 can give a big improvement. A disadvantage is that the start and end time of a detected logo becomes less accurate. You may have to increase shrink_logo

aggressive_logo_rejection=0 (0-4)
;Set to higher values when the spatial logo detection is difficult
;;Experiment only with this setting if logo detection fails. 4=special for very bright backgrounds

edge_level_threshold=5
;The minimum brightness step required to identify the edge of a logo
;;Increase only when too much logo is found.

edge_radius=2 (2-10)
;The pixel distance over which the brightness step should be found
;;A small value give nice sharp edges in logo detection, increase only when desperate
edge_weight=10
;??? dont know....

edge_step=1 (1-5)
;Usefull for HD wher you want to do logo detection on a lower resolution(gives higher speed)
;;A value of 2 gives a nice speed improvement without hampering detection on HD.

num_logo_buffers=50
;Only for internal use, do not change

use_existing_logo_file=1 (0=off / 1=on)
;??

two_pass_logo=1 (0=off / 1=on)
;When enabled the recording processing will restart when logo is found to ensure best quality logo coverage.

[Logo Interpretation]

connect_blocks_with_logo=1 (0=off / 1=on)
;When aneabled all blocks that have logo at the cutpoint between the blocks will be considered one block.
;;Very usefull when a recording has many dark scenes, should normaly always be enabled

logo_percentile=0.92
;If more then logo percentile fraction of the recording contains logo it is assumed there is always logo so the logo is no longer used in interpreting the content.

logo_fraction=0.4
;If less then logo percentile fraction of the recording contains logo it is assumed there is no usefulllogo so the logo is no longer used in interpreting the content.

shrink_logo=5
;Each (dis)appearance of logo is assumed to be the given amount of seconds realier/later
;;Sometimes logo extends into the commercial for a couple of seconds. Use this to shrink the logo so it disappears before the commrcial

before_logo=0
;Cutpoints can be inserted just before the logo appears. Set value set is the amount of seconds to start a search for a silence before the logo appears.

after_logo=0
;Cutpoints can be inserted just after the logo disappears. Set value set is the amount of seconds to start a search for a silence after the logo disappears.

where_logo=0
;Not used

min_black_frames_for_break=1 (1-MAXINT)
;The minimum amount of black frames required for recognizing a black frame cutpoint
;;Should be 1 for regular SD but a value of 3 may be usefull for certain HD broadcast, spefially when too many black frame cutpoints are found.

[Closed Captioning]

ccCheck=0

cc_commercial_type_modifier=4

cc_wrong_type_modifier=2

cc_correct_type_modifier=0.75

[Live TV]

live_tv=0 (0=off / 1=on)
;This will enable the output of commercial information during the processing allowing the skipping of detecting commercials before the processing is finished
;;Use when you want to process during recording and have the commercial information available before the recording is finished. This uses a simplified detection algorithm so the results may be different from the final results.

live_tv_retries=4 (0-MAXINT)
;When the end of the recording is reach comskip will wait for one second and check to see if the recording is still ongoing. This will be done live_tv_retries times.

dvrms_live_tv_retries=300
;dvr-ms recordings pre-allocate a hugh buffer space on disk and then start to fill the pre-allocated space. This requires many more retries to function. Sometimes you may have to increase this value to 600 to ensure processing does not stop too early

standoff=0
;The amount of kBytes to stop reading before the end of the file.

dvrmsstandoff=120000
;The amount of kbytes dvr-ms uses as a buffer so its completely unknown if there is any valid data in this last part of the recording so it should never be read unless the recording is finished
;;This value may have to be increase to 200000

require_div5=0 (0=off / 1=on)
;Used to tune the live tv recognition algoritm, do not change

div5_tolerance=-1
;Used to tune the live tv recognition algoritm, do not change

[Output Control]

;Comskip can output many commercial list formats. They can be individually enabled. The names should be self explenatory. If not, just enable and inspect the result.

output_default=1
;This dis/enables the default .txt output file.

output_plist_cutlist=0

output_zoomplayer_cutlist=0

output_zoomplayer_chapter=0

output_vcf=0

output_vdr=0

output_projectx=0

output_avisynth=0

output_videoredo=0

videoredo_offset=2
; The amount of frames subtracted from the videoredo cut time output, use negative numbers to shift to later.

output_btv=0

output_edl=1

edl_offset
; The amount of frames subtracted from the edl cut time output, use negative numbers to shift to later.

output_edlp=0
;This special edl format uses the PTS to as a timebase because that is what mencoder does when processing .ts files.

output_bsplayer=0

output_edlx=0
;An XML variant of edl

output_cuttermaran=0

output_mpeg2schnitt=0

output_womble=0

output_mls=0

output_mpgtx=0

output_dvrmstb=0

output_dvrcut=0

output_ipodchap=0
;The following switches control all kind of additional outputs comskip can generate

output_framearray=0
;Output a large .csv file that can be use by ComskipGUI to quickly reprocess the recording with different comskip.ini settings without having to redo the lengthy mpeg/h.264 decoding
;;Some changes in settings require a full reprocessing. In general all changes of setting that change the processing of video on pixel level require a full redecoding

output_debugwindow=1
;This switched the regular comskip to ComskipGUI behaviour

output_tuning=0
;Used only during comskip development

output_training=0
;Used only during comskip development

output_false=0
;??

output_aspect=0
;Output a .aspect file listing the aspect ratio and pixel size data of the video

output_demux=0
;Demux the input file and output separate audio and video files

output_data=0
;Output the CC or XDS data to a .data file. Is used in combination with the .csv file when reprocessing in ComskipGUI

output_srt=0
;Ouput a CC .srt file, uses the integrated CCExtract

output_smi=0
;Output a CC .smi file, uses the integrated CCExtract

output_timing=0
;Output data used in debugging the PTS decoding

delete_logo_file=0
;Delete the .logo.txt file after processing is finished

[Cutscene processing]

;Comskip can recognize prerecorded video frames to generate cutpoints, pressing the 'c' key in preview mode of ComskipGUI will save the current frame as cutscenefile

cutscene_frame=0
;The frame number of the video frame to dump for future recognition, this can be used when the preview does not work but you know the frame number you want to save

cutscene_dumpfile=""
;The name of the dump file of the video frame to dump for future recognition, used when cutscene_frame is set

cutscene_threshold=10
;Sets the threshold to match the dumped video frame, a too high value matches too many frames, too low will be too sensitive for noise.
;;Experiment with values between 5-20 when results are not acceptable

cutscenefile1=""
;Name of one of the possibly 8 frame to match

cutscenefile2=""
;Name of one of the possibly 8 frame to match

cutscenefile3=""
;Name of one of the possibly 8 frame to match

cutscenefile4=""
;Name of one of the possibly 8 frame to match

cutscenefile5=""
;Name of one of the possibly 8 frame to match

cutscenefile6=""
;Name of one of the possibly 8 frame to match

cutscenefile7=""
;Name of one of the possibly 8 frame to match

cutscenefile8=""
;Name of one of the possibly 8 frame to match

windowtitle="Comskip - %s"
;You can change the Comskip window title, usefull for remote controlling comskipgui by sending key presses and you want a fixed window title.

cuttermaran_options="cut=\"true\" unattended=\"true\" muxResult=\"false\" snapToCutPoints=\"true\" closeApp=\"true\""

mpeg2schnitt_options="mpeg2schnitt.exe /S /E /R25 /Z %2 %1"

avisynth_options="LoadPlugin(\"MPEG2Dec3.dll\") \nMPEG2Source(\"%s\")\n"

dvrcut_options="dvrcut \"%s.dvr-ms\" \"%s_clean.dvr-ms\" "

[Sage Workarounds]

sage_framenumber_bug=0

sage_minute_bug=0

enable_mencoder_pts=0
Post Reply