How to optimize comskip? I am sometimes getting 1.7FPS.

To discuss the tuning of comskip and for posting your ini files
virtualpaul
Posts: 14
Joined: Thu Aug 16, 2018 7:16 pm

How to optimize comskip? I am sometimes getting 1.7FPS.

Post by virtualpaul »

Here is my comskip.ini:

; See comskip.txt in the distribution zip file for many settable parameters, read manual.html, tuning.html and debugwindow.html for how to tune and debug comskip
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.
lowres=10 ;Enables resolution reduction, setting to 10 makes comskip choose the best value automatically
;;This only works for certain types of video encoding, may not work for h.264 encoded video and may deliver bad results when used with hardware_decode=1
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=1 ; 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"
erik
Site Admin
Posts: 3368
Joined: Sun Aug 21, 2005 3:49 pm

Re: How to optimize comskip? I am sometimes getting 1.7FPS.

Post by erik »

Comskip runs at lowest priority so you need to check if other processes are using the CPU.
Also ensure NO HW acceleration is enabled as this may (unfortunately) not give any speed benefit

On an old i7-2600 I get above 200fps on 1080p MPEG4 using 4 cores
virtualpaul
Posts: 14
Joined: Thu Aug 16, 2018 7:16 pm

Re: How to optimize comskip? I am sometimes getting 1.7FPS.

Post by virtualpaul »

erik wrote:Comskip runs at lowest priority so you need to check if other processes are using the CPU.
Also ensure NO HW acceleration is enabled as this may (unfortunately) not give any speed benefit

On an old i7-2600 I get above 200fps on 1080p MPEG4 using 4 cores
Thanks for answering.

Only NextPVR and Plex media server is running on that PC.

Is there a way to change the priority from the ini or command line?

Can your tell me how to prevent HW acceleration for Comskip?
erik
Site Admin
Posts: 3368
Joined: Sun Aug 21, 2005 3:49 pm

Re: How to optimize comskip? I am sometimes getting 1.7FPS.

Post by erik »

Read comskip.txt (present in the distribution zip file) to understand what each ini parameters means
Run comskip.exe in a cmd window without any arguments and it will show you all the command line parameters
virtualpaul
Posts: 14
Joined: Thu Aug 16, 2018 7:16 pm

Re: How to optimize comskip? I am sometimes getting 1.7FPS.

Post by virtualpaul »

erik wrote:Read comskip.txt (present in the distribution zip file) to understand what each ini parameters means
Run comskip.exe in a cmd window without any arguments and it will show you all the command line parameters
Thanks for answering.

I only saw this talking about hardware but it's already disabled:
hardware_decode=0(0=off / 1=on)
;On enables hardware accelerated video decoding
;;This is only faster then CPU decoding when you have a fast graphics card and a slow CPU. Only available in donator version

I did not find anything about task priority. There are many options for CPU but I don't understand enough to change a setting.

Note that I get 38fps sometimes so I am not sure what causes the slow fps issue. Since I record from some channels that are not always perfect (low signal), is it possible that a OTA recording with low quality signal would slow down comskip?
erik
Site Admin
Posts: 3368
Joined: Sun Aug 21, 2005 3:49 pm

Re: How to optimize comskip? I am sometimes getting 1.7FPS.

Post by erik »

Yes, please check the verbose setting in the ini file, set to verbose=0 to stop any error induced output that will slow down coskip
virtualpaul
Posts: 14
Joined: Thu Aug 16, 2018 7:16 pm

Re: How to optimize comskip? I am sometimes getting 1.7FPS.

Post by virtualpaul »

erik wrote:Yes, please check the verbose setting in the ini file, set to verbose=0 to stop any error induced output that will slow down coskip
As shown in my post above, it's already set to 0.

Any other suggestions?
erik
Site Admin
Posts: 3368
Joined: Sun Aug 21, 2005 3:49 pm

Re: How to optimize comskip? I am sometimes getting 1.7FPS.

Post by erik »

Did you check if the CPU temperature stay's low while comskip is processing?
Several users have reported bad cooling as a reason for low performance
virtualpaul
Posts: 14
Joined: Thu Aug 16, 2018 7:16 pm

Re: How to optimize comskip? I am sometimes getting 1.7FPS.

Post by virtualpaul »

erik wrote:Did you check if the CPU temperature stay's low while comskip is processing?
Several users have reported bad cooling as a reason for low performance
It looks normal.

I see some messages while it is running even though verbose=0. Not sure if this is normal. I used the "--ini=" options to specify the ini file location and comskip confirms this on the console.

Also I sometimes get the message "more than 1000 frames duplicated" and my batch seems to be stuck there forever. I will try this in ffmpeg in case this is not related to comskip:
ffmpet ... -vf mpdecimate,setpts=N/FRAME_RATE/TB ...

Any suggestions on what can be done to speed up things?
virtualpaul
Posts: 14
Joined: Thu Aug 16, 2018 7:16 pm

Re: How to optimize comskip? I am sometimes getting 1.7FPS.

Post by virtualpaul »

Today I got 0.01FPS on an episode.
It is at the stage 'Auto selecting the PID' and so far it processed 1748 frames in 113883 sec.
The video plays fine with VLC so I have no idea what could make it so slow.
erik
Site Admin
Posts: 3368
Joined: Sun Aug 21, 2005 3:49 pm

Re: How to optimize comskip? I am sometimes getting 1.7FPS.

Post by erik »

Can you get me this recording, or at least the first 100mByte?
virtualpaul
Posts: 14
Joined: Thu Aug 16, 2018 7:16 pm

Re: How to optimize comskip? I am sometimes getting 1.7FPS.

Post by virtualpaul »

erik wrote:Can you get me this recording, or at least the first 100mByte?
Here it is ~500MB:

http://www.cupidonia.com/temp/Video-0.01fps.ts
erik
Site Admin
Posts: 3368
Joined: Sun Aug 21, 2005 3:49 pm

Re: How to optimize comskip? I am sometimes getting 1.7FPS.

Post by erik »

This recording is severely damaged, comskip runs very slow because of error correction. Without this comskip will crash
Outside the damaged parts comskip runs above 2000 fps
Make sure you set
verbose=0
Total processing time for the file you send is 34 seconds, average 1700 fps
virtualpaul
Posts: 14
Joined: Thu Aug 16, 2018 7:16 pm

Re: How to optimize comskip? I am sometimes getting 1.7FPS.

Post by virtualpaul »

erik wrote:This recording is severely damaged, comskip runs very slow because of error correction. Without this comskip will crash
Outside the damaged parts comskip runs above 2000 fps
Make sure you set
verbose=0
Total processing time for the file you send is 34 seconds, average 1700 fps
Thanks for taking the time to look into this.

As you can see at the top of this post, 'verbose=0' already so I am not sure what other settings would speed up this.

It would be doubtful that my PC is so slow that it would take over 10 hours to process a file that yours can process in 34 seconds. This is a factor of 1000x speed.
erik
Site Admin
Posts: 3368
Joined: Sun Aug 21, 2005 3:49 pm

Re: How to optimize comskip? I am sometimes getting 1.7FPS.

Post by erik »

What CPU are you using?
Post Reply