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
ivtv-devel@ivtvdriver.org
http://ivtvdriver.org/mailman/listinfo/ivtv-devel
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
ivtv-devel@ivtvdriver.org
http://ivtvdriver.org/mailman/listinfo/ivtv-devel