[Live-devel] NAL Unit FU header

Milos Jakovljevic milos.jakovljevic at nittbit.com
Fri Mar 31 03:33:35 PDT 2023


On Thu, Mar 30, 2023 at 11:06 PM Ross Finlayson <finlayson at live555.com>
wrote:

>
>
> > On Mar 31, 2023, at 4:45 AM, Milos Jakovljevic <
> milos.jakovljevic at nittbit.com> wrote:
> >
> > Hi everyone,
> >
> > I'm receiving a 4K HEVC stream from the remote server. All the NAL units
> seem to be fragments but for some reason NAL type is always either 1 or 19
> apart from Non-VCL types.
> >
> > I'm trying to figure out how I would recognize if its a fragment ? Am i
> missing something?
>
> Your question was rather vague - you don’t explain exactly how you’re
> using the “LIVE555 Streaming Media” code.  But from the context, I presume
> that you’re using it as a RTSP client, rather than as a RTSP server.
>
> Note that the LIVE555 RTSP/RTP implementation automatically handles
> fragmentation/defragmentation of H.264 (and H.265) NAL units into RTP
> packets - at both the server end and the client end.  As a programmer, you
> don’t need to concern yourself with RTP fragmentation.  The LIVE555 RTSP
> client code will deliver complete NAL units - so that’s what you should be
> receiving: Complete NAL units (which might include video frame ‘slices’ -
> not necessarily complete video frames).
>
> A reminder that if you’re testing the LIVE555 RTSP client implementation
> against a remote RTSP stream (whether or not its server is also written
> using the LIVE555 code), then the best way to begin is using our
> command-line “openRTSP” RTSP client; see
>         http://live555.com/openRTSP/
>
>
> (You can also use VLC - as it uses the LIVE555 code (when acting as a RTSP
> client) - but the “openRTSP” code is easier to understand.)
>
> Ross Finlayson
> Live Networks, Inc.
> http://www.live555.com/
>
>
> _______________________________________________
> live-devel mailing list
> live-devel at lists.live555.com
> http://lists.live555.com/mailman/listinfo/live-devel


Hi Ross,

Thank you for your response. I wanted to provide more details regarding the
issue I'm facing.

I'm currently using LIVE555 as an RTSP client in my library, and I'm
experiencing an issue with HEVC 4K streams. Specifically, when I decode NAL
units, I'm only able to view 1/3 of the picture, while the remaining 2/3 is
green (you can view an example here: https://ibb.co/C8yFygm).

Upon further investigation, I discovered that I'm receiving three NAL units
with the same timestamp, which I assume are fragments of the same picture.
However, I'm having trouble figuring out how to recognize if the NAL units
are fragments and how to merge them before sending them to the decoder.

Below is the example output of the sink:

nal unit type: 32 layer id: 0 ts: 1680258047669
nal unit type: 33 layer id: 1 ts: 1680258047669
nal unit type: 34 layer id: 0 ts: 1680258047669
nal unit type: 19 layer id: 1 ts: 1680258047669
nal unit type: 19 layer id: 1 ts: 1680258047669
nal unit type: 19 layer id: 1 ts: 1680258047669
nal unit type: 1 layer id: 1 ts: 1680258047749
nal unit type: 1 layer id: 1 ts: 1680258047749
nal unit type: 1 layer id: 1 ts: 1680258047749
nal unit type: 1 layer id: 1 ts: 1680258047829
nal unit type: 1 layer id: 1 ts: 1680258047829
nal unit type: 1 layer id: 1 ts: 1680258047829
nal unit type: 1 layer id: 1 ts: 1680258047909
nal unit type: 1 layer id: 1 ts: 1680258047909
nal unit type: 1 layer id: 1 ts: 1680258047909
nal unit type: 1 layer id: 1 ts: 1680258047989
nal unit type: 1 layer id: 1 ts: 1680258047989
nal unit type: 1 layer id: 1 ts: 1680258047989
nal unit type: 1 layer id: 1 ts: 1680258048069
nal unit type: 1 layer id: 1 ts: 1680258048069
nal unit type: 1 layer id: 1 ts: 1680258048069

If you have any insight or suggestions on how I can resolve this issue,
please let me know.

Thank you for your time and assistance.

Best regards,
Milos
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.live555.com/pipermail/live-devel/attachments/20230331/3c93e553/attachment.htm>


More information about the live-devel mailing list