Discussion:
H264 encoding issues on iOS using version 7:3.2.12, but not 6:11.12
(too old to reply)
Chad Phillips
2018-11-02 15:47:52 UTC
Permalink
I run videoconferences via FreeSWITCH (https://freeswitch.com), which
provides H264 decoding/encoding via a wrapper module around libav. H264 is
a requirement for iOS access to these videoconferences, as that's the only
WebRTC codec it supports.

Upon upgrading from Debian Jessie to Debian Stretch, H264 encoding of
outbound video to iOS devices no longer works properly, either not sending
any video packets at all, or when it does, with a lot of delay (4-5
seconds) and freezing.

Since I compile FreeSWITCH from source, and am running the exact same code
base on Jessie and Stretch, I suspect the issue is due to a change in
packages FreeSWITCH depends upon. Since libav is the package FreeSWITCH
leverages to perform the transcoding, and the package versions differ, it
seems a good place to start looking for the issue. Here are the version
differences between Jessie and Stretch:

JESSIE:
Package: libavcodec-extra-56
Version: 6:11.12-1~deb8u1

STRETCH:
Package: libavcodec57
Version: 7:3.2.12-1~deb9u1

Have there been any API or configuration changes between these versions
that might explain the issue I'm experiencing?

Also, if anyone believes they can diagnose and solve this issue directly,
I'd be open to paying for help.
Luca Barbato
2018-11-03 18:15:41 UTC
Permalink
Post by Chad Phillips
I run videoconferences via FreeSWITCH (https://freeswitch.com), which
provides H264 decoding/encoding via a wrapper module around libav. H264 is
a requirement for iOS access to these videoconferences, as that's the only
WebRTC codec it supports.
Upon upgrading from Debian Jessie to Debian Stretch, H264 encoding of
outbound video to iOS devices no longer works properly, either not sending
any video packets at all, or when it does, with a lot of delay (4-5
seconds) and freezing.
Since I compile FreeSWITCH from source, and am running the exact same code
base on Jessie and Stretch, I suspect the issue is due to a change in
packages FreeSWITCH depends upon. Since libav is the package FreeSWITCH
leverages to perform the transcoding, and the package versions differ, it
seems a good place to start looking for the issue. Here are the version
Package: libavcodec-extra-56
Version: 6:11.12-1~deb8u1
Package: libavcodec57
Version: 7:3.2.12-1~deb9u1
Have there been any API or configuration changes between these versions
that might explain the issue I'm experiencing?
One is libav, the other looks like is FFmpeg.
Post by Chad Phillips
Also, if anyone believes they can diagnose and solve this issue directly,
I'd be open to paying for help.
I would suggest you to install the current libav and see if the problem
persist.

lu
Chad Phillips
2018-11-04 03:44:47 UTC
Permalink
Luca,

Tried updating to FFmpeg 4.0.3, which seems to include the latest of all
the necessary libav stuff the FreeSWITCH wrapper module depends on
(libavcodec, etc.)

The problem persists. The delay seems to have dropped some, now down to
about 2 seconds from 4-5 seconds, but still pretty bad. Still getting lots
of freezing and situations where there's no video data sent along the peer
connection.
Post by Chad Phillips
Post by Chad Phillips
I run videoconferences via FreeSWITCH (https://freeswitch.com), which
provides H264 decoding/encoding via a wrapper module around libav. H264
is
Post by Chad Phillips
a requirement for iOS access to these videoconferences, as that's the
only
Post by Chad Phillips
WebRTC codec it supports.
Upon upgrading from Debian Jessie to Debian Stretch, H264 encoding of
outbound video to iOS devices no longer works properly, either not
sending
Post by Chad Phillips
any video packets at all, or when it does, with a lot of delay (4-5
seconds) and freezing.
Since I compile FreeSWITCH from source, and am running the exact same
code
Post by Chad Phillips
base on Jessie and Stretch, I suspect the issue is due to a change in
packages FreeSWITCH depends upon. Since libav is the package FreeSWITCH
leverages to perform the transcoding, and the package versions differ, it
seems a good place to start looking for the issue. Here are the version
Package: libavcodec-extra-56
Version: 6:11.12-1~deb8u1
Package: libavcodec57
Version: 7:3.2.12-1~deb9u1
Have there been any API or configuration changes between these versions
that might explain the issue I'm experiencing?
One is libav, the other looks like is FFmpeg.
Post by Chad Phillips
Also, if anyone believes they can diagnose and solve this issue directly,
I'd be open to paying for help.
I would suggest you to install the current libav and see if the problem
persist.
lu
_______________________________________________
libav-devel mailing list
https://lists.libav.org/mailman/listinfo/libav-devel
Luca Barbato
2018-11-04 11:14:48 UTC
Permalink
Post by Chad Phillips
Luca,
Tried updating to FFmpeg 4.0.3, which seems to include the latest of all
the necessary libav stuff the FreeSWITCH wrapper module depends on
(libavcodec, etc.)
The problem persists. The delay seems to have dropped some, now down to
about 2 seconds from 4-5 seconds, but still pretty bad. Still getting lots
of freezing and situations where there's no video data sent along the peer
connection.
Use libav git, libav and FFmpeg are different projects.

lu
Chad Phillips
2018-11-04 19:20:45 UTC
Permalink
Latest libav git compiled with x264 encoder support does the trick, thank
you for the tip!
Post by Luca Barbato
Post by Chad Phillips
Luca,
Tried updating to FFmpeg 4.0.3, which seems to include the latest of all
the necessary libav stuff the FreeSWITCH wrapper module depends on
(libavcodec, etc.)
The problem persists. The delay seems to have dropped some, now down to
about 2 seconds from 4-5 seconds, but still pretty bad. Still getting
lots
Post by Chad Phillips
of freezing and situations where there's no video data sent along the
peer
Post by Chad Phillips
connection.
Use libav git, libav and FFmpeg are different projects.
lu
_______________________________________________
libav-devel mailing list
https://lists.libav.org/mailman/listinfo/libav-devel
Continue reading on narkive:
Loading...