Feature request: Comskip ini access

Thanks for your input. So I looked at a few different 'Log' folders when looking for the system generated comskip.ini (to copy it). Upon examining a few recently dated log folders is where I noticed the discrepancy in the contents of the ini file. I guess that was my original question, why does the system create different ini files with or without the lowres setting? And, by placing a new 'default' one that is not system generated, I am no longer allowing the system to generate that specific file for the job and will only get the new default one I will put into the data folder.

Does anyone else know that answer to this? Maybe choosing to include the 'lowres' setting or not is not a big deal? I guess I just like to understand how things work and what the impact of my changes will be on the system before I make them, rather than 'playing with different settings'. I did look through the comskip forum in the link provided but nothing jumped out at me. Hoping the developers may know?

lowres is only used for HD recordings. I don't recall offhand why that is.

If you want to experience a true time sink, go there.
My suggestion is start with the defaults provided and experiment from there changing one thing at a time.
Many settings are interrelated.
The devs can tell you it's not a quick fix, but an iterative experience into your own patience and understanding.

Old thread, I know, but is this still the default @tmm1?

I'd like to enable an extra thread or two, but I'd like to start out with the exact same settings as Channels uses normally (which works pretty well for me)... before potentially fiddling further.

EDIT: Ah, found the examples in the recorded directory. For anyone else, example:

/media/tv-recorded/Logs/comskip/1439

1 Like

Just discovered if you feed Channels a tuned .ini file with all the settings it bombs.. Would love to know why though, I understand if the other settings are NOT used but to cause a failure?

detect_method=43 ;1=black frame, 2=logo, 4=scene change, 8=fuzzy logic, 16=closed captions, 32=aspect ration, 64=silence, 128=cutscenes, 255=all
validate_silence=1 ; Default, set to 0 to force using this clues if selected above.
validate_uniform=1 ; Default, set to 0 to force using this clues (like pure white frames) if blackframe is selected above.
validate_scenechange=1 ; Default, set to 0 to force using this clues if selected above.
verbose=0 ;show a lot of extra info, level 5 is also OK, set to 0 to disable
max_brightness=60 ;frame not black if any pixels checked are greater than this (scale 0 to 255)
test_brightness=40 ;frame not pure black if any pixels checked are greater than this, will check average brightness (scale 0 to 255)
max_avg_brightness=25 ;maximum average brightness for a dim frame to be considered black (scale 0 to 255) 0 means autosetting
max_commercialbreak=600 ;maximum length in seconds to consider a segment a commercial break
min_commercialbreak=25 ;minimum length in seconds to consider a segment a commercial break
max_commercial_size=125 ;maximum time in seconds for a single commercial or multiple commercials if no breaks in between
min_commercial_size=4 ;mimimum time in seconds for a single commercial
min_show_segment_length=250 ; any segment longer than this will be scored towards show.
non_uniformity=500 ; Set to 0 to disable cutpoints based on uniform frames
max_volume=500 ; any frame with sound volume larger than this will not be regarded as black frame
min_silence=12 ; Any deep silence longer than this amount of frames is a possible cutpoint
ticker_tape=0 ; Amount of pixels from bottom to ignore in all processing
logo_at_bottom=0 ; Set to 1 to search only for logo at the lower half of the video, do not combine with subtitle setting
punish=0 ; Compare to average for sum of 1=brightness, 2=uniform 4=volume, 8=silence, 16=schange, set to 0 to disable
punish_threshold=1.3 ; Multiply when amount is above average * punish_threshold
punish_modifier=2 ; When above average * threshold multiply score by this value
intelligent_brightness=0 ; Set to 1 to use a USA specific algorithm to tune some of the settings, not adviced outside the USA
logo_percentile=0.92 ; if more then this amount of logo is found then logo detection will be disabled
logo_threshold=0.75
punish_no_logo=1 ; Default, set to 0 to avoid show segments without logo to be scored towards commercial
aggressive_logo_rejection=0
connect_blocks_with_logo=1 ; set to 1 if you want successive blocks with logo on the transition to be regarded as connected, set to 0 to disable
logo_filter=0 ; set the size of the filter to apply to bad logo detection, 4 seems to be a good value.
cut_on_ar_change=1 ; set to 1 if you want to cut also on aspect ratio changes when logo is present, set to 2 to force cuts on aspect ratio changes. set to 0 to disable
delete_show_after_last_commercial=0 ; set to 1 if you want to delete the last block if its a show and after a commercial
delete_show_before_or_after_current=0 ; set to 1 if you want to delete the previous and the next show in the recording, this can lead to the deletion of trailers of next show
delete_block_after_commercial=0 ;set to max size of block in seconds to be discarded, set to 0 to disable
remove_before=0 ; amount of seconds of show to be removed before ALL commercials
remove_after=0 ; amount of seconds of show to be removed after ALL commercials
shrink_logo=5 ; Reduce the duration of the logo with this amount of seconds
after_logo=0 ; set to number of seconds after logo disappears comskip should start to search for silence to insert an additional cutpoint
padding=0
ms_audio_delay=5
volume_slip=40
skip_b_frames=0 ; Set to 1 to force Comskip to skip frames for higher processing speed.
hardware_decode=0 ; Set to 1 to enable hardware accelerated video decoding, only available in donator version
max_repair_size=200 ; Will repair maximum 200 missing MPEG frames in the timeline, set to 0 to disable repairing for players that don't use PTS.
disable_heuristics=4 bit pattern for disabling heuristics, adding 1 disables heristics 1, adding 2 disables heristics 2, adding 4 disables heristics 3, 255 disables all heuristics
delete_logo_file=1 ; set to 1 if you want comskip to tidy up after finishing
output_framearray=0 ; create a big excel file for detailed analysis, set to 0 to disable
output_data=0 ; create a dump of the user data channel, used for CC and XDS (such as V-Chip info). Can be use together with output_framearray to remote debug CC decoding
output_videoredo=0 ; The old videoredo format
output_videoredo3=0 ; The new videoredo v3 format.
output_womble=0
output_mls=0 ; set to 1 if you want MPeg Video Wizard bookmark file output
output_cuttermaran=0
output_mpeg2schnitt=0
output_mpgtx=0
output_dvrcut=0
output_zoomplayer_chapter=0
output_zoomplayer_cutlist=0
output_edl=1
output_dvrmstb=0 ; Set to 1 if you're running DVRMS-Toolbox
output_edlx=0
output_vcf=0
output_bsplayer=0
output_btv=0 ; set to 1 if you want Beyond TV chapter cutlist output
output_projectx=0 ; set to 1 if you want ProjectX cutlist output (Xcl)
output_avisynth=0
output_vdr=0 ; set to 1 if you want XBMC to skipping commercials
output_demux=0 ; set to 1 if you want comskip to demux the mpeg file while scanning
sage_framenumber_bug=0
sage_minute_bug=0
live_tv=0 ; set to 1 if you use parallelprocessing and need the output while recording
live_tv_retries=4 ; change to 16 when using live_tv in BTV, used for mpeg PS and TS
dvrms_live_tv_retries=300 ; only used for dvr_ms
standoff=0 ; change to 8000000 when using live_tv in BTV
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" "
windowtitle="Comskip - %s"
use_existing_logo_file=0
two_pass_logo=1
maxbright=1
noise_level=5
brightness_jump=200
fps=25
global_threshold=1.05
lowres=0
play_nice_start=-1
play_nice_end=-1
play_nice_sleep=10
thread_count=8
ar_delta=0.08
added_recording=14
delete_show_before_first_commercial=0
min_commercial_break_at_start_or_end=39
always_keep_first_seconds=0
always_keep_last_seconds=0
black_percentile=0.0076
uniform_percentile=0.003
score_percentile=0.71
length_strict_modifier=3
length_nonstrict_modifier=1.5
combined_length_strict_modifier=2
combined_length_nonstrict_modifier=1.25
ar_wrong_modifier=2
ac_wrong_modifier=1
excessive_length_modifier=0.01
dark_block_modifier=0.3
min_schange_modifier=0.5
max_schange_modifier=2
logo_present_modifier=0.01
reward=0
reward_modifier=0.5
border=10
give_up_logo_search=2000
delay_logo_search=0
logo_max_percentage_of_screen=0.1
ignore_side=0
ignore_left_side=0
ignore_right_side=0
logo_percentage_threshold=0.25
edge_level_threshold=5
edge_radius=2
edge_weight=10
edge_step=1
num_logo_buffers=50
logo_fraction=0.4
before_logo=0
where_logo=0
min_black_frames_for_break=0
ccCheck=0
cc_commercial_type_modifier=4
cc_wrong_type_modifier=2
cc_correct_type_modifier=0.75
div5_tolerance=-1
output_default=1
output_plist_cutlist=0
output_scf=0
videoredo_offset=2
edl_skip_field=0
output_edlp=0
output_ipodchap=0
output_debugwindow=0
output_tuning=0
output_training=0
output_false=0
output_aspect=0
output_srt=0
output_smi=0
output_timing=0

I think these are required .... and must be set to on (1)

delete_logo_file=1
output_vdr=1
output_edl=1
output_ffmeta=1
output_ffsplit=1
thread_count=1

2 Likes

No ; semicolon to mark comment between disable_heuristics=4 AND bit pattern...
Probably some other typos in there.

You actually don't need all those parameters in the file. Whatever parameters you don't declare in your ini file will use comskip's default value for the parameter.

When I was playing with comskip ini files I found it helpful to use the ComskipINIEditor utility.

Thanks, Good catch.. This was created using the ini editor utility. and works with MCE Buddy.

Recently started to receive ATSC3 channels (HEVC) in my area via HDhomerun, and I noticed that those channels don't seem to work at all with commercial detection. Maybe it's just my setup - but regular HD works fine. Anyway, thank you Channels, for supporting ATSC3. Lovin' it.

Yes, I believe this is a known issue, coming in the future I think.

Is there a way to put the donator version of comskip in place? (I know there used to be a difference, not sure if that’s still the case)

Anyhow, I was interested in trying to use hardware offloading for some of the comskip functionality as that should perform better (and lower the processor utilization)…. In theory at least.

1 Like

I think it already uses the donator version.

Any news on this front? I noticed on comskip page that it has -w option for displaying output debug window, but that does not work on MacOSX :frowning:
Also there is an option for explicit specify logo file. Have Channels ever used that setting?

2 Likes

3 posts were split to a new topic: Ad detect accuracy

Is there any step by step documentation on how to edit the template/default Comskip file?

comskip is a 3rd party app used by Channels DVR.
Check the developers website at https://comskip.org/

I understand Comskip is a third party tool. I've used it way back in the days of WMC and MCE Buddy. My question is more around how Channels DVR's implementation of it can be tweaked, since it's "baked in" and not just an app on my PC that I can directly tinker with. I've done a lot of searching on these forms and most posts are 4+ years old and none offer a clear answer as far as how it can be done.

Channels DVR uses donator Comskip v0.82.011 which uses the same ini features as the donator version you can get yourself. There are no Channels DVR specific ini features.

You can run the comskip executable which comes bundled with Channels DVR if you like. It's installed in the same directory as the other Channels DVR executable files.

When you find a topic about comskip on this forum, look at the links just below the first post to see other possibly related topics/posts.
Like in New comskip.ini API vs Override comskip.ini file

I gave up wasting my time tweaking the comskip.ini file :cold_sweat:

Where is the comskip.ini file that I can edit?
It's not here: C:\ProgramData\ChannelsDVR

I setup an OliveTin-for-Channels Action to make it easier to adjust a subset of Comskip settings, and the basics (as I recall) are these:

The general Comskip settings used by Channels are not stored in a file, but rather are part of the API. These can be adjusted using OliveTin. Any other settings you want tweak require you to create a comskip.ini override file, and place it in C:\ProgramData\ChannelsDVR\data in the case of Windows.

Here's what the Olive Action looks like:

And the Action's output:

Current CDVR Comskip status:
{"available":true,"customized":false,"enabled":true,"ini":{"thread_count":"2"},"queued":0}

Settings as used in the most recent Comskip run. Assumes no override file in use:

Current compskip.ini:
----------------------------------------

verbose=10
detect_method=123 ;; everything but scenechange
punish_no_logo=0
cc_correct_type_modifier=1
length_nonstrict_modifier=1.5 ;; required before below due to comskip.ini parsing bug
combined_length_nonstrict_modifier=1
min_show_segment_length=222
min_commercialbreak=45
use_existing_logo_file=0
logo_fraction=0.39
delete_logo_file=1
output_vdr=1
output_edl=1
output_ffmeta=1
output_ffsplit=1
thread_count=2
----------------------------------------

If you need to use an override file it should be placed in this directory on your CDVR server:
C:\ProgramData\ChannelsDVR\data

Save this text as compskip.ini in the location referenced above:
----------------------------------------

verbose=10
detect_method=123 ;; everything but scenechange
punish_no_logo=0
cc_correct_type_modifier=1
length_nonstrict_modifier=1.5 ;; required before below due to comskip.ini parsing bug
combined_length_nonstrict_modifier=1
min_show_segment_length=222
min_commercialbreak=45
use_existing_logo_file=0
logo_fraction=0.39
delete_logo_file=1
output_vdr=1
output_edl=1
output_ffmeta=1
output_ffsplit=1
thread_count=2
----------------------------------------

The actual settings used for any given recording are stored in the dvr\logs\comskip directory by File ID. So, if you're messing with settings you can go back and look at what settings were used when processing a given recording.

I can always add additional options to the OliveTin Action, if there are others you'd like to tweak. The nice thing about the Action is that it adjusts settings through the API when possible, and produces an override file when a setting isn't available via the API.

1 Like