[mythtv-users] I'd like to find out more about the recordedmarkup table and MARK_GOP_START
Michael T. Dean
mtdean at thirdcontact.com
Wed Jun 7 23:37:51 UTC 2006
On 06/06/2006 10:30 PM, Richard Bronosky wrote:
>On 6/6/06, Michael T. Dean <mtdean at thirdcontact.com> wrote:
>
>
>>Actually, if you're recording MPEG-2 streams (i.e. from a PVR-x50/500),
>>you'll write around 2 records per second into the recordedmarkup table.
>>That table is used to store the "seektable" information, which includes
>>every keyframe in MPEG-2 videos, where PVR-x50's generally use one
>>keyframe per group of 15 pictures.
>>
>>
>
>I think I'm starting to understand this. The type 6, or
>MARK_GOP_START, entries in the recordedmarkup table indicate the frame
>offset of the keyframe of a group or pictures.
>
Exactly.
> (since Hauppage card
>use a GOP size of 15, and NTSC is 29.97f/s that's about 3 inserts per
>minute.)
>
>
Confusing units? Assuming 15 frames/GOP and 30 frames/second (for easy
math), that's 2 GOP starts per second, meaning 120 per minute = 7200 per
hour.
Note, though, that you can change the number of frames/GOP with ivtvctl
("-c"/"--set-codec-params" option).
Preface the rest of the response with AIUI...
Larger GOP size should result in lower quality for scenes with a lot of
movement. Smaller GOP size would result in larger files (less
compression) assuming bitrate were allowed to grow. Since we specify
bitrate, a smaller GOP size would mean we have fewer "quality" bits
available (because more bits are being used for I-frames--which take the
most space), so quality can actually decrease. You would have to
specify a larger bitrate to get better quality from smaller GOP's. The
most-commonly used sizes are 15 and 12 frames.
>Is the "seektable information" the mysql table, or is it actually meta
>data in the recording file?
>
>
It's in the MySQL table called recordedmarkup, but so is other
information. That being said, the information can be derived from
reading the MPEG stream, so you could say the information is "in the
recording file; however, it has not yet been coalesced into a
"seektable": the information is spread throughout the entire
recording. However, by deriving the information before it's necessary,
skipping/jumping (a.k.a. seeking) can be made much faster (thus,
"seektable").
I think someone (Stuart?) is working on pulling the seektable
information out of recordedmarkup or pulling the other information out
of recordedmarkup so that we'll have a table with just the seektable
information and a table with just the other information (markup like
bookmarks, commercial flagging information, etc.).
>I originally understood that the seektable was in the recording. I
>was confused as to where MythTV had to add that info to the recording,
>or if my Hauppage did that for me.
>
>
Actually, the information is pulled from the recording (i.e. from frame
types I, P, and B--which are generated by the PVR-x50 according to the
structure specified using ivtvctl) by Myth and stored in the database to
allow for fast seeking.
Mike
More information about the mythtv-users
mailing list