|
From: | Li Qian |
Subject: | Re: [Linphone-developers] Support packetization-mode=0 in H.264 When Using iOS VideoToolbox |
Date: | Tue, 22 Nov 2016 11:55:41 +0800 |
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
_______________________________________________
Linphone-developers mailing list
address@hidden
https://lists.nongnu.org/mailman/listinfo/linphone- developers
[Prev in Thread] | Current Thread | [Next in Thread] |