> However, with ffmpeg casted stream, I get frames along these lines (this is 
> what "afterGettingFrame" of my modified DummySink passes me):
> 
> nal_unit_type : 7 ( Sequence parameter set )
> nal_unit_type : 8 ( Picture parameter set )
> nal_unit_type : 5 ( Coded slice of an IDR picture )
> nal_unit_type : 5 ( Coded slice of an IDR picture )
> nal_unit_type : 5 ( Coded slice of an IDR picture )
> nal_unit_type : 5 ( Coded slice of an IDR picture )
> nal_unit_type : 1 ( Coded slice of a non-IDR picture )
> nal_unit_type : 1 ( Coded slice of a non-IDR picture )
> 
> It seems that the I frame is in multiple slices.

This is actually very good.  For streaming H.264 (or H.265) video, it is much 
better to be transmitting key frames as multiple ‘slice’ NAL units, rather than 
as a single (very large) ‘key frame’ NAL unit.  This makes your stream much 
more resilient to network packet loss.


>  I assumed that live555 would compose the slices and give me the I frames as 
> a single slice/nal unit.

No.  When streaming (transmitting and/or receiving) H.264/H.265 video, the 
LIVE555 library deals with NAL units, not complete frames (‘pictures’).  When a 
frame (e.g., a key frame) is broken up into multiple ‘slice’ NAL units, our 
library transmits/receives each of these ‘slice’ NAL units individually.  When 
receiving the stream, our library does not attempt to ‘reassemble’ the slices 
into a complete picture; that's the job of the H.264 decoder/renderer (i.e., 
for your media player).


Ross Finlayson
Live Networks, Inc.
http://www.live555.com/


_______________________________________________
live-devel mailing list
live-devel@lists.live555.com
http://lists.live555.com/mailman/listinfo/live-devel

Reply via email to