Comskip not working in Plex

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
mouseskowitz
Posts: 8
Joined: Thu Mar 14, 2019 3:39 am

Comskip not working in Plex

Post by mouseskowitz »

I'm using Plex which from my understanding uses the Donor version of Comskip. It stopped working about 4 months ago and I haven't been able to get any help in the Plex forum. I'm really hoping I can get some help here.

I'm running on CentOS 7. My understanding of how Comskip works isn't that great, but I'm guessing that the segment-list.txt file contains the information on what parts of the recording are commercials. I'm seeing the follow in the logs which I'm guessing is what causes them not to be removed.

Code: Select all

Jan 21, 2019 22:05:53.757 [0x7f2b903f4700] DEBUG - DVR:Grabber: Scheduling 'Bull - E12 - Split Hairs' for assimilation.
Jan 21, 2019 22:05:53.765 [0x7f2b943fc700] DEBUG - DVR:Subscription: Resolved subscription to library item 'Bull (2016)' (159)
Jan 21, 2019 22:05:53.777 [0x7f2b943fc700] DEBUG - There were 1 top-level paths for Bull (2016).
Jan 21, 2019 22:05:53.777 [0x7f2b943fc700] DEBUG - DVR:Grabber: Postprocessing, we're going to put `Bull - E12 - Split Hairs` in `/media/tv/Bull/Season 03/Bull (2016) - S03E12 - Split Hairs.ts`
Jan 21, 2019 22:05:53.796 [0x7f2b943fc700] DEBUG - DVR:Grabber: Moving "/media/tv/.grab/3faa5ec45fe0fbfc5dde133d6381e75c8ade2a1c/Bull (2016) - S03E12 - Split Hairs.ts" to "/media/tv/Bull/Season 03/Bull (2016) - S03E12 - Split Hairs.ts"
Jan 21, 2019 22:05:54.364 [0x7f2b943fc700] DEBUG - DVR:Grabber: Moving "/media/tv/.grab/3faa5ec45fe0fbfc5dde133d6381e75c8ade2a1c/segment-list.txt" to "/media/tv/Bull/Season 03/segment-list.txt"
Jan 21, 2019 22:05:54.365 [0x7f2bb63ff700] INFO - Library section 2 (TV Shows) will be updated because of a change in /media/tv/Bull/Season 03
Jan 21, 2019 22:05:54.368 [0x7f2b943fc700] ERROR - Couldn't rename file "/media/tv/.grab/3faa5ec45fe0fbfc5dde133d6381e75c8ade2a1c/segment-list.txt" to "/media/tv/Bull/Season 03/segment-list.txt": No such file or directory
Jan 21, 2019 22:05:54.389 [0x7f2b943fc700] DEBUG - DVR:Subscription: Resolved subscription to library item 'Bull (2016)' (159)
Is this the problem? If so, any idea on how to fix it? If it's not, how to I figure out what the problem is?
erik
Site Admin
Posts: 3368
Joined: Sun Aug 21, 2005 3:49 pm

Re: Comskip not working in Plex

Post by erik »

The log you showed was Plex output.
Its clear comskip did not produce any output as the .txt file could not be found but you can not deduct from this log why
Can you run comskip on a single recording and see if it generates output?
Just drag and drop a recording on the comskip executable
or run
comskip <recording>
mouseskowitz
Posts: 8
Joined: Thu Mar 14, 2019 3:39 am

Re: Comskip not working in Plex

Post by mouseskowitz »

@erik This is running on a CentOS 7 server with no GUI. How do I check it on that?
erik
Site Admin
Posts: 3368
Joined: Sun Aug 21, 2005 3:49 pm

Re: Comskip not working in Plex

Post by erik »

comskip is a plain command line executable
In your favourite shell go to where comskip is
./comskip /full/path/recording.ts
mouseskowitz
Posts: 8
Joined: Thu Mar 14, 2019 3:39 am

Re: Comskip not working in Plex

Post by mouseskowitz »

I can find the comskip.ini but no executable. I posted in the Plex forums to see if anyone knows what file to manually run.

The segment-list.txt file are being created, but are not being moved from the temp recording folder to the storage folder. Here is an example of one of them.

Code: Select all

ffconcat version 1.0
file /media/tv/.grab/945692f58be961aba9ce338ade1b8ed3dfd865e5/NCIS\ New\ Orleans\ (2014)\ -\ S05E16\ -\ Survivor.ts
inpoint 8.38
outpoint 643.34
file /media/tv/.grab/945692f58be961aba9ce338ade1b8ed3dfd865e5/NCIS\ New\ Orleans\ (2014)\ -\ S05E16\ -\ Survivor.ts
inpoint 861.49
outpoint 1378.74
file /media/tv/.grab/945692f58be961aba9ce338ade1b8ed3dfd865e5/NCIS\ New\ Orleans\ (2014)\ -\ S05E16\ -\ Survivor.ts
inpoint 1596.36
outpoint 2106.27
file /media/tv/.grab/945692f58be961aba9ce338ade1b8ed3dfd865e5/NCIS\ New\ Orleans\ (2014)\ -\ S05E16\ -\ Survivor.ts
inpoint 2368.85
outpoint 2784.33
file /media/tv/.grab/945692f58be961aba9ce338ade1b8ed3dfd865e5/NCIS\ New\ Orleans\ (2014)\ -\ S05E16\ -\ Survivor.ts
inpoint 3107.35
outpoint 3487.93
file /media/tv/.grab/945692f58be961aba9ce338ade1b8ed3dfd865e5/NCIS\ New\ Orleans\ (2014)\ -\ S05E16\ -\ Survivor.ts
inpoint 3597.48
erik
Site Admin
Posts: 3368
Joined: Sun Aug 21, 2005 3:49 pm

Re: Comskip not working in Plex

Post by erik »

On linux the comskip executable is called comskip
The output you list is not from comskip but some other format
mouseskowitz
Posts: 8
Joined: Thu Mar 14, 2019 3:39 am

Re: Comskip not working in Plex

Post by mouseskowitz »

I figured out how to manually run it and this is what I got.

Code: Select all

Plex Commercial Skipper, made using ffmpeg
Donator build
The commandline used was:
"./Plex Commercial Skipper" "/media/tv/NCIS/Season 16/NCIS (2003) - S16E16 - Bears and Cubs.ts"

Using comskip.ini for initiation values.
Mpeg:   /media/tv/NCIS/Season 16/NCIS (2003) - S16E16 - Bears and Cubs.ts
Exe     comskip.exe
Logo:   /media/tv/NCIS/Season 16/NCIS (2003) - S16E16 - Bears and Cubs.logo.txt
Ini:    comskip.ini

Detection Methods to be used:
        1) Black Frame
        2) Logo - Give up after 2000 seconds
        3) Resolution Change
        4) Aspect Ratio


ComSkip throttles back from -0001 to -0001.
The time is now 0528 so it's full speed ahead!

Settings
--------
[Main Settings]
;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, 255=all.
detect_method=43
;Set to 10 to show a lot of extra info, level 5 is also OK, set to 0 to disable
verbose=10
;Frame not black if any of the pixels of the frame has a brightness greater than this (scale 0 to 255)
max_brightness=60
maxbright=1
;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)
test_brightness=40
;
max_avg_brightness=25
;
max_commercialbreak=600
;
min_commercialbreak=25
;
max_commercial_size=125
;
min_commercial_size=4
;
min_show_segment_length=250
;
max_volume=500
;
max_silence=100
;
non_uniformity=500
[Detailed Settings]
min_silence=12
remove_silent_segments=0
noise_level=5
brightness_jump=200
fps=22
validate_silence=1
validate_uniform=1
validate_scenechange=1
global_threshold=1.05
disable_heuristics=4
cut_on_ac_change=1
[CPU Load Reduction]
thread_count=2
hardware_decode=0
play_nice_start=-1
play_nice_end=-1
play_nice_sleep=2
[Input Correction]
max_repair_size=200
ms_audio_delay=5
volume_slip=40
lowres=0
skip_b_frames=0
[Aspect Ratio]
ar_delta=0.08
cut_on_ar_change=1
[Global Removes]
padding=0
remove_before=0
remove_after=0
added_recording=14
delete_show_after_last_commercial=0
delete_show_before_first_commercial=0
delete_show_before_or_after_current=0
delete_block_after_commercial=0
min_commercial_break_at_start_or_end=39
always_keep_first_seconds=0
always_keep_last_seconds=0
[USA Specific]
intelligent_brightness=0
black_percentile=0.0076
uniform_percentile=0.003
score_percentile=0.71
[Main Scoring]
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
punish_no_logo=1
[Detailed Scoring]
punish=0
reward=0
punish_threshold=1.3
punish_modifier=2
reward_modifier=0.5
[Logo Finding]
border=10
give_up_logo_search=2000
delay_logo_search=0
logo_max_percentage_of_screen=0.12
ticker_tape=0
ticker_tape_percentage=0
ignore_side=0
ignore_left_side=0
ignore_right_side=0
subtitles=0
logo_at_bottom=0
logo_threshold=0.75
logo_percentage_threshold=0.25
logo_filter=0
aggressive_logo_rejection=0
edge_level_threshold=5
edge_radius=2
edge_weight=10
edge_step=1
num_logo_buffers=50
use_existing_logo_file=1
two_pass_logo=1
[Logo Interpretation]
connect_blocks_with_logo=1
logo_percentile=0.92
logo_fraction=0.4
shrink_logo=5
shrink_logo_tail=0
before_logo=0
after_logo=0
where_logo=0
min_black_frames_for_break=1
[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
live_tv_retries=4
require_div5=0
div5_tolerance=-1
incommercial_frames=1000
[Output Control]
output_default=1
output_chapters=0
output_plist_cutlist=0
output_zoomplayer_cutlist=0
output_zoomplayer_chapter=0
output_scf=0
output_vcf=0
output_vdr=0
output_projectx=0
output_avisynth=0
output_videoredo=0
output_videoredo3=0
videoredo_offset=2
output_btv=0
output_edl=1
output_live=0
edl_offset=0
timeline_repair=1
edl_skip_field=0
output_edlp=0
output_bsplayer=0
output_edlx=0
output_cuttermaran=0
output_mpeg2schnitt=0
output_womble=0
output_mls=0
output_mpgtx=0
output_dvrmstb=0
output_dvrcut=0
output_ipodchap=0
output_framearray=0
output_debugwindow=0
output_tuning=0
output_training=0
output_false=0
output_aspect=0
output_demux=0
output_data=0
output_srt=0
output_smi=0
output_timing=0
output_incommercial=0
output_ffmeta=0
output_ffsplit=0
delete_logo_file=0
output_mkvtoolnix=0
cutscene_frame=0
cutscene_threshold=10
windowtitle="Comskip - %s"
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

Input #0, mpegts, from '/media/tv/NCIS/Season 16/NCIS (2003) - S16E16 - Bears and Cubs.ts':
  Duration: 00:59:59.75, start: 1.400000, bitrate: 11494 kb/s
  Program 1
    Metadata:
      service_name    : Service01
      service_provider: FFmpeg
    Stream #0:0[0x100]: Video: mpeg2video ([2][0][0][0] / 0x0002), none(top first), 1920x1080 [SAR 1:1 DAR 16:9], Closed Captions, 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc
    Stream #0:1[0x101](eng): Audio: ac3 ([129][0][0][0] / 0x0081), 48000 Hz, 5.0(side), s16p, 384 kb/s
    Stream #0:2[0x102](spa): Audio: ac3 ([129][0][0][0] / 0x0081), 48000 Hz, mono, s16p, 128 kb/s (visual impaired)
[mpeg2_cuvid @ 0x4ca69c0] gray decoding requested but not enabled at configuration time
[mpeg2_cuvid @ 0x4ca69c0] Cannot load libnvcuvid.so.1
[mpeg2_cuvid @ 0x4ca69c0] Failed loading nvcuvid.
Unsupported codec!
Could not open video codec
/media/tv/NCIS/Season 16/NCIS (2003) - S16E16 - Bears and Cubs.ts: could not open video codec
erik
Site Admin
Posts: 3368
Joined: Sun Aug 21, 2005 3:49 pm

Re: Comskip not working in Plex

Post by erik »

Your comskip build has cuvid hw decoder enabled but the cuvid decoder shared library is not installed so decoding fails
Ensure hw assist decoding is disabled or install cuvid library
That is all I can help as I do not use Linux
mouseskowitz
Posts: 8
Joined: Thu Mar 14, 2019 3:39 am

Re: Comskip not working in Plex

Post by mouseskowitz »

I'm trying to find out if there is some box I accidentally checked in Plex somewhere related to hardware acceleration. I don't have a GPU so I don't think cuvid will do me much good. I don't see a hardware_decode= in my comskip.ini. So it should be off shouldn't it?

Code: Select all

; 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=10                              ; 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.
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=0                      ; 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"
erik
Site Admin
Posts: 3368
Joined: Sun Aug 21, 2005 3:49 pm

Re: Comskip not working in Plex

Post by erik »

Did comskip work before?

If not you have a build that always tries to use the HW assist and that fails because you do not have the shared library installed

Suggest you ask for help on the plex forum as they have build comskip as part of plex
mouseskowitz
Posts: 8
Joined: Thu Mar 14, 2019 3:39 am

Re: Comskip not working in Plex

Post by mouseskowitz »

It was working for several months and then just stopped.
erik
Site Admin
Posts: 3368
Joined: Sun Aug 21, 2005 3:49 pm

Re: Comskip not working in Plex

Post by erik »

Did you re-install plex?
mouseskowitz
Posts: 8
Joined: Thu Mar 14, 2019 3:39 am

Re: Comskip not working in Plex

Post by mouseskowitz »

I tried installing it on a fresh VM and had the same problem. I'm guessing it was an update in either Plex or the OS that broke it. I'm at a loss as to what though.
erik
Site Admin
Posts: 3368
Joined: Sun Aug 21, 2005 3:49 pm

Re: Comskip not working in Plex

Post by erik »

Is there a plex forum where you can ask support?
mouseskowitz
Posts: 8
Joined: Thu Mar 14, 2019 3:39 am

Re: Comskip not working in Plex

Post by mouseskowitz »

They do have a forum, but I can almost never get any help there.
Post Reply