- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
I want to get the h264 NAL header before its sent to the IPP decoder function, I get for a camera an RTP+H264 stream, with the following values:
I skip 12bytes of the RTP header, but the next byte which I think it should be the NAL header begins by 0 (forbidden_zero_bit) but I get
10.. .... = Version: RFC 1889 Version (2)
0... .... = Marker: False
..0. .... = Padding: False
...0 .... = Extension: False
.... 0000 = Contributing source identifiers count: 0
Payload type: DynamicRTP-Type-96 (96)
Sequence number: 23252
Timestamp: 868956473
Synchronization Source identifier: 0xcbd5dcba (3419790522)
Payload: 7C05FFE5F98EB9B5AED78E67EB3C2A941606A7CCD179710B...
So my first byte its a hex "7C", 1111100b i read i have to parse it with hexadecimal values:
NAL_forbidden = headerStart(0) And &H80 --> i get a zero
NAL_nri = (headerStart(0) >> 5) And &H3 --> i get a 3
NAL_type = headerStart(0) And &H1F --> --> i get a 28
[1.] But i dont really dont know why i have to parse with those values.. i know its a silly question.. could anyone tell me why??
[2.] And then i always get FU packets.. could it be correct?
[3.] I want to decode the h264, so which IPP library do i need?
Thanks for your help!
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
It looks like your stream includes some fragmented H.264 frames, using the FU-A markers. So prior to decode it using the IPPs, you should consider defragmenting it into 'pure' NALs, as described in the RFC3984 document (http://www.faqs.org/rfcs/rfc3984.html).
Regards,
J. Michelet
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks jmichelet!!!
I have to concatenate the FU-A payload units before i send them to the decode. But how can i know the FU-A payload size??
I have the same problem with IDR, non-IDR NAL units,, how can i know the size so i can split the rtp padding??
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
Since the UDP header contains the datagram length, by carefully removing the RTP header length (its length may vary, as described in the RFC 3550), you easily get the rtp payload length.
J. Michelet
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
From SDP message I get packetization mode 1 so I will have in FU-A IDR images type I and in FU-A non-IDR type I and P (I also have baseline profile) and so on. Please correct me if im wrong:
A RTP message could have many NAL units
A FU-A unit only have a part of the NAL unit
In the standard ISO/IEC 14496 part 10:
slice_layer_without_partitioning_rbsp( ) {
slice_header()
slice_data()
rbsp_slice_trailing_bits( )
}
So, its only ONE slice header and MULTIPLE pictures coded in ONE slice data??
If this is true, I have to parse the slice data in order to get each picture, havent i?
Thanks in advance for your help.
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page