Jump to content

ComSkipper ... A Emby Plugin that skips commercials


BillOatman

Recommended Posts

jachin99
Posted (edited)

So It looks like I was able to get my bat file working outside of emby by just passing an exact file path.  My issue is that emby doesn't appear to run comskip after each recording.  My first thought was that it might be because I'm on beta but I can't see how that would effect anything because the bat should run independently of emby, as long as emby is telling it to kick off, right?

And right now I have my command argument filled out as literrally, " {Path}"  I should but my file or folder name there instead?

Edited by jachin99
Link to comment
Share on other sites

BillOatman
Posted (edited)
6 minutes ago, jachin99 said:

So It looks like I was able to get my bat file working outside of emby by just passing an exact file path.  My issue is that emby doesn't appear to run comskip after each recording.  My first thought was that it might be because I'm on beta but I can't see how that would effect anything because the bat should run independently of emby, as long as emby is telling it to kick off, right?

Yes what you are thinking is correct, it should run the post-process (the bat file) step.  I avoid betas in general and Emby ones like the plague.  But in your testing, are you recording more than 1 show at a time?  I never tried, but I'm not sure how well comskip would react to being run twice concurrently.

Edited by BillOatman
Link to comment
Share on other sites

jachin99

That probably does happen but there are other times when its only recording one show.  I haven't gotten a single EDL file generated, and I have had this plugin almost since it came out.  @Luke  How can I confirm post processing is happenening the way it is supposed to in my server logs

Link to comment
Share on other sites

36 minutes ago, jachin99 said:

That probably does happen but there are other times when its only recording one show.  I haven't gotten a single EDL file generated, and I have had this plugin almost since it came out.  @Luke  How can I confirm post processing is happenening the way it is supposed to in my server logs

The full command line gets printed to the server log.

Link to comment
Share on other sites

vdrover
2 hours ago, BillOatman said:

Yes what you are thinking is correct, it should run the post-process (the bat file) step.  I avoid betas in general and Emby ones like the plague.  But in your testing, are you recording more than 1 show at a time?  I never tried, but I'm not sure how well comskip would react to being run twice concurrently.

I routinely run it simultaneously. Have tested up to 3 separate instances without issue.

  • Thanks 1
Link to comment
Share on other sites

jachin99

Ok, so I'll try to update the paths.  Thanks for all of the help

  • Agree 1
Link to comment
Share on other sites

BillOatman
3 hours ago, vdrover said:

I routinely run it simultaneously. Have tested up to 3 separate instances without issue.

I love people here. :)

  • Haha 1
Link to comment
Share on other sites

jachin99

I tried to insert the path but I'm still not getting an edl file when the task kicks off from emby after the recording .  Here is a log snippet showing how emby runs the command

 

2022-05-10 20:03:00.580 Info LiveTV: Running recording post processor C:\Users\Family\AppData\Roaming\Emby-Server\Comskip\ComskipBat.bat "{E:\TV Shows 2}"

 

Link to comment
Share on other sites

vdrover

That’s normal. If you wait a bit, the file will get updated with commercials. 

Link to comment
Share on other sites

jachin99
10 hours ago, vdrover said:

That’s normal. If you wait a bit, the file will get updated with commercials. 

I gave it all night, and still didn't get an edl.  If you dont mind, can you share your bat file, and emby command arguments.  I'm thinking the file location isn't being passed to emby because I see the command running in my log, and I can get my bat file to process a media file when I tell it the exact location for said file.  

Link to comment
Share on other sites

BillOatman
Posted (edited)
13 hours ago, jachin99 said:

I tried to insert the path but I'm still not getting an edl file when the task kicks off from emby after the recording .  Here is a log snippet showing how emby runs the command

 

2022-05-10 20:03:00.580 Info LiveTV: Running recording post processor C:\Users\Family\AppData\Roaming\Emby-Server\Comskip\ComskipBat.bat "{E:\TV Shows 2}"

 

I see a couple things to look at.  

  • The file name is ComskipBat.bat?
  • Create a c:\comskip directory, put the bat and comskip related files there, change the post processing in Emby accordingly and try.  It might be having a problem going to that directory.
  • {E:\TV Shows 2} - I believe it is supposed to get a path to a recording file, not just a directory.
  • Have debug logging turned on when a recording finishes, it might show something.

 

Edited by BillOatman
Link to comment
Share on other sites

21 hours ago, jachin99 said:

I tried to insert the path but I'm still not getting an edl file when the task kicks off from emby after the recording .  Here is a log snippet showing how emby runs the command

 

2022-05-10 20:03:00.580 Info LiveTV: Running recording post processor C:\Users\Family\AppData\Roaming\Emby-Server\Comskip\ComskipBat.bat "{E:\TV Shows 2}"

 

That last line shows that emby is not sending your batch file a proper filename ( "{E:\TV Shows 2}" ) should be more like "E:\TV Shows 2\Myshow\Season 10\Myshow S10E10 epname.ts"

In Live TV -> Advanced -> Recording Post Processing -> Post-processing command line arguments: What does it say? it should say: "{path}"

Also it's best quote your batch file "C:\Users\Family\AppData\Roaming\Emby-Server\Comskip\ComskipBat.bat" just incase you ever change  it to something having a space in it.

  • Agree 1
Link to comment
Share on other sites

vdrover

I'm in linux. You can see the batch file in earlier posts.

Link to comment
Share on other sites

crusher11

Is it possible to set this all up on a Synology Emby install?

Link to comment
Share on other sites

jachin99
Posted (edited)

Alright, I'm at  a loss on why this isn't working at this point but here is what I do believe...

1. I have emby post processing setup correctly because I pointed it at the correct file, and passed it the correct command argument shown in the attatchments below...

2. I can see emby passing the command arguments to windows in the log file.  Here is what that looks like

2022-05-12 03:13:00.909 Info LiveTV: Running recording post processor C:\Comskip\ComskipBat.bat "G:\More Movies\Small Soldiers (1998)\Small Soldiers (1998).ts"

3. For whatever reason the command isn't running correctly, and comskip is failing.  I don't get any kind of new log files from comskip in its folder.  Here is my bat file.  I put a pause at the end for troubleshooting purposes, and this is the exact command that runs after a recoding is completed.

set drive=%~d1 
set folder=%~p1 
set filename=%~n1 
c: 
cd\Comskip
comskip --ini=comskip.ini "%drive%%folder%%filename%.ts" 
%drive% 
del "%folder%%filename%.log" 
del "%folder%%filename%.logo.txt" 
del "%folder%%filename%.txt" 

pause

I ran the exact command from my log file in the command line, and here is what I get.  The only thing that I see that is out of the ordinary is a wierd double space after G:\ when it tries to create the new directory at the end.  It looks to me like comskip is running correctly but failing to make the new directory.  

Microsoft Windows [Version 10.0.19041.1415]
(c) Microsoft Corporation. All rights reserved.

C:\Comskip>C:\Comskip\ComskipBat.bat "G:\More Movies\Small Soldiers (1998)\Small Soldiers (1998).ts"

C:\Comskip>set drive=G:

C:\Comskip>set folder=\More Movies\Small Soldiers (1998)\

C:\Comskip>set filename=Small Soldiers (1998)

C:\Comskip>c:

C:\Comskip>cd\Comskip

C:\Comskip>comskip --ini=comskip.ini "G: \More Movies\Small Soldiers (1998)\ Small Soldiers (1998) .ts"
 Comskip 0.82.012, made using ffmpeg
Donator build
The commandline used was:
        comskip
        --ini=comskip.ini
        "G: \More Movies\Small Soldiers (1998)\ Small Soldiers (1998) .ts"


Setting ini file to comskip.ini as per commandline
Using comskip.ini for initiation values.
Mpeg:   G: \More Movies\Small Soldiers (1998)\ Small Soldiers (1998) .ts
Exe     comskip.exe
Logo:   G: \More Movies\Small Soldiers (1998)\ Small Soldiers (1998) .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 0842 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=1
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
top_ticker_tape=0
top_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

No such file or directory - could not create file G: \More Movies\Small Soldiers (1998)\ Small Soldiers (1998) .txt

C:\Comskip>G:

G:\>del "\More Movies\Small Soldiers (1998)\ Small Soldiers (1998) .log"
Could Not Find G:\More Movies\Small Soldiers (1998)\ Small Soldiers (1998) .log

G:\>del "\More Movies\Small Soldiers (1998)\ Small Soldiers (1998) .logo.txt"
Could Not Find G:\More Movies\Small Soldiers (1998)\ Small Soldiers (1998) .logo.txt

G:\>del "\More Movies\Small Soldiers (1998)\ Small Soldiers (1998) .txt"
Could Not Find G:\More Movies\Small Soldiers (1998)\ Small Soldiers (1998) .txt

G:\>pause
Press any key to continue . . .

G:\>

 

Screenshot 2022-05-12 084917.png

Edited by jachin99
Link to comment
Share on other sites

The leading space for the filename is something Windows doesn't handle well and could be the problem. See this article.   From your batch file, I'm not quite sure where the spaces are coming from, however you may be able to simplify this and avoid the issue completely.  Unless you are calling multiple post processing operations, there is no need to use a batch file for comskip.  See the screen cap below.  This works quite well.  The main requirement is that your comskip.ini file must reside in the same folder as comskip.exe

image.png.42fc1f28142e6503b8661add6fcb9da4.png

In order to remove the .txt and .logo files from the folders add / update the following lines in your comskip.ini

output_default=0	; This suppresses the production of .txt files.
delete_logo_file=1	; This deletes the .logo file when comskip is completed.

 

Link to comment
Share on other sites

Spaceboy
15 hours ago, crusher11 said:

Is it possible to set this all up on a Synology Emby install?

no

Link to comment
Share on other sites

@jachin99

Although @richt gave you a simpler(better) solution I can see by highlighting the 3 set lines in your posted batch file that they all have a trailing space in them. That is why it fails.

Link to comment
Share on other sites

jachin99
10 hours ago, richt said:

The leading space for the filename is something Windows doesn't handle well and could be the problem. See this article.   From your batch file, I'm not quite sure where the spaces are coming from, however you may be able to simplify this and avoid the issue completely.  Unless you are calling multiple post processing operations, there is no need to use a batch file for comskip.  See the screen cap below.  This works quite well.  The main requirement is that your comskip.ini file must reside in the same folder as comskip.exe

image.png.42fc1f28142e6503b8661add6fcb9da4.png

In order to remove the .txt and .logo files from the folders add / update the following lines in your comskip.ini

output_default=0	; This suppresses the production of .txt files.
delete_logo_file=1	; This deletes the .logo file when comskip is completed.

 

That seemed to do the trick for the time being but the whitespace issue is something I would still like to look into.  Thanks everyone for all of the help

Link to comment
Share on other sites

crusher11

I've managed to set up comskip on my Synology, and run it on a recording, but it's only produced a TXT file, not an EDL file. It's also deleting the logo file, so it doesn't seem to be using the ini that's present in its folder.

Not sure what's going on here?

Link to comment
Share on other sites

Spaceboy

you need to set the right options in comskip.ini.

its going to be unbelievably slow on your syno though

Link to comment
Share on other sites

crusher11
3 minutes ago, Spaceboy said:

you need to set the right options in comskip.ini.

its going to be unbelievably slow on your syno though

I frequently watch things weeks after they're recorded.

The comskip ini doesn't seem to be applying to the execution though, as it's set to output an EDL and not delete the logo file. 

Link to comment
Share on other sites

Spaceboy

post your comskip.ini. otherwise we're just guessing.

there was a pdf around somewhere which gave some tips but i don't see it anymore

Link to comment
Share on other sites

crusher11

This should create an EDL and leave a logo file behind, from my reading, but it does neither.

comskip.ini

Link to comment
Share on other sites

BillOatman
3 hours ago, crusher11 said:

This should create an EDL and leave a logo file behind, from my reading, but it does neither.

comskip.ini 6.11 kB · 1 download

I would suggest running with the file in the first post as it has been shown to work.  If that doesn't work, the problem probably isn't the ini file.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...