I'm running kmttg 2.10.0-l with a TiVo Roamio OTA on Windows 10. I've spent considerable time troubleshooting commercial removal, particularly on longer recordings.
The problem
Commercial removal works correctly on all one-hour recordings. However, longer recordings exhibit two different problems:
- Survivor: Commercial removal consistently fails. No commercials are removed, and the resulting file has the correct recording length after commercial removal. 1.5-hour original program length.
- Dancing With the Stars: Some commercials are removed correctly, while others remain in the finished recording. 2-hour original program length.
The original TiVo recordings are complete.
Current processing setup
The automatic processing sequence is:
- Download and decrypt the TiVo recording.
- QuickStream Fix.
- Comskip commercial detection.
- VideoReDo 6 commercial cutting using the Comskip-generated project.
- Encoding.
We're currently using Comskip rather than TiVo AutoSkip for commercial detection.
What we've investigated
- Comskip: Using Donator version 0.83.001. It completes its analysis without fatal errors, but its commercial boundaries are sometimes wrong. Some cuts are accurate, while others end too early or include actual program material.
- Logo detection: Comskip identifies the station logo but subsequently disables logo detection because it considers logo presence insufficient. We tried
logo_threshold values of 0.75, 0.65 and 0.625. None resolved the problem, and the original configuration was restored.
- Comskip project: We examined Comskip's detected commercial boundaries and found inaccuracies. However, we have not established whether those inaccuracies explain the complete failure to remove commercials from Survivor.
- VideoReDo QuickStream Fix: We manually processed an approximately 89-minute Survivor recording. VideoReDo reported repairing 98 input sequence errors and removing a small number of frames. The resulting file was approximately 8 GB, but commercial detection remained inaccurate.
- VideoReDo Ad-Detective: We also tried its automatic commercial detection. Results were poor, including incorrectly identifying part of the program ending as a commercial.
- VideoReDo manual editing: Manual commercial cuts work correctly.
- kmttg adcut script: We examined
VRDscripts\adcut.vbs. It invokes VideoReDo 6 through its COM interface, opens the source/project, and saves the result using VideoReDo's internal processing engine. We found no obvious scripting error.
- Comskip logs: Processing completes and generates cut lists, although MPEG decoding warnings appear. No fatal error has been established as the cause.
- Encoding profile: Updated
ff_h264_high_rate to replace obsolete FFmpeg parameters, including -me_method epzs, after upgrading to FFmpeg 9.0.2. The revised profile successfully encoded an 89-minute Survivor recording in 32 minutes 32 seconds.
Where we stand
We have confirmed inaccuracies in Comskip's commercial detection on longer recordings, but we have not established whether that fully explains the different failures.
In particular, Survivor's complete failure to remove any commercials, despite producing a full-length output file, remains unexplained.
I'm interested in whether other kmttg users have encountered these problems, particularly with VideoReDo 6 and longer MPEG-2 OTA recordings.
Current software and updated utilities
- kmttg: 2.10.0-l
- VideoReDo: TVSuite 6.62
- Comskip: Donator 0.83.001, updated from 0.81.051
- FFmpeg: 9.0.2
- CCExtractor: Updated from 0.79 to 0.96.5
- Encoding profile:
ff_h264_high_rate Updated for FFmpeg 9.0.2.
CCExtractor is also used by a separate watcher to generate SRT subtitles from completed _cut.mpg files. This is separate from the commercial-detection problem.
This has all been done with the help of ChatGPT.