http://home.t-online.de/home/rhtm.e/gopdit/

I've seen this program mentioned once here, but think maybe it
deserves highlighting, as it seems to answer a frequent question:
how to quickly cut out commercials from an MPEG-2 stream without
re-encoding the whole thing or losing audio/visual sync (as happens
with avidemux).

There's still a bit of unknown here. When the Hauppauge card glitches (as is more often then case when trying to record from a tape, rather than from cable/broadcast), it will fix a broken frame by adjusting the PTS/DTS. That is why avidemux breaks.... it can only handle a single, static offset between A and V.... changing the PTS/DTS mid-stream isn't handled correctly by avidemux and sync breaks. I haven't looked through the code of gopdit enough yet, but from talking with the author, I think that nothing is done to correct the big "time-hole" left when a commercial is cut out. Most players will play it anyway, but trying to edit a cut file might not work. Replex seemed to glue it back together, though...

Gopdit does this by cutting at GOP boundaries, and doing no
re-encoding.  The author uses it specifically for streams from ATI
and Hauppauge encoders.  I tested it with something I recorded using
"cat /dev/video0 > file.mpg" using my PVR-350, and the trimmed file
had no a/v sync problems.

There's more issues here. As gopdit docs claim, if the GOPs are closed, it works better than if they're open. I'm still not completely sure how the streams out of the PVR-250, but I *have* seen both open (ivtv-0.1.9 capture) and closed (ivtv-0.1.100zz or whatever). Gopdit marks the cut GOPS (correctly) as "broken" according to the MPEG2 spec.

The 0.2.3-pre experimental version can be run non-interactively (no
GUI) and take the cutlist from a file.  So this could be used to
automatically cut commercials if we can figure out how to translate
myth's cutlist info into one of the formats that gopdit understands.

I mentioned to the author that there was a need for this a few weeks ago and he pounded out the gui-less option. He said it was still rather raw, but it does appear to function. The nice thing is you can run the GUI to set the ~/.gopditrc options, then run it without X to do some crunching.

I've attached the gopdit edit list format info below;  can
someone tell me how the myth cut list is stored?  The author
of gopdit expressed willingness to have gopdit support other
edit list formats, but it might be simpler to get myth to
generate one of the formats below.

I wasn't aware that he'd added the ability to deal with other cutlist formats. That's quite good because I belive that the MythTV format is a combination of frame and file offset... someone correct me if I'm wrong. An exported .sql of an MPEG-2 .nuv with a cutlist says something like this:

INSERT INTO recorded (findid, programid, recgroup, hostname, previouslyshown, lastmodified,cutlist, commflagged, starttime, autoexpire, editing, preserve, endtime, category, deletepending, originalairdate, stars, chanid, description, filesize, subtitle, bookmark, recordid, title, seriesid) VALUES
('0', 'EP1031150049', 'Default', 'mythtv.bogus.net', '1', '20050304072930',
'1375 -3537
19199 - 25270
39917 - 47141
62056 - 68987
77522 - 84335
110485 - 111395
', '1', '2005-02-09 06:58:00', '1', '0', '0', '2005-02-09 08:00:00', 'Documentary', '0', '00
00-00-00', '0', '1049', 'The Alaska pipeline carries crude oil 800 miles across the state.',
'1669148608', 'The Alaskan Oil Pipeline', NULL, '703', 'Modern Marvels', 'SH103115');


<The big SNIP>

      ('1373', '2005-02-09 06:58:00', '6', '1049', '300929062'),
        ('1374', '2005-02-09 06:58:00', '6', '1049', '301137958'),
        ('1375', '2005-02-09 06:58:00', '3', '1049', NULL),
        ('1375', '2005-02-09 06:58:00', '4', '1049', NULL),
        ('1375', '2005-02-09 06:58:00', '6', '1049', '301355046'),

If I'm not mistaken, the 1375-3537, etc are the frames in the cutlist, and the '301355046' is the file offset. What I don't understand is that on the one hand the '6' in #1375 says it's a MARK_GOP_START = 6, (from programinfo.h). It's also a MARK_BLANK_FRAME = 3 and MARK_COMM_START = 4. How can it be a GOP start point on one hand, but a frame count in the other?

Anyway, I would say that all the data is there (whether it be file offset or frame number). It shouldn't be a big deal to convert it into gopdit.

-Cory

*************************************************************************
* Cory Papenfuss                                                        *
* Electrical Engineering candidate Ph.D. graduate student               *
* Virginia Polytechnic Institute and State University                   *
*************************************************************************

_______________________________________________
mythtv-users mailing list
[email protected]
http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-users

Reply via email to