Commercial Scanning while watching

Not sure the best way to describe this. Every morning I record the news and watch it, usually at a delay of around 30-45 minutes. The entire show is 2 hours. I'm running the DVR server on a Synology NAS and the commercial scan process for the full show takes about 25 minutes. This means for the last 20-30 minutes or so I get the full commercial skip feature, but I can't use it earlier in the recording.

I understand the limitations on this, the recording has to be complete before the process can run. Are there ways to improve this? Perhaps I could break the recording into two one-hour recordings instead of a single two-hour recording? This means the first chunk could be scanned when it completes, and the second would take what I assume would be about half the time when it finishes as well.

Any other thoughts?

Unfortunately I don’t know if any way to divide a program into two pieces like that. Comskip while recording has been requested in the past but I don’t think there are any plans to implement it in the near future. Apparently it’s not as accurate, and can also cause other issues.

The major "issue" is that as Channels works, live commercial detection cannot. Commercial scanning is a server-based process, and live-viewing (and its cache/buffer) is a client-based process. In this model, the server—and commercial detection—doesn't have the data necessary to mark commercials while live. (Even if using tuner sharing, the streams are simply passed on and not processed by the server.)

Adding live commercial detection would require Channels to be completely overhauled to mandate a client/server model (which is presently more like an add-on), instead of how it currently operates.

If this is a major requirement, then you should seek a different DVR. I know MythTV allows for live commercial detection. Others may as well ...

1 Like

For DVR users, this already approximately works for watching a recording as it is being recorded. There is full support for updating commercial markers during playback in that case. When I'm watching a recorded show from the DVR which has not yet been scanned, commercial markers appear automatically seconds after the commercial scan completes.

So rather the issue is:

  1. the speed of commercial scanning is too slow to provide anything like live detection
  2. commercial scanning only works "at the end" on complete files (even if 5 hrs long!).

If some hypothetical machine-learning "comskipML" were 10x faster, and (even more importantly) could operate cumulatively on an incoming stream with moderate latency (like a human can do), it would be straightforward to implement.

It would only require:

  1. caching the live stream on the DVR
  2. analyzing it cumulatively in quasi realtime
  3. serving the video to the client
  4. pushing the detected commercial markers to the client as they are found (while the client is streaming/buffering/etc.)

If the client receives a new commercial marker before it gets to that point in playback, it can skip it. If not, well at least it's there for rewinding/later playback. In fact TVE already works this way — a stream lands first on the DVR server — minus the realtime commercial detection. So not such a radical departure for the architecture.

To put it simply if Channels could somehow identify a "new" commercial within say 2 minutes of it hitting the disk, and you were watching 5min "behind" live, you'd have basically the desired setup.

Comskip does have a live mode, where it works on a stream as it is received. The problem is that it is not very accurate, but an offline run of comskip uses several different heuristics and passes, which cannot be done as the information hasn't yet be received in a live stream.

If commercial scanning of live streams is a mandatory feature, there are some DVRs (such as MythTV) that have implemented this for your use.

Thanks, I hadn't heard of comskip's live mode. Would be interesting to have that as an option (with deeper scan later when idle).

I also see that Tablo provides this in the cloud, using machine learning and DSPs.

My point is that it's clearly not an intractable problem. ML algorithms, though non-trivial to build and tune, now regularly outperform humans at image and video recognition tasks. There's nothing special about commercial detection that would prevent this, as far as I understand. I believe the developers had shown some interest in this approach several years ago.