linphone-developers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Linphone-developers] Support packetization-mode=0 in H.264 When Usi


From: François Grisez
Subject: Re: [Linphone-developers] Support packetization-mode=0 in H.264 When Using iOS VideoToolbox
Date: Mon, 21 Nov 2016 09:01:23 +0100
User-agent: KMail/5.3.3 (Linux/4.8.8-2-ARCH; KDE/5.27.0; x86_64; ; )

Hi Li,

 

Usually we set our H264 encoding filters to use the rfc3984 packer in 0 mode. But to do that we set the encoders to ensure they give us encoded data smaller or equal to the MTU. The VideoToolbox framework in theory enables us to set such a restriction through the MaxH264SliceBytes encoder property. But experience shows us this property does not work on devices we used for testing.

 

Given that we had to set the rfc3984 packer to 1 mode in order it fragments packets at RTP layer because IP fragmentation is not equally supported between all the Internet providers. Even some does not support it at all and drops packets that does not match MTU causing holes in the video stream.

 

Then, for all these reasons, we doesn't think that it is possible to have a good video quality if you set the rfc3984 packer to 0 mode. Maybe that could work on specific ISP network but not universally.

 

Best regards,

--

François Grisez

Software Engineer

Belledonne Communications


On Friday, November 18, 2016 4:25:01 PM CET Li Qian wrote:

Dear Linphone developers,


When using Linphone iOS app, with the iOS native H.264 encoder/decoder which uses VideoToolbox.framework, when call to some video phone model, it is one way video. The video phone cannot see the video, but Linphone iOS can see the video.


After hours of investigation, I found out that, when using VideoToolbox.framework to encode the video, it will call


rfc3984_set_mode(&ctx->packer_ctx, 1);


to tell the RTP packer to do fragmentation, i.e. packetization-mode=1, which results in FU-A packets. I compared the WireShark capture, I think those video phones which cannot see the video may not support that mode. So, I tried to do


rfc3984_set_mode(&ctx->packer_ctx, 0);

ctx->packer_ctx.maxsz = INT_MAX;


and hoping that IP layer can take care of the fragmentation if necessary. Then the video quality becomes very bad...


Is it possible to make the encoder to support packetization-mode=0 while still having the good performance when using VideoToolbox.framework?


Looking forward to your reply.


Best Regards,

Li



Attachment: signature.asc
Description: This is a digitally signed message part.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]