Hello all,

I was recently given the following set of MPEG-2 transport stream
file requirements and recommendations listed below and my goal is
find a hardware-based MPEG-2 encoder with linux support to
be able record and encode such files from a standard analog
composite NTSC + analog stereo audio source in realtime.

After going through all of the kernel drivers/modules in
/linux-2.6.28/drivers/media/video and comparing them with
their respective IC datasheets, it seems that the only two chips
(or series of chips) that have any hope of working are the
Conexant cx23415/16/18 which there appears to be quite
a bit of support for, or the Philips NXP saa6752 which I
only found one reference to as part of the saa7134 driver.

I should also mention that I'm a novice at MPEG encoding
in general so much of what's listed below is still foreign to me,
but I'm a quick learner...

My question is - am I on the right track with possibly using
Hauppauge HVR-1600 card(s) for this project? And, if so, is
it possible to accomplish what is needed using existing linux
drivers/software or would it still require some development/
coding?

Thanks in advance for any info.

-Brian



Minimum requirements:
1) The TS file should contain an MPEG-2 fixed rate transport stream (TS) 
multiplexed to a final rate of 19.392658 Mbps (+/-54 bps) as required by 
ATSC. A fixed rate multiplex is achieved by adding null packets to the 
combined audio, video and data table packets as needed to maintain the 
constant transport rate.

2) The TS multiplex should contain the desired video and audio programs 
encoded as valid MPEG-2 packetized elementary streams (PES) following 
the restrictions of ATSC document A/53b.

3) Each video access unit should be packaged in a unique PES packet, and 
each video access unit should contain a PTS/DTS stamp (A/53b).

4) The Program Clock Reference (PCR) should be encoded with the video PES.

5) The Video elementary stream should be encoded in one of the 18 
recommended ATSC frame-rate/resolution formats.

6) The Audio elementary stream should be an AC-3 compressed bit-stream 
per ATSC document A/52.

7) The TS should contain a valid Program Association Table (PAT) 
multiplexed at intervals of no more than 100mS from the beginning of the 
file to the end.

8) As required by MPEG-2, the PAT should have a Table I.D. 0x00 and be 
located at packet identifier (PID) 0x00.

9) The PAT should contain entries for all Program Map Tables (PMTs) 
needed to describe programs in the stream.

10) A valid version of each PMT should be multiplexed at intervals of no 
more than 400mS from the beginning of the file to the end.

11) As required by MPEG-2, the PMT tables should all have a Table I.D. 
of 0x02.


Recommendations for smooth file transitions:
1) The video PES should begin with a sequence header and the first GOP 
of the file should be CLOSED. IF THE FIRST GOP OF THE TS FILE CANNOT BE 
CLOSED, then 2 seconds or (tbd) frames of black should be added to the 
beginning and end of the UNCOMPRESSED clip with a smooth fade-in / 
fade-out.


Recommendations for best playback quality:
1) If possible, all source clips (before MPEG-2 compression) should be 
native HD1080i or 720p and encoded as 1080i or 720p streams.

2) The highest quality encoder settings should be used for a given 
source clip. This should result in the encoded video using as much of 
the available 19.39 Mbps TS capacity as possible (video bit-rate > 15 
Mbps recommended).

3) Recommended groups of pictures (GOP) structure:
3.1) Each GOP should begin with an I-frame.
3.2) GOPs should have M=3.
3.3) GOP size should be nominally 15 for 30fps source, 12 for 24fps source.

4) All files should begin and end on a whole transport stream packet and 
at whole PES packet boundaries. The first byte in the file should be the 
sync byte (0x47) of the first packet.

5) Every file must begin with a closed GOP. The first coded picture in 
the file must be an I-frame belonging to a closed GOP, but does not have 
to be the first byte in the file. (If the first GOP cannot be closed, a 
fade-in/out to/from black should be used.)

6) Each TS file should contain a multiplex of only one MPEG-2 
audio/video program. The audio and video elementary streams should be 
present throughout the file.

7) The single program entry in the PAT should be “Program 1”.
7.1) The PMT for the single program entry should have a PMT_PID value of 
0x10 (16).
7.2) The Video_PID value should be 0x11 (17).
7.3) The Audio_PID value should be 0x14 (20).

8) The Program Clock Reference (PCR) should be encoded with the video 
PES on PID 0x11 (17).

9) Each TS file should have valid place-holders and repetition for the 
minimum recommended ATSC PSIP tables, including MGT(required), 
TVCT(required), STT, RRT, and four EITs. Consumer equipment relies on 
the presence of PSIP to identify and acquire the ATSC channel.

10) If possible, all source clips (before MPEG-2 compression) should be 
native HD1080i. At a minimum all files in the same seamless list MUST be 
the same ATSC format (1080i, 720p, etc.) – this will ensure that all 
sequence headers are identical across the playlist boundaries, otherwise 
unpredictable consumer responses can occur at the format change points.


_______________________________________________
ivtv-devel mailing list
[email protected]
http://ivtvdriver.org/mailman/listinfo/ivtv-devel

Reply via email to