Commercial Detection for In-Process Recordings (Catch-up to live broadcast - especially useful for live sports/events)

The feature that I miss most about my previous DVR (SageTV) is that it had the option to run commercial detection while the show as being recorded. This feature is specifically useful when watching live sports or other live events. If you start watching late, or if you pause while watching, you can still see the entire game and also gradually catch up to the live broadcast as each commercial break is automatically detected and skipped. I really enjoyed starting games about 30 minutes late, automatically skipping past all the commercials, and being caught-up to the live broadcast before the end.

From a technical standpoint, this feature shouldn't be the most difficult implementation, since the Commercial Detection feature is already in place. Instead of running comskip only at the completion of a recording, comskip would run as a scheduled task every 5 or so minutes on the active recording. The .edl file would have to be periodically reloaded by the player to incorporate recently-detected commercials.

The only potential downside would be playback stutters from the comskip process on low-powered servers. I never encountered this issue with my 10-year-old Windows server and SageTV (which also uses comskip), but it could potentially be an issue on some servers. This can be mitigated by running comskip with the "--playnice" option to slow down detection and limit CPU/disk utilization.

This is the DVR feature I miss most, and I hope someday Channels DVR adds this capability.

Actually, Comskip can work with a live stream. The problem is that its accuracy is not nearly as good with live streams as it is with a completed recording, because comskip makes multiple passes on a recorded file to augment its heuristics.

Also, if this were to be run on multiple in-progress recordings, that could easily tax the processor, especially on underpowered devices.

While this is technically possible—and much easier to achieve for in-progress recordings rather than live streams, which is a totally different beast—I feel it still misses the mark WRT UX. However, that's merely my opinion, and the restriction to in-progress recordings makes such a feature more feasible.

I think the value of this feature to a user depends entirely on how often a person watches live events. It's preferable to be caught-up by the end to prevent the result from being ruined. For a user who doesn't watch live events, the feature has much less value. I still find myself switching back to my old DVR to watch live sports, despite its other limitations, because of this feature.

Commercial detection for live streams would definitely be the ultimate version of this capability, but I agree with you that it's probably too ambitious. In-process recordings is probably the more realistic target, from both a technical and a usefulness standpoint.

As I recall, SageTV only runs in-process comskip for 1 recording at a time. So if 2 shows start recording at the same exact time, only 1 of them will get in-process commercial detection. I would schedule my "favorite team" recordings 1 minute earlier to make sure it received the in-process commercial removal.

2 Likes

I used SageTV since 2006 before very recently switching to Channels DVR. I, too, miss this functionality. Added a vote for dev consideration.

1 Like

I noticed there is already a setting for Thread Count for Commercial Detection, with a default setting of 1. So it appears there is already a setting to control the amount of load Commercial Detection places on the server. So the potential concern regarding too high CPU utilization may already be addressed.

Forgive me for not fully vetting this, but I do remember that comskip.ini allows for making the change to run on currently recording programs. I do not how this works in Channels and I am also assuming that it is running stock comskip. All that said, if you can find the comskip.ini, make the change here:

live_tv=0 ; set to 1 if you use parallelprocessing and need the output while recording

Curious if you try it and if it works with just making that change.

3 Likes

It will not work as Channels DVR kicks off comskip at completion of recording not start.

1 Like

Now that it's football season, I'm really wishing I had this feature. Lots of manual commercial skipping to try to get caught-up when starting a game late.

Slightly different topic related to the DVR function.

When manually advancing through a recording I find that if I click the 30 sec step advance button a few times (1-5) it skips almost immediately. But if I click it 8 times or more (4 minutes or more) it becomes very slow to respond. In this case if I get tired of waiting and click Stop, then it will ’wake up’ and complete the complete advance move.

2 Likes

This is probably because the client has already received the next ~4 minutes of the recording and is holding it in its buffer. When you seek further in the recording, your client device must wait for the DVR to send the requested portions of the recording to your device. This lag will be even more noticeable when you are on Wi-Fi, as it has a much higher latency than a wired connection.

1 Like

It would be great if the recording buffer were longer than the standard 4-minute commercial break. That would make catching up to live easier. But ultimately, I'd still like to not have to deal with that at all and just auto-skip the commercials while it's being recorded, so the buffer is never a factory.

I was working in my garage last weekend with NFL football playing on the TV. I started playback about 30 minutes after the game had started. It was extra-annoying to have to put down what I was doing, get the remote, and skip through commercials. It made me really miss the in-process commercial detection my other DVR had.

3 Likes

If you've had a chance to use the DirecTV recorder and its commercial management software, you would really like it. It does not try to detect the commercials and mark them. To use it simply press fast forward, and watch the commercial as it whizzes by, then stop FF and their algorithm backs up the approximate time that you overshot stopping the FF. This works quite well for me. And, I can imagine that a smart programmer could make the reversing time adaptive and thereby it would learn how much time to reverse depend on how fast it was forwarded, etc.

There is a Kodi add-on that does just this: Unpause Jumpback

My guess is that the DirecTV implementation assumes commercials a specific length (i.e. 2 minutes). So when the user fast-forwards 2 minutes 15 seconds and then hits play, DirecTV assumes that there was an extra 15 seconds of fast forwarding and jumps back 15 seconds (giving 2 minutes of commercial skip.)

This would definitely be an enhancement of the existing skip-forward feature, but would only work well if there was enough video buffer on the client (which there usually is not.)

For me, I don't want to have to do anything to skip the commercial. If the user has to pick up the remote and tell the DVR what to do, it's an inconvenience, when the DVR could do it for them. I think most people just want the "Netflix Experience", where you don't have to watch any commercials in any of the shows. I'd like that for in-process recordings, not just completed recordings.

1 Like

Hi great developer folks!

I was wondering if you would consider being savy and friendly enough to add this feature (as it's already built into the comskip software that Channels DVR has adopted, and working quite successfully in other DVR software) if you were willing, but only if it isn't too much trouble! Thank you for your extraordinary skill and consideration on this matter, it is much appreciated!!!! Thank you!

2 Likes

The more bowl games I watch, the more I wish this feature was available!

1 Like

It playoff time for NHL and NBA. And baseball season. I really wish the commercials would be detected and skipped for games I start watching while still being recorded.

I also vote for this, as almost every game i watch is behind live as I enjoy skipping commercials to catch up to live. But is there a way to hide the markings in the timeline as to when the commercials are approaching? It is a sort of spoiler seeing a number of commercials approaching that the game ends in the next few minutes, especially for hockey and overtime games which could go on forever or end any second

This is a great idea to have the option to hide the scrub bar and/or the commercial markers for sports recordings. The markers can partially spoil that something "significant" is getting ready to happen, because commercial breaks usually follow "big scores" for several type of sports. I think this should apply to all sports recordings, not just in-process recordings.

2 Likes