Removing Commercials (beta): Feature Suggestions

For those of us that use a single postprocessing script which does commercial cutting and transcoding, there is a section that checks if the script is still running so that it will only handle one show at a time (and therefore not completely hosing your system resources). Once the first show is done, it will proceed to run the postprocessing script on the next show.

  1. I’d like to see an option similar where I can configure this to process a single recording at a time
  2. If I remove the commercial cutting from my script, and enable this new feature, will it run before or after my postprocessing script?

Thanks!

One benefit of MCE Buddy is the ability to use its handbrake functionality to encode the .TS files to MP4 and make them take up less space.

So basically, if I stopped using the MCE Buddy windows service, would I have to use a Post-processing script with the Plex Remove commericals feature?

Also, would live tv cut commericals too?

+1 on remuxing to MKV.
+1 on marking chapters option
…and +1 to all players supporting chapters :smiley:

While I like the idea of smaller files, without commercials, could we have a method that keeps the file whole and adds flags for start and stop of commercial breaks?

Benefits - no transcoding requirement and no risk of lost programming if the the process is imperfect.

Already mentioned, but I’ll mention again:

  • Ability to process files that are already recorded
  • Keep unprocessed file, either permanently, or for a configurable number of days.

I really like that this was added. I currently do MCEBuddy / Comskip donators version / hardware ffmpeg encode to H.264. My poor desktop is ready for a break.

  1. Add the ability to path out the comskip donators version.
  2. Config importer / generator could be added.
  3. Keep original for (N) days as an option due to the meat carving that comskip can do sometimes.
  4. Integrated network logo system. Just like we download content and info for the shows.

Or scratch all that altogether and make it a community commercial marking effort.

IE make a button to press upon playback that marks the in/out time of the commercials. Plex would then go back a few seconds and scan the audio and create a signature or something. When 5 or so people mark that show in that particular place it would be automatically be marked for the next person. If the part that marks it originally in/out for the commercials it would still use their cuts on their plex server to be processed with ffmpeg or whatever is being used to cut the video.
It would be interesting to see if you could somehow get comskip to scan on the playback of the video. Once it passes the end of the show segment it would stop playback with a popup and say something like (possible commercial detected - would you like to scan to the next segment) or something like that. If the user agrees, then that is the cutpoint at the end of that segment. Might add a bump forwards 2 seconds or back 2 seconds to refine a cut. I honestly dont mind marking my own commercials manually. Especially if someone else is marking another show that I am not watching at that time. The fact of the matter is comskip is good for getting things close. I am a big fan of precise though.

Just a far fetched thought. Would need a bunch of brainstorming.

-Casey

  1. Limit the post-processing to only occur during a block of time selected by the user to avoid high CPU usage during potentially peak viewing hours

I second this. I have MCEbuddy scheduled to do processing in the wee hours. I don’t want this to occur during primetime. My gen-2 i7 is pretty capable, but comskip pegs my CPU.

Another item would be to change the recording icon to something else to indicate the status of a show. This would indicate that the tuner is free and postprocessing/comskip is running.

-Casey

@timstephens24 said:
We need the option to create chapters instead of cutting out the commercials. Cutting out commercials isn’t 100% accurate, and this would allow quick skipping chapters while also having the ability to go backward/forward depending on the accuracy of comskip.

This is how the Channels App works on Apple TV. The commercials are marked as different colored chapters from the content, and can be skipped by double-clicking the right side of the remote’s trackpad. Also, in my experience, whatever they are using to mark commercials is more accurate than Comskip. (I prefer to use Plex for all of my media, but currently Channels is simpler, more elegant, and more reliable. Plus, the option of an old-school channel grid.)

I assume, and hope, that someone at Plex keeps an eye on the competition…

@scottjennings said:
Also, in my experience, whatever they are using to mark commercials is more accurate than Comskip.

They use Comskip. One of the Channels developers is also a contributor to Comskip.

+1 to processing already recorded stuff. I understand that it’d take a huge amount of time, but it’d be worth it.

I would also like the ability to process videos that are already recorded. Ideally, all videos found in a specified directory or individually.

@timstephens24 said:
We need the option to create chapters instead of cutting out the commercials. Cutting out commercials isn’t 100% accurate, and this would allow quick skipping chapters while also having the ability to go backward/forward depending on the accuracy of comskip.

I have a script that does this, the issue is not all plex clients support chapter skip :(. However, on clients that support it, this works pretty well.

@jnbarlow said:

@timstephens24 said:
We need the option to create chapters instead of cutting out the commercials. Cutting out commercials isn’t 100% accurate, and this would allow quick skipping chapters while also having the ability to go backward/forward depending on the accuracy of comskip.

I have a script that does this, the issue is not all plex clients support chapter skip :(. However, on clients that support it, this works pretty well.

I do too :wink:

FreeBSD support so it can run on my FreeNAS array. :slight_smile:

Thanks everyone for providing your suggestions for how we can improve and expand our ComSkip commercial removal functionality. A quick note, please keep this thread to suggestions for this beta feature. If you have questions, please create a new thread.

I love all these early suggestions. I’ve gathered them up for product and engineering to review. Here’s an early update on where we stand on the features suggested:

Non-destructive chapter-based removal
This is a direction we wanted to go, but its also the highest touch required (every client needs updating, and chapter support) so we thought we’d release something in the interim to see how people are using it and then go from there. It’s still in consideration.

Option to keep original and edited media, 2 files per recording
Doable possibly without a ton of resources required. Engineering is exploring.

Recycle bin
While technically this might not be hard, I’m not sure if we want to go down the route of having a Recycle Bin. We favor the idea of just storing both, and the user can delete the “original” if desired.

Option to remux to MKV in post-processing
While unrelated to commercial removal, it has been a big topic of discussion surrounding DVR. We’re open to discussing adding a 3rd option in the transcode option to remux to MKV.

Process Comskip on existing media in libraries
We would have to track recordings and if we’ve set flags for Comskip, and prevent it from processing content the user has acquired elsewhere. It will take further investigation.

Per channel or show comskip.ini support
More complex than the feature was initially scoped out for, but interesting no less for advanced users. Engineering will need to evaluate how complex this is and if it should be scoped out for a future update. The intention was that advanced users would continue to have the option to post-process via script.

FreeBSD support
Engineering is working on it an expect it soon. Unfortunately I can’t provide a more specific timeframe.

Soft transitions with audio/video fades
The video nerds among us thing this is a great idea. Comskip provides basic support for this, but the author said it hasn’t been tested/used much. It’s unllikely we’ll want to try to pull off ourselves in the foreseeable future. Comskip is GPL v2, so we could fork it but this would be a pretty resource intensive undertaking.

Pass channel and show name arguments to post-processing
This is something we could do without requiring a lot of resources. Engineering will explore.

Enable feature on a per TV library basis
So, have another place for Remove Commericals to live: Global, individual and per library. Our libraries today have no notion of DVR vs normal content, so this may not be feasibility at this time. Engineering will investigate further.

Multiple commercial detection techniques and a library of user-submitted .ini files
Comskip does multiple commerical detection techniques already. Not sure if we want to maintain a GUI reachable library at this point, but we would be open to a forum section.

Limit when post-processing occurs
This would involve making it a Scheduled Task, such as optimization, library updates, etc, instead of an immediate post-processing task. Engineering will explore.

Pad recordings by seconds, not just minutes
You should be able to do this today by using decimals (.1, .6, etc), but changing padding from Minutes to Seconds will be looked into.

Basic edditng of built-in comskip.ini configuration
There are a ton of options, too many to expose in the GUI while keeping it simple and easy to use. Would have to pick out the most useful settings for most users. Something to explore.

Recording icon to reflect current actions
We are in-progress with work on showing post-processing status in the GUI.

Community commercial marking effort, utilizing crowdsourced use of a button during playback to mark in/out times
A sizable endeavor to maintain and not something we would likely be looking to take on in the foreseeable future.

Edit

Process Comskip on existing media in libraries
We don’t currently store any information denoting that a metadata item came from a DVR recording. We could add something for the future but previous recordings will still have to be manually comskipped. Having a queue to add recordings to, like Media Optimizer, would certainly help in making that less painful. That’s been raised with engineering for evaluation.

@kinoCharlino said:
Pass channel and show name arguments to post-processing
This is something we could do without requiring a lot of resources. Engineering will explore.

Since its not too complicated. Could you ask for more arguments? For instance the Gracenote zap2it ID of the show.
This means we could write post processing scripts that could query the db for the ID and insert show metadata into the file itself.

Thanks

@jobrien2001 said:

@kinoCharlino said:
Pass channel and show name arguments to post-processing
This is something we could do without requiring a lot of resources. Engineering will explore.

Since its not too complicated. Could you ask for more arguments? For instance the Gracenote zap2it ID of the show.
This means we could write post processing scripts that could query the db for the ID and insert show metadata into the file itself.

I’ll add it to the list.

What about just letting me choose to “process for comskip” on an individual file? Let’s say I recorded a movie and it has commercials. In the same context menu where I would “Fix Incorrect Match” add an option for running comskip. That would at least be an interim solution before you start trying to keep track of new metadata for automatic processing.

Plus, there might be some shows where comskip doesn’t process as well so users may not want it to blanket run on all dvr content.

@kinoCharlino said:
I’ll add it to the list.

There is actually plenty of information that could be of interest here. When I wrote my first processing scripts I would have loved to know how much this particular recording was padded (to help in commercial removal), for example.

A few such items could be added as ordinary parameters, but at some point it would perhaps be useful to make a lot of recording information available in some structured format (JSON, XML, or whatever strikes the best balance between being well structured and easy to parse). Then we would get away from error-prone parsing of positional script arguments (which one was argument 10, again?) and the threshold to adding more information would be lowered. One could even add all of the EPG data into the structured format so that those who are interested can save it or process it however they want.