[MPlayer-dev-eng] Can MPLAYER demux conveying a SL stream inPES over mpeg2-ts stream?
Deckard
hwrhee at erfsystem.com
Wed Feb 23 05:14:21 CET 2005
Hi, Nico.
Nico Wrote:
> Hi,
> I looked at those samples.
> In mbc.ts video seems to be contained in pid 80, audio in 64.
> If pid 80 contains H264 then it seems it's not in bytestream format
> (e.g. NAL units preceded by the classical 0x000001 3 bytes).
> If so, I wonder if libavcodec's h264 decoder can even decode it.
> Can you confirm?
I played h.264-ES with libavcodec's h264 decoder.
h.264-ES is encoded by x264
I upload this file at
ftp://www.mplayerhq.hu/MPlayer/incoming/to-nico-dmb-stream/
Check this h264 file.
>
> Audio seems to be in frames beginning with 0x00 00 03 71. Does anyone
> know what it is?
> Faad doesn't seems to recognize it as AAC.
DMB stream has 14496-3 ER-BSAC audio.
Is AAC the same audio stream that encoded by ER-BSAC?
>
> In kbs.mpg video is still in pid 80 but preceded by 0x 00 00 01 2x start
> codes.
>
> There's an additional problem:
> reading your description of the SL header posted saturday I can't find a
> way to
> identify the codec used, yet SL can be used (as stated in the specs) to
> transport
This is examples of IOD/OD/BIFS in DMB stream.
OD_stream
ES_ID : 1
OD_ID : 0
URL : 0
BIFS_stream
ES_ID : 2
OD_ID : 0
URL : 0
Audio Object
ES_ID : 101
OD_ID : 10
URL : 10
Video Object
ES_ID : 201
OD_ID : 20
URL : 20
ObjectTypeIndication in DecoderConfigDescriptor
0x02 System ISO_IEC 14496-1
0x21 Visual ISO_IEC 14496-10(h.264)
0x40 Audio ISO_IEC 14496-3(ER-BSAC)
StreamType in DecoderConfigDescriptor
0x01 ObjectDescriptorStream
0x02 ClockReferenceStream
0x03 SceneDescriptionStream
0x04 VisualStream
0x05 AudioStream
***IOD section.***
Field : InitialObjectDescriptor //Value
bit(8) InitialObjectDescriptor tag //0x02
(16) descriptor size //---
(10) ObjectDescriptorID //0
(1) URL_Flag //0
(1) includeInlineProfilesFlag //0
(4) Reserved //15
(8) ODProfileLevelIndication 1 //0x01
(8) sceneProfileLevelIndication //0x0C
(8) audioProfileLevelIndication //0x23
(8) visualProfileLevelIndication
(8) graphicsProfileLevelIndication//0x04
Field : ES_Descriptor(OD) //Value
(8) ES_Descriptor tag //0x03
(8) descriptor size //---
(16) ES_ID //1
(1) streamDependenceFlag //0
(1) URL_Flag //0
(1) OCRstreamFlag //0
(5) streamPriority //0
Field : DecoderConfigDescriptor(OD) //Value
(8) DecoderConfigDescriptor tag //0x04
(8) descriptor size //---
(8) objectTypeIndication //1
(6) streamType //1
(1) Upstream //0
(1) Reserved //1
(24) bufferSizeDB //250
(32) maxBitrate //0
(32) avgBitrate //0
Field : SLConfigDescriptor(OD) //Value
(8) SLConfigDescriptor tag //0x06
(8) descriptor size //---
(8) Predefined //0
(1) useAccessUnitStartFlag //1
(1) useAccessUnitEndFlag //1
(1) useRandomAccessPointFlag //0
(1) hasRandomAccessUnitsOnlyFlag //0
(1) usePaddingFlag //0
(1) useTimeStampsFlag //1
(1) useIdleFlag //1
(1) durationFlag //0
(32) timeStampResolution //90000
(32) OCRResolution //90000
(8) timeStampLength //33
(8) OCRLength //33
(8) AU_Length //0
(8) instantBitrateLength //---
(4) degradationPriorityLength //0
(5) AU_seqNumLength //0
(5) Packet_SeqNumLength //0
(2) Reserved //3(0b11)
Field : ES_Descriptor(BIFS) //Value
(8) ES_Descriptor tag //0x03
(8) descriptor size //---
(16) ES_ID //2
(1) streamDependenceFlag //0
(1) URL_Flag //0
(1) OCRstreamFlag //0
(5) streamPriority //0
Field : DecoderConfigDescriptor(BIFS) //Value
(8) DecoderConfigDescriptor tag //0x04
(8) descriptor size //---
(8) objectTypeIndication //2
(6) streamType //3
(1) Upstream //0
(1) Reserved //1
(24) bufferSizeDB //22
(32) maxBitrate //0
(32) avgBitrate //0
Field : SLConfigDescriptor(BIFS) //Value
(8) SLConfigDescriptor tag //0x06
(8) descriptor size //---
(8) Predefined //0
(1) useAccessUnitStartFlag //1
(1) useAccessUnitEndFlag //1
(1) useRandomAccessPointFlag //0
(1) hasRandomAccessUnitsOnlyFlag //0
(1) usePaddingFlag //0
(1) useTimeStampsFlag //1
(1) useIdleFlag //1
(1) durationFlag //0
(32) timeStampResolution //90000
(32) OCRResolution //90000
(8) timeStampLength //33
(8) OCRLength //33
(8) AU_Length //0
(8) instantBitrateLength //---
(4) degradationPriorityLength //0
(5) AU_seqNumLength //0
(5) Packet_SeqNumLength //0
(2) Reserved //3(0b11)
***OD section. Stream include only audio and video object.***
Field : ObjectDescriptorUpdate //value
(8) ObjectDescriptorUpdate tag //0x01
(8) descriptor size //---
Field : ObjectDescriptor(video) //value
(8) ObjectDescriptor tag //0x01
(8) descriptor size //---
(10) ObjectDescriptorID //20
(1) URL_Flag //0
(5) Reserved //31
Field : ES_Descriptor(video) //value
(8) ES_Descriptor tag //0x03
(8) descriptor size //---
(16) ES_ID //201
(1) streamDependenceFlag //0
(1) URL_Flag //0
(1) OCRstreamFlag //1
(5) streamPriority //4
(16) OCR_ES_ID //101
Field : DecoderConfigDescriptor(video) //value
(8) DecoderConfigDescriptor tag //0x04
(8) descriptor size //---
(8) objectTypeIndication //0x21
(6) streamType //4
(1) upstream //0
(1) Reserved //1
(24) bufferSizeDB //---
(32) maxBitrate //---
(32) avgBitrate //---
Field :DecoderSpecificInfo(video) //value
(8) DecoderSpecificInfo tag //0x05
(8) descriptor size //---
(8*) DecoderSpecificInfo data //---
Field : SLConfigDescriptor(video) //value
(8) SLConfigDescriptor tag //0x06
(8) descriptor size //---
(8) Predefined //0
(1) useAccessUnitStartFlag //1
(1) useAccessUnitEndFlag //1
(1) useRandomAccessPointFlag //0
(1) hasRandomAccessUnitsOnlyFlag //0
(1) usePaddingFlag //0
(1) useTimeStampsFlag //1
(1) useIdleFlag //1
(1) durationFlag //0
(32) timeStampResolution //90000
(32) OCRResolution //90000
(8) timeStampLength //33
(8) OCRLength //33
(8) AU_Length //0
(8) instantBitrateLength //---
(4) degradationPriorityLength //0
(5) AU_seqNumLength //0
(5) Packet_SeqNumLength //0
(2) Reserved //3(0b11)
Field : ObjectDescriptor(audio) //value
(8) ObjectDescriptor tag //0x01
(8) descriptor size //---
(10) ObjectDescriptorID //10
(1) URL_Flag //0
(5) Reserved 31
Field : ES_Descriptor(audio) //value
(8) ES_Descriptor tag //0x03
(8) descriptor size //---
(16) ES_ID //101
(1) streamDependenceFlag //0
(1) URL_Flag //0
(1) OCRstreamFlag //0
(5) streamPriority //5
Field : DecoderConfigDescriptor(audio) //value
(8) DecoderConfigDescriptor tag //0x04
(8) descriptor size //---
(8) objectTypeIndication //0x40
(6) streamType //5
(1) upstream //0
(1) Reserved //1
(24) bufferSizeDB //---
(32) maxBitrate //---
(32) avgBitrate //---
Field : DecoderSpecificInfo(audio) //value
(8) DecoderSpecificInfo tag //0x05
(8) descriptor size //---
(8*) DecoderSpecificInfo data //---
Field : SLConfigDescriptor(audio) //value
(8) SLConfigDescriptor tag //0x06
(8) descriptor size //---
(8) Predefined //0
(1) useAccessUnitStartFlag //1
(1) useAccessUnitEndFlag //1
(1) useRandomAccessPointFlag //0
(1) hasRandomAccessUnitsOnlyFlag //0
(1) usePaddingFlag //0
(1) useTimeStampsFlag //1
(1) useIdleFlag //1
(1) durationFlag //0
(32) timeStampResolution //90000
(32) OCRResolution //90000
(8) timeStampLength //33
(8) OCRLength //33
(8) AU_Length //0
(8) instantBitrateLength //---
(4) degradationPriorityLength //0
(5) AU_seqNumLength //0
(5) Packet_SeqNumLength //0
(2) Reserved //3(0b11)
> mpeg4video, too.
> So how to tell which is which?
> Are there descriptors specific to mpeg4 and h264 stored in the PMT ?
>
there are descriptors in OD_stream.
PMT knows only connections between ES_ID and PID.
You refer to these sections.
13818-1:2000(E) 2.6.40 IOD Descriptor
2.6.42 SL Descriptor
2.6.46 External_ES_ID_descriptor
2.11.3 carriage of 14496 stream.
And Annex R section.
Thanks.
Deckard.
More information about the MPlayer-dev-eng
mailing list