Jump to content

ComSkipper ... A Emby Plugin that skips commercials


BillOatman

Recommended Posts

BillOatman
On 2/19/2023 at 3:22 AM, crusher11 said:

Had a playback issue that may or may not be related:

 

Comskipper just sends the FF command to the client.  Possibly a client issue.

Link to comment
Share on other sites

jriker1

Is there any possibility that and probably not ComSkipper specifically, but EDL can cause issues with audio playback?  Here is another thread I have open:

 

 

Basically the video plays fine in VLC.  Has an English and Spanish track.  Full audio throughout (relevant below). When I play it back in Emby at least on my Shield TV, the commercials skip and all but have some weirdness:

 

1. End of prior show is in English at the start of the video.

2. Commercials in between prior and recorded show have no sound.

3. Show recorded plays in Spanish but shows in Emby English is selected.

4. If I switch to Spanish then the recorded show plays in English.  Oddly so does the end of the prior show.

 

Wondering if perhaps there is an issue with the player and EDL files?

Link to comment
Share on other sites

lerouemm

Hi All,

Relatively new to Emby and looking to possibly move over from Plex.  One of the last things I'm struggling with is skipping the commercials for my recorded TV.  

I feel like I'm close, but I am struggling to get the post-processing part of it working.

Below is an attempt from the logs:

2023-02-21 21:01:00.104 Info LiveTV: Running recording post processor /usr/bin/comskip --ini=/config/comskip.ini "/data/recordings/American Auto (2021)/Season 2/American Auto S02E05 Going Green.ts" --cuvid
2023-02-21 21:01:00.121 Info LiveTV: Recording post-processing script completed with exit code 1

No comskip log is generated in the recording directory so I don't think it even executes.  The timestamp on the log seems to indicate that the failure is immediate.  As far as I can tell, there are no other logs related to the post processor execution.

However, if I take the exact same command from the logs that the post-processor executes and copy/paste it into the same Emby docker CLI I'm running, it runs fine, creates the comskip log and the final .edl file no problem.  So the application works, the ini file is valid, and the paths are all valid.

Couple of notes:

1.) I do have an Nvidia card and I use the --cuvid switch to workaround another issue I was having with "Segmentation" fault errors that I believe are related to newer FFMPEG versions.

2.) /usr/bin/comskip is set to chmod 777.

Let me know if anyone has any ideas what the issue might be.

Thanks!!

Link to comment
Share on other sites

I had a similar problem using the latest version of Comskip and the beta version of Emby.  You can see my path of discovery starting here -

The solution to was to set a different library path for Comskip

LD_LIBRARY_PATH=$(pwd)/usr/lib/ /usr/local/bin/comskip --ini=/etc/comskip.ini "$1"

Hope it helps

  • Thanks 1
Link to comment
Share on other sites

BillOatman
On 2/21/2023 at 9:58 AM, jriker1 said:

Is there any possibility that and probably not ComSkipper specifically, but EDL can cause issues with audio playback?  Here is another thread I have open:

 

 

Basically the video plays fine in VLC.  Has an English and Spanish track.  Full audio throughout (relevant below). When I play it back in Emby at least on my Shield TV, the commercials skip and all but have some weirdness:

 

1. End of prior show is in English at the start of the video.

2. Commercials in between prior and recorded show have no sound.

3. Show recorded plays in Spanish but shows in Emby English is selected.

4. If I switch to Spanish then the recorded show plays in English.  Oddly so does the end of the prior show.

 

Wondering if perhaps there is an issue with the player and EDL files?

Basically, no.  Comskipper just sends a Fast Forward (skip to a desired point). It does nothing else.
The EDL is only used by Comskipper, not anything else in Emby.

Easy enough to verify.  Delete (or rename) the EDL file to something else and see if it still happens.

Edited by BillOatman
Link to comment
Share on other sites

lerouemm
3 hours ago, richt said:

I had a similar problem using the latest version of Comskip and the beta version of Emby.  You can see my path of discovery starting here -

The solution to was to set a different library path for Comskip

LD_LIBRARY_PATH=$(pwd)/usr/lib/ /usr/local/bin/comskip --ini=/etc/comskip.ini "$1"

Hope it helps

Unfortunately, this doesn't seem to apply to my setup.  The LD_LIBRARY_PATH environment variable does not exist in the container.  I even created the variable running:

export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/gconv/

But that did not fix the issue.  Thanks for the suggestion.

I wish there was a way to see what kind of output comes from the post-processing attempt, aside from "1", even if the attempt is an immediate failure.  Enabling Debug Mode in Emby does nothing.

Link to comment
Share on other sites

5 hours ago, lerouemm said:

Unfortunately, this doesn't seem to apply to my setup.  The LD_LIBRARY_PATH environment variable does not exist in the container.  I even created the variable running:

export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/gconv/

But that did not fix the issue.

Actually this probably does apply to your setup, setting LD_LIBRARY_PATH in the container only applies when things are launched from there. When embyserver is started (yes even in the container) it will set the environment values it needs to function correctly, one of the most important ones is the former as it tells emby where to find the files they have modified to make ffmpeg & such work properly for them. Since emby launches the post processing it passes it’s new modified environment to the script or command’s environment before it is launched.

Since comskip uses different libraries you must set it to the proper path or just unset it.

Create a file called whatever you want (say comskiper.sh) and put the following lines in it:

#!/bin/bash
  
unset LD_LIBRARY_PATH
/usr/bin/comskip --ini=/config/comskip.ini "$1" –cuvid

make sure it’s executable (chmod 755 comskiper.sh ) and in a folder emby can access.

Then set emby like this:

image.thumb.png.1dcf6ee8df04dc820ff0846aa83772ef.png

Edited by TMCsw
Link to comment
Share on other sites

lerouemm
3 hours ago, TMCsw said:

Actually this probably does apply to your setup, setting LD_LIBRARY_PATH in the container only applies when things are launched from there. When embyserver is started (yes even in the container) it will set the environment values it needs to function correctly, one of the most important ones is the former as it tells emby where to find the files they have modified to make ffmpeg & such work properly for them. Since emby launches the post processing it passes it’s new modified environment to the script or command’s environment before it is launched.

Since comskip uses different libraries you must set it to the proper path or just unset it.

Create a file called whatever you want (say comskiper.sh) and put the following lines in it:

#!/bin/bash
  
unset LD_LIBRARY_PATH
/usr/bin/comskip --ini=/config/comskip.ini "$1" –cuvid

make sure it’s executable (chmod 755 comskiper.sh ) and in a folder emby can access.

Then set emby like this:

image.thumb.png.1dcf6ee8df04dc820ff0846aa83772ef.png

Thanks very much for your suggestion. 

Maybe the container i use (linuxserver) obfuscates it because emby works fine without that variable defined inside the container.

In any case, I ended up changing the docker tag to "beta" and was able to get the post processing working no problem without any other changes to my existing config.

Link to comment
Share on other sites

crusher11

Deleting a recording's EDL file doesn't stop Emby from skipping commercials. How do I get rid of it? 

Link to comment
Share on other sites

BillOatman
1 hour ago, crusher11 said:

Deleting a recording's EDL file doesn't stop Emby from skipping commercials. How do I get rid of it? 

Comskipper uses the edl file, period.   If you delete the file while the recording file is being played, stop it and restart. Otherwise without the EDL file the plugin would have no way to know where the commercials are.

Link to comment
Share on other sites

crusher11
6 minutes ago, BillOatman said:

Comskipper uses the edl file, period.   If you delete the file while the recording file is being played, stop it and restart. Otherwise without the EDL file the plugin would have no way to know where the commercials are.

I've deleted the EDL file, run a library scan, and refreshed the metadata. It's still skipping.

Link to comment
Share on other sites

BillOatman
On 3/1/2023 at 10:43 PM, crusher11 said:

I've deleted the EDL file, run a library scan, and refreshed the metadata. It's still skipping.

You can look at the source and see, but all it looks at is the EDL file.  Something is not happening the way you think it is :)

Link to comment
Share on other sites

crusher11
40 minutes ago, BillOatman said:

You can look at the source and see, but all it looks at is the EDL file.  Something is not happening the way you think it is :)

Clearly. Even ffmpeg, running entirely outside Emby, is skipping commercials. I'm very, very confused.

Link to comment
Share on other sites

roaku
7 minutes ago, crusher11 said:

Clearly. Even ffmpeg, running entirely outside Emby, is skipping commercials. I'm very, very confused.

Are you sure you don't just have file errors that coincide with a commercial break?

  • Like 1
Link to comment
Share on other sites

vdrover

Try making a copy of the file in a folder outside your Emby filesystem and playback with FFMPEG or VLC. That will tell you if it's a video file problem or not.

Edited by vdrover
Link to comment
Share on other sites

BillOatman

Did you run something on the file at some point that is destructive?  There are scripts etc. I have seen that look at the edl file once and physically removes the commercials from the video file.  Sounds like what happened to me if things independent of Emby are also "skipping". 

Link to comment
Share on other sites

crusher11
10 hours ago, vdrover said:

Try making a copy of the file in a folder outside your Emby filesystem and playback with FFMPEG or VLC. That will tell you if it's a video file problem or not.

It still skips. I am very, very confused.

8 hours ago, BillOatman said:

Did you run something on the file at some point that is destructive?  There are scripts etc. I have seen that look at the edl file once and physically removes the commercials from the video file.  Sounds like what happened to me if things independent of Emby are also "skipping". 

Nope. Playing back in VLC, the timecode jumps from 29:40 to 33:10. Right from the end of one commercial to the start of the program again.

Link to comment
Share on other sites

  • 2 weeks later...
Dont1982

Well i am having a different issue lol,  I have edl files for recorded tv shows that have been recorded with next pvr and ran comskip to generate an edl file through mcebuddy.  Some skip and some don't. any ideas? 

Screenshot 2023-03-12 141543.png

Screenshot 2023-03-12 141608.png

Edited by Dont1982
Link to comment
Share on other sites

BillOatman

The

7 hours ago, Dont1982 said:

Well i am having a different issue lol,  I have edl files for recorded tv shows that have been recorded with next pvr and ran comskip to generate an edl file through mcebuddy.  Some skip and some don't. any ideas? 

Screenshot 2023-03-12 141543.png

Screenshot 2023-03-12 141608.png

The 0 at the end is correct.  Make sure of 2 things:

1) The file name is exactly the same with edl instead of mp4 in your case. So ...Candy.Clash.edl

2) Thee should be 1 tab between the fields.  Not more than that, and not spaces.

3) My files have 2 post decimal digits,  But I doubt that's a problem.

If you still can't figure it out, turn debug logging on and play one past a commercial that does not skip and look at, then send me the log if it's not clear.

Edited by BillOatman
Link to comment
Share on other sites

Dont1982
40 minutes ago, BillOatman said:

The

The 0 at the end is correct.  Make sure of 2 things:

1) The file name is exactly the same with edl instead of mp4 in your case. So ...Candy.Clash.edl

2) Thee should be 1 tab between the fields.  Not more than that, and not spaces.

3) My files have 2 post decimal digits,  But I doubt that's a problem.

If you still can't figure it out, turn debug logging on and play one past a commercial that does not skip and look at, then send me the log if it's not clear.

Not sure what you mean by tabs.  The file names do not have the mp4 at the end. that is just listing the file types.   All of my existing edl files match the file names of the recordings. I am no longer using McEbuddy and trying to just use comskip partnered with next pvr. I have never had good luck McEbuddy  I do pay for the donators version of comskip also.  I will see what the recording do tonight and get back with you tomorrow if they do not skip

 

Edited by Dont1982
Link to comment
Share on other sites

BillOatman
19 hours ago, Dont1982 said:

Not sure what you mean by tabs.  

 

image.png.e8b46fbb62befc431f9ae5776cb38b0e.png

between the 900 and the 1604, and between 200 and 0 (same for rest of the lines as well) is 1 tab character, not 6 or 8 spaces.

Edited by BillOatman
Link to comment
Share on other sites

Dont1982

Watched 4 shows and it is back to working.  I will try and make sure I leave the debugging on and send a log if it does it again. 

Link to comment
Share on other sites

Baenwort
On 2/22/2023 at 7:09 PM, TMCsw said:

Actually this probably does apply to your setup, setting LD_LIBRARY_PATH in the container only applies when things are launched from there. When embyserver is started (yes even in the container) it will set the environment values it needs to function correctly, one of the most important ones is the former as it tells emby where to find the files they have modified to make ffmpeg & such work properly for them. Since emby launches the post processing it passes it’s new modified environment to the script or command’s environment before it is launched.

Since comskip uses different libraries you must set it to the proper path or just unset it.

Create a file called whatever you want (say comskiper.sh) and put the following lines in it:

#!/bin/bash
  
unset LD_LIBRARY_PATH
/usr/bin/comskip --ini=/config/comskip.ini "$1" –cuvid

make sure it’s executable (chmod 755 comskiper.sh ) and in a folder emby can access.

Then set emby like this:

image.thumb.png.1dcf6ee8df04dc820ff0846aa83772ef.png

 

If you are going to unset this you should also export (reset) it when the script is done doing comskip.

to save the original:

ldPath=${LD_LIBRARY_PATH}
unset LD_LIBRARY_PATH

then do your stuff

then at the end:

export LD_LIBRARY_PATH="$ldPath"

to restore things.

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...