[Live-devel] Fragmented intra frames

sampsa sampsa.riikonen at dasys.fi
Fri Sep 23 06:26:47 PDT 2016


Thanks Ross,

Still one tiny bonus question / discussion, please.

I have never quite got the advantage of frame fragmentation, i.e. let's 
consider a large intra frame and the two cases:

1) Sending the intra frame as a single huge packet

2) Sending the intra frame as a series of smaller packets

The behaviour for the two cases in the case of packet loss:

1) The whole intra frame is lost, must wait for the next one

2) A one slice of the intra frame is lost .. making the whole 
intra-frame useless.
=> The whole intra frame is lost, must wait for the next one

So, the result in cases (1) and (2) is exactly the same.

Moreover, in a situation when there are packet bursts / "swarming" , 
like when working over a crowded wifi, and when the wifi station starts 
dropping packets .. the wifi router might actually decide to drop a 
small single packet (case (2)), rather than a huge (case (1)) packet 
(that might, for its size, seem to be more "important").  Of course, 
this depends on the software running on the router .. this is just a 
wild speculation.

Is method (2) advantageous because it is supposed to balance the overall 
network in a more efficient way, and for this reason, there should be no 
packet loss in the first place?

Regards,

Sampsa



On 23.09.2016 15:56, Ross Finlayson wrote:
>> The only logical way of making sense of all this is ..
>>
>> UDP packets: max ~ 65 kB
> Yes, in principle.  However, our code, by default, sets a maximum UDP packet size of about 1500 bytes.  (You can change this by calling "MultiFramedRTPSink::setPacketSizes()”, but you should do so only if you know for sure that you’re streaming only over networks that support large UDP packets.)
>
>> => are assembled to .. => (this is done by live555)
>> NAL slices
> Yes, that’s correct.  Note that the receiver must get *all* RTP/UDP packets that make up a NAL unit (e.g., slice); otherwise the whole NAL unit will be rejected/discarded.  That’s why - for streaming - it’s important to break large ‘key frame’ NAL units into multiple slices.
>
>> => are assembled to .. => (done by the encoder)
>> Complete frames, made of several NAL slices
>>
>> Am I on the right track here .. ?
> Exactly right!
>
>
> 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



More information about the live-devel mailing list