Comskip
Contents |
About
Comskip is a free video commercial detector. It is a windows console application that reads a video file and analyses the content based on a large amount of configurable parameters. After analysis it generates a file in various possible formats containing the location of the commercials inside the video file.
Comskip can read MPEG and h.264 video, MPEG2, AC3 and AAC audio from PS , TS and dvr-ms files upto HD resolution (max 2000x1200) at 25fps (PAL) and 29.97fps (NTSC).
Comskip can NOT read copy protected recordings.
The h.264 (HD) and WTV version just recently also got publicly available.
To experience the effect of Comskip, you need a Client (front-end; player) that supports skipping of commercials.
Front-ends, known to support commercial skipping:
- MediaPortal
- XBMC
Front-ends, known NOT to support commercial skipping:
- Windows Media Player
- Windows Media Center
Comskip has a companion application called "Comclean" that can permanently remove the commercials from recordings. This is useful if you wish to keep recordings as it reduces file sizes. Comskip also supports the MPEG cutters mpgtx, cuttermaran, and mencoder. Cutting recordings usually means a (automatic, but not lossless) decode, cutting, and then re-encode of the video file.
Versions & Download
Generally there are two main versions of Comskip (although it's over all officially still a 0.x version - a beta).
The basic version, and the Donator version.
At the time of writing the public and donator's version are the same and the public version is now capable of processing h.264 (HD) and supports latest analyzing features (of logos, ratio change, etc.) amongst some other things.
Web Site & Download
|
Installing & Configuring Comskip
Comskip is supplied as a .zip file, installing it is as simple as unzipping it and placing it to the location of your choice.
The included settings ("comskip.ini") is suitable for many users already and applies "moderate severe commercial detection".
Three very profound guides, absolutely worth to be read, are available from Comskip Website under http://www.kaashoek.com/comskip.
Configuring Comskip basically means editing "comskip.ini" - carefully read the included "manual.html" and make a backup before editing. To tweak the configuration may be quite complex and may lead to side-effects, thus, it is recommended to tweak settings step by step and looking at the results for a certain time. During this time, you should not enable cutters or Comclean as the result may be - depending on your settings - irreversible.
The result is strongly depending on your providers and channels, it's quite strongly depending on "broadcast policies" of the individual providers: some show their logos for some more seconds, some move it to a different location showing a kind of PIP ad, some do change aspect ratio, some not, etc.
In addition, of course, it strongly depends on your own preferences.
The default comskip.ini tries to avoid "too early and rigid" cuts, but nevertheless cuts "within 30 seconds" (personal experience); you might want to make this more "severe"...
Thus we recommend that you, if you're not sure what to change, contact users within your region through the Comskip Forum to ask for specific assistance.
The author of this article made pretty good experience by changing the default ini settings to the following more severe through change of these parameters:
cut_on_ar_change=2; set to 1 if you want to cut also on aspect ratio changes when logo is present, set to 2 to force cuts on aspect ratio changes. set to 0 to disable delete_show_before_or_after_current=1; set to 1 if you want to delete the previous and the next show in the recording, this can lead to the deletion of trailers of next show |
Using & Calling Comskip
Comskip policies
There are three basic policies of using comskip - depending on your own preferences and your infrastructure.
- Comskip processing after each recording ended (designed for and recommended)
- Comskip Batch Processing while your system is less loaded or idle (reducing resource load)
- Comskip Real-time Processing - watch the ad-less result while being broadcasted
Comskip Processing after each Recording ended
Important Running Comskip while watching TV or recordings could adversely affect the user experience. In this case, you may need to run Comskip On-Idle or Batch Processing at a low/no use time. |
To have ARGUS TV call Comskip, we use ARGUS TV Scheduler Console Processing Commands.
First we need to create the command. Start by opening the ARGUS TV Scheduler Console and going to Processing Commands.
- Create a new command and give the it a name that will easily identify it later.
- Set the path to "C:\Program Files\Comskip\comskip.exe" (adopt to your individual setup or use a *.cmd/*.bat file you created).
- Set when the command should run.
- Set whether this command should apply to all new schedules.
- Save the command.
- Apply this post-processing entry to any schedules you already defined, that should be processed.
Be aware, that this means an additional load to your machine after each recording (and potentially parallel to other recordings). From our experience, this load is considerable low, but you should watch your (other) recordings if you're running your machines "near the limits".
Comskip as a processing command is running invisibly, no CMD window will appear on your screen. The processing time per recording takes, depending on length and resolution of your recording, approx. 1-5 minutes, even on weaker systems.
Comskip On-Idle or Batch Processing
You may want to decide, that your Comskip application runs as a kind of batch process, compiling all the non-scanned recordings (yet) at a time when your system is idle or at a specific time.
This is especially recommended, if your system tends to be "fully loaded" and you encounter already from time to time broken records. It means, of course, that the Comskip information for your front-end or client is only provided some other time, means: later than "some minutes after the recording".
There are basically two ways to get this done:
- Defining a ARGUS TV Processing Command that only starts at a specific time
- Creating cmd files that are called from your task manager
Ad 1.
Advantage: no cmd window is shown, it runs "silent"
Disadvantages: first, as Comskip (especially in the older (non-donator) versions sometimes tends to fail or even crash (as the time of writing this article), you'll not know about this. Second, it is not known to the author, if these process commands are run in parallel when having recorded multiple shows. Which would turn the partial instability of Comskip even much worse. Third, this is not a real idle processing. It runs at a time that you assume the system to be idle.
Ad 2.
Advantages: you visually can trace the procedure of Comskip. Task manager gives you a large flexibility and a real idle time processing is possible through the task parameters. The process can be starting at a certain time (as above) but then wait until the system turns idle and then start the process. In addition, you can delay, repeat, and last but not least also manually evoke the process. As this way reflects a real batch processing, Comskip is run only sequentially file per file (but of course in the same process/cmd window). In addition, you may simply add the process to your maybe already existing maintenance routine.
Disadvantage: you see a focused cmd box showing up. Nevertheless there are certain free tools available to avoid / suppress this.
If you want to follow the first way, please proceed to Activating Comskip from within ARGUS TV schedules and select the When-Parameter of your created processing command accordingly.
If you want to follow the latter way, please read on.
Creating the Batch Cmd Files
The easiest way to get this batch processing running, is to create two *cmd / *.bat files to
- Determine, which video files have not yet been comskip'ped
- Call the "Create-Comskip" bat / cmd file for each file that has not been processed so far
- Call the determination (the core cmd file) from within your task scheduler according to your desires
The master/core cmd file could look like
@echo off REM The core cmd file, called from your task manager. |
The called (slave) cmd/bat file that the above core refers to, could look like
@echo off REM The slave cmd file - called for every *.ts file the FORFILES command in core cmd file finds. |
Comskip Real-time & Live TV Processing
Important Running Comskip while watching TV or recordings could adversely affect the user experience. In this case, you may need to run Comskip On-Idle or Batch Processing at at a low/no use time. |
With the proper settings, it is possible to run Comskip as a parallel process when the recording starts and have data available almost immediately, this means that you will be able to start watching the recording before it has finished and still skip the Commercial breaks (provided you don't catch up to the live point).
However, results may vary. Many people find Comskip to be unstable when running it "live".
The following parameters influence the live TV behavior, you usually only have to set "live_tv" to 1 to get it properly working together with ARGUS TV:
live_tv=0; set to 1 if you use parallel processing and need the output while recording live_tv_retries=4; change to 16 when using live_tv in BTV, used for mpeg PS and TS |
Don't forget: If you're running the real-time processing, you also need to "tell" this to your schedules:
Open ARGUS TV Scheduler Console, and select Processing Commands. Set the "When"-Parameter of the intended real-time processing command to "Run when the recording starts (live)".
Activating Comskip from within ARGUS TV Schedules
This section covers the following items:
- Creation of ARGUS TV Comskip processing command
- Activation of Comskip processing for existing individual recordings
Creation of ARGUS TV Comskip Processing Command
- Enter the ARGUS TV Scheduler Console and select Processing Commands
- Hit the button Create to the top right.
- Make sure, the newly created entry in the list box now called "-Unnamed-" is highlighted and then edit in the below part of the window the settings:
- Choose your desired name
- Set the full path to your comskip.exe including comskip.exe itself, e.g. C:\Program Files\Comskip\comskip.exe
- As "Arguments" enter %%FILE%%
- Decide when you want Comskip to be run - depending on your usage as described in the sections above. Note: if you choose "Run when the recording starts (live)", please don't forget to also activate real-time processing of Comskip as described.
- Decide if you want to assign the Comskip processing command to all new (video) recordings and activate the checkbox Automatically assign to all new television schedules if so.
Activation of Comskip Processing for existing individual Recordings
Adding Comskip processing to existing (or newly created, if not set to be activated for all future recordings) schedules is considerably easy:
- Open the Recordings page within ARGUS TV Scheduler Console
- Choose a schedule to add Comskip processing to, and click the "Edit" button
- In the "Processing" field, select the newly created Comskip processing command
- Save the schedule
- Repeat this procedure for every schedule you want to run (one of) your Comskip command(s) with
Client-specific Behaviour
MediaPortal
Mediaportal can use Comskip data when playing recorded TV, but only through the TV section (not Videos etc.) To make it work, you must check the "Use Comskip Data" checkbox in the TV section of MediaPortal Configuration. After that, it should just work.
XBMC
XBMC fully supports comskip'ped files. It requires (only) the default created text files (*.txt) with the same root file name and in the same directory as the recorded show. EDL file creation may safely be deactivated.
Since XBMC 12.0 Frodo, the jump table is pre-read and a seamless jump is guaranteed. The actual result, however, is of course depending on the generated Comskip file (*.txt) and thus on your settings & your provider.
Cleanup of left-over files from Comskip & ARGUS TV
Depending on your settings of ARGUS TV (creating potentially *.thmb and *.arg files), you already have some "left-overs" after deleting a show from within your client.
Using Comskip definitively creates additional files, that will remain in your directories after a show has been deleted through your front-end (they usually delete the video file only). You will at least have remaining *.txt files but also other outputs - depending on your settings - like *.logo.txt, *.edl, and maybe even many others.
A small helper may clean up your directories (and sub-directories) from these files. You may run them from within your maintenance task or even combine them with the batch processing described above, if you decided to use it.
The simple cmd files "CleanDirectory" may help you: find them under [http://21x.eu/downloads/CleanDirectory.html]
Argus "Argus-TV" ArgusTV ATV "A-TV" ForTheRecord 4TR "For The Record" Scheduler Recorder Console Comskip download installation setup "set-up" commercial skipping cut