Download
You can download the current version of Clover here: clover-0.1.tar.gz
News
I've identified a timing issue that can result in corrupt MPEG-TS streams that so far, no decoder can fix but only because they're not fault tolerant. I'll be updating the clover code to prevent this, but I'm also working on an MPEG-TS repairing tool for the heck of it. Expect an update to clover-0.3 before the weekend.
Project Details
- Description
- A CLI utility for capturing video via firewire from digital cable boxes for OSX. Clover will output MPEG-TS (transport-stream) formatted files to disk which you can then view using most modern video players.
- OS Requirement
- Apple OSX 10.4 or higher. Might work with PPC, although I've only tested it on Intel.
- Compatible Cable Boxes
Motorola DCT-6200 is the only cable box I've tested on, but any digital cable box should work. If you are successful using Clover on some other type, let me know!
Usage
Clover is a CLI utility meaning you must execute it from a 'Terminal'. If you're unfamiliar with Terminal, Clover probably isn't going to be much use to you. If you're a CLI wiz, you'll be right at home. It's dead simple.
If your cable box is turned off, Clover will turn it on for you before attempting to record. Otherwise, here's your options as far as command line flags:
- -d <NUMBER_OF_MINUTES>
- duration to record
- -o <FILENAME>
- output filename
- -c [<NUMERIC_CHANNEL>]
- numeric channel to change to on startup. If you omit this flag it will simply record on whatever channel the cablebox is already on.
- -v
- verbosity, will show you lots of debugging messages. If omitted, Clover is very quiet.
- example
- If you wanted to record channel 702 (HD NBC in my market), for 60 minutes and output into a file named '~/myvideo.ts' you would run clover with the following arguments.
clover -d 60 -c 702 -o ~/myvideo.ts
Background
I got interested in this project a few years ago when I learned that by law in the United States digital cable providers must give customers a firewire port on their digital cable box.
Since all Macs ship with a firewire port, the marriage seemed pretty simple in my mind. I dug around and found the sample application AVCVideoCap.app from Apple's FireWireSDK26 SDK. AVCVideoCap.app uses AVCVideoServices.framework which is where all the magic happens.
Without knowing any Objective-C++ I spent a couple days working on it and ended up stripping out all of the GUI stuff and building a new interface for the recorder so that the it could be easily controlled by a CLI wrapper.
I clocked about 10 hours working from this beginning to end.
See Also
ComSkip for OSX - A automated CLI commercial editing utility
mpgtx mpeg toolkit - CLI tools for mpeg manipulation
ccextractor - CLI tool for extracting closed-captions from MPEG-TS streams.
ffmpeg - CLI video transcoding utility
AtomicParsley - CLI MPEG-4 metadata editor
liba52 - Free ATSC A/52 stream decoder
mpeg4ip - MPEG4 container builder utility
lame - MP3 library
FAAD2 and FAAC - AAC and AAD2 libraries
GPAC Project on Advanced Content - x264 dependency for mpeg4 output
XVID Codec (source) - The popular xvid codec.
Compiling libxvid for OSX - I found this useful, after configure I replaced my platform.inc with his and it would compile.
ffmpeg - like babelizer for video.
dvbsnoop - Neat program for analyzing DVB, sadly Linux only. Instead I'm going to be using...
hachoir - The coolest python package with the worst name.
5C DTCP 5C DTCP is the encryption mechanism used for MPEG-TS streams.