Jump to content

Unraid Docker + comskip


Recommended Posts

Vorkosigan
Posted

I am running Emby as a docker in Unraid. (I believe the official docker?) As of this week I have switched from the HDHomerun dvr to using the Emby dvr.

 

So far Emby is working great. I did have to turn off the convert to a streaming friendly format option because I would lose the closed captions.

 

What I would like to do is to be able to remove the commercials, keep the closed captioning (I really don't want to have to download subtitles for every episode and then manually go in and fix them), convert to mkv, and then have the recorded episode added to my regular tv library instead of being kept in the recorded library.

 

I have never used comskip before so I am not at all familiar with it. I have tried searching for how to use it with the Emby docker but came up blank. Maybe it's not possible? Some guidance would be great.

 

I am also not that familiar with ffmpeg which I guess is what Emby uses to convert to mkv. I'm not sure at all what needs to be done to be able to convert to mkv and keep the closed captioning, or again, if it's even possible.

 

For getting the recorded episodes added to my regular tv library I was thinking that it should be possible to use a simple move command added to the end of whatever script I come up with for the previous items to move the file to the auto organize watch folder should do it?

  • Like 1
Posted

+1   This is exactly my setup as well.   From what I've read, it may not be possible? as comskip requires ffmepg and other libraries that may not be in the emby docker image?   Hope someone can help!   

 

EXTREMELY interested!

Posted

Well there is ffmpeg but comskip is not embedded.

Posted

Ok - soooo how do we get comskip working insider a docker?   Can it be done externally? - How?

Posted

Ok - soooo how do we get comskip working insider a docker? Can it be done externally? - How?

I've always been curious of that as well and found a few topics here, including the following one:

https://emby.media/community/index.php?/topic/49900-automated-commercial-removal-from-tv-recordings/?hl=%2Bcommercials+%2Bskipping

 

As far as making it work with the Emby docker container, I would think that adding the comskip script location to the Emby container should do the trick.

I've never used comskip, however, so I may be entirely wrong... I too am thus quite interested in people's feedback.

 

Sent from my A0001 using Tapatalk

Posted

What you can do is configure a recording post processor in Emby settings, and then use a comskip application to post process and remove the commercials after a recording.

  • Like 2
Vorkosigan
Posted

What you can do is configure a recording post processor in Emby settings, and then use a comskip application to post process and remove the commercials after a recording.

 

I think that is pretty much what I am asking if anyone has done this already since this is somewhat new to me. It does look like there are a couple of comskip dockers on dockerhub, though I would have to figure out how to get them to work with unraid (and I am also not sure if they are any good). 

Posted

Comskip doesn't actually remove the commercials - it detects and bookmarks them in an edl file, I don't believe emby supports edl. So you need to re-encode them in your post processing script as well - to do that in the context of docker, you'd have to put the comskip binary, post processing script in a folder that's exposed to the docker container for example your media folder.

 

Then your best bet would be to look at this:

https://emby.media/community/index.php?/topic/45267-using-comskip/

  • Like 2
Posted

Thanks all for the prompt responses!  While I appreciate the hinting at what could be done I think we are looking for more of a guide on how this will work in a DOCKER.   I've found several post already that explain comskip and various scripts that use comskip to post process our videos (on real systems).  

 

On a normal VM with emby installed I could easily install comskip, python, etc for everything needed to post process - however, we are using a docker.  Thus not so easy without bash into the docker and then make modification to the base image.  To me this is a bad idea.  Moreover, any changes to the emby img would probably be lost during the next update, etc.

 

Now I could easily map a volume/share with comskip or a script to post process - as shown in the image below.   I just didn't think this would work - actually it sounds too easy.  My assumption would be that emby would be executing whatever I put in that line within the docker; and if it the emby and/or docker doesn't have all the supporting libraries, etc, it would be an epic fail.   Furthermore, if it were that easy - I would have expected a thread with simple instructions on "here's all you need" - copy paste this line and voila.   However, I have not come across that thread in my in-depth searches.   All of the guides/how-tos have emby on real systems - downloading comskip, compiling, adding python, etc, etc.

 

I also understand that emby currently doesn't process edl files... which might be something they are looking into, but it would require rewriting each app for every platform.  Nevertheless, I would be fine with ffmpeg/comskip rewriting a new file (maintaining the original video) with added chapter makers... there's a thread on this somewhere...  worse case I could just rewrite the video without commercials. 

 

Maybe I'll try a few things this weekend. 

 

BTW - hate me all you want, but plex has this built in....   so why am I here - because their live-tv doesn't work well... and emby does  :D

 

Only two things are holding me back from life-time membership:

1. Built-in (automatic) TV guide (EPG) data

2. Comskip

 

 

5a5018e51ac3d_postprocess.jpg

Vorkosigan
Posted

Thanks all for the prompt responses!  While I appreciate the hinting at what could be done I think we are looking for more of a guide on how this will work in a DOCKER.   I've found several post already that explain comskip and various scripts that use comskip to post process our videos (on real systems). 

 

More like seeing if someone has already figured this out and can fill in some missing steps. But at least so far this has given me some ideas to look into. :)

Posted

Let us know how you get on. Thanks.

mastrmind11
Posted

WHy not create the image w/ an additional path to all the stuff you need to invoke the post processing script?  I don't think this stuff has to live in the container, just needs access to the mapped path w/ read/execute priviledge for the emby user (assuming that's who's set to run the docker container).  I haven't looked at the docker create script for emby, but that's how you'd do it w/ sonarr/radarr/etc in a docker container.

  • Like 1
  • 4 months later...
Posted

I’ve been looking into this too recently & as the OP mentioned if you add the necessary stuff to the emby image it would probably be lost when it updates itself? (Regardless, a not-so-subtle hint at some other development for the official emby container ;) )

Also, I’m not too familiar with Docker images & how to build them. I could figure it out, but I know it would take a while.

 

I was thinking that the following could be an option:

Setup comskip (with all its pre-reqs) outside of the Docker VM (ei a FreeNAS jail since that’s what I’m running & my containers are being run on RancherOS which basically includes nothing except for the containers it has running on it) & then have it monitor a folder, I believe it can do that & all my emby DVRs go to a specific folder anyhow, so that once something pops in there it marks the commercials & re-converts without them, then dump into my normal downloads folder and let the (very very very nicely upgraded!) auto-organize plugin do its work sorting the file into the folder where I keep all my commercial-removed TV shows.

It’s far from ideal, but I know there are breakdowns here for how to setup comskip in a FreeNAS jail w/ ffmpeg.

 

I’ll keep looking, but I’m not familiar enough with everything to know if a seperate comskip container would be something the emby container could access....

Posted

In addition, it seemed as though someone using the Channels Docker container wanted to do the same & ran into the same issue.

Seems like they statically linked the container with comskip & channels dvr (need to do some research on that) and may have possibly added the necessary files to the container (I’m assuming the channels dvr container):

 

https://community.getchannels.com/t/comskip-error-in-docker-image/2953/12

  • 3 years later...
  • 1 year later...
Posted

Since this is the #1 google result when you search "emby comskip docker", I will post what I have learned.

It is stupid easy to get comskip installed and working in linuxserver.io's emby docker container thanks to their docker mod layer and the universal-package-install mod.

1) To your lscr.io/linuxserver/emby container add two environment variables:

DOCKER_MODS=linuxserver/mods:universal-package-install

and 

INSTALL_PACKAGES=comskip

2) Put the comskipper dll into the emby appdata plugins folder.

3) Find a suitable comskip.ini and put into the emby appdata folder.

4) Emby settings

Recording Post Processing

Post-processing application: 

/usr/bin/comskip

Post-processor command line arguments:

--ini=/config/comskip.ini "{path}"

That's it. comskip will run after a recording and create your edl file, the comskipper plugin will read the edl during playback and auto skip commercials.

  • 4 months later...
Posted

@SkitalsCan you please share the emby portion of your compose file? When I add the lines above the environment section of emby, emby gets stuck at this stage and never loads: 

[mod-init] Attempting to run Docker Modification Logic

 

  • 4 months later...
Posted

@vdroverDid you ever get a response to this question back to @Skitals?

 

This is my current sticking point with Emby Linuxserver.io docker running on Unraid. I have been scouring the forums and general net, but keep coming up empty.

Posted

here is was seems to have worked for me at the moment

 

AND, it wasn't until AFTER i was sure the INI file was in the right place, && the live TV post processing steps were correctly entered, did it actually install on the docker run/compose step 

I do think I may have a permissions issue though as my emby log shows this after recording completes...which Im not sure at the moment how to fix 😕

 

Fontconfig error: No writable cache directories
Fontconfig error: No writable cache directories
Fontconfig error: No writable cache directories
Fontconfig error: No writable cache directories
/usr/bin/comskip: /app/emby/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /lib/x86_64-linux-gnu/libopenmpt.so.0)
/usr/bin/comskip: /app/emby/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /lib/x86_64-linux-gnu/libchromaprint.so.1)
/usr/bin/comskip: /app/emby/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /lib/x86_64-linux-gnu/libsrt-gnutls.so.1.4)
/usr/bin/comskip: /app/emby/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /lib/x86_64-linux-gnu/libzmq.so.5)

 

Screenshot 2023-08-24 at 4.16.24 PM.png

  • 4 weeks later...
Posted
On 8/24/2023 at 3:40 PM, pix64 said:

@vdroverDid you ever get a response to this question back to @Skitals?

I did not. In fact, I gave up trying to get comskip working inside another container. I have been using this docker container instead: https://github.com/chacawaca/docker-post-recording

It runs on it's own, watches for .TS files, extracts subtitles, and runs comskip. It's totally independent from Emby. But since it creates .EDL files in the emby folder, the comskip plugin detects them as normal without the need for a post-processing script.

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