MythTV does not automatically remove commercials. The system will flag commercials and skip them during playback. It can also transcode recordings between MPEG-2 and MPEG-4 or lossless transcode MPEG-2 and remove a cutlist from the program. Since a list of commercial flags is not a cutlist, it is not removed automatically. This document describes how to remove commercials permanently from the source material.
Removing commercials using mythfrontend
You can remove commercials that have been flagged by editing the recording using mythfrontend. Once you have brought up the timeline editor (press E) you can press Z to load the flagged commercials as a cutlist in the editor. Once the cutpoints are created, you can manipulate them normally in the editor to get the exactly where you want them. It is uncommon for the commercial detection to be perfect all the time so some tweaking may be necessary.
After editing is complete, you can choose Begin Transcoding from the OSD menu or you can also choose to Begin Transcoding from the INFO menu in the Watch Recordings screen under Job Options. This will insert a transcode job into the Job Queue which will convert the recording based on your transcode settings in the recording profiles setup.
Removing commercials from the command-line
You must have already flagged commercials for this option to work.
Use mythcommflag to create a cutlist by using
Then use mythtranscode to transcode the recording using the cutlist with
You will need the additional standard options to both programs to choose the proper program based on filename or channel and time. Look at the --help output from each program for details on using these options
Automatically removing commercials
In the 0.20 release of MythTV, you can specify a custom command-line option for both the commercial flagging job and the transcoding job. Using this function, you could create a wrapper script for transcoding after commercial flagging that would use the command-line options outlined above.
One such way to implement this is to setup a User Job that uses this script. Save that script as removecommercials in your path and ensure that the script is executable. Set up a user job that runs the following:
removecommercials %DIR% %FILE%
Name the user job "Commercial Removal". You can now remove commercials by highlighting the recording in the recording list, hitting the right arrow, selecting "Job Options", and then selecting "Begin Commercial Removal". You may also set up your recordings to automatically run this script after a recording finishes.
If you want to update all your recordings to automatically remove commercials, you could use the following SQL statement:
UPDATE record SET autotranscode = 0, autocommflag = 0, autouserjob1 = 1, autouserjob2 = 0, autouserjob3 = 0, autouserjob4 =0 WHERE autocommflag = 1
This SQL statement assumes you've set up the job as User Job 1, and will only update those recordings already set to flag commercials.