[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