packet_loss implementation with libopus and rtpengine

18 views
Skip to first unread message

Pavel Eremin

unread,
Oct 5, 2022, 5:10:25 AM10/5/22
to rtpe...@googlegroups.com

*Does anyone have successfully  used "packet_loss" option with rtpengine and libopus?*

Hi, i have checked opus "packet_loss" option with rtpengine 11.0.1.5.

Rtpengine does not send codec private options like packet_loss to libopus, you can send any of global ffmpeg options with addional slashes like "codec-transcode-opus//////compression_level--1", but if you try send "codec-transcode-opus//////packet_loss--10" you will get "Option not found" message from avlog.

I have to set:
codeclib_set_av_opt_int(enc, "packet_loss", 30);
codeclib_set_av_opt_int(enc, "fec", 1);
into lib/codeclib.c to send this options to ffmpeg.

I am not sure if i did it in right way. But if yes, then some issue is present when rtpengine parsing options for codecs.

For me, there is one question is still misunderstanding, if i set packet_loss option, then i can not feel any additional profit in case of packets loss on the endpoint side.


Does anyone have successfully  used "packet_loss" option with rtpengine and libopus?

Richard Fuchs

unread,
Oct 5, 2022, 8:14:22 AM10/5/22
to rtpe...@googlegroups.com
On 05/10/2022 05.10, [EXT] Pavel Eremin wrote:

*Does anyone have successfully  used "packet_loss" option with rtpengine and libopus?*

Hi, i have checked opus "packet_loss" option with rtpengine 11.0.1.5.

Rtpengine does not send codec private options like packet_loss to libopus, you can send any of global ffmpeg options with addional slashes like "codec-transcode-opus//////compression_level--1", but if you try send "codec-transcode-opus//////packet_loss--10" you will get "Option not found" message from avlog.

I have to set:
codeclib_set_av_opt_int(enc, "packet_loss", 30);
codeclib_set_av_opt_int(enc, "fec", 1);
into lib/codeclib.c to send this options to ffmpeg.

Does this actually work and not return an error? Right now the function `av_opt_set_from_string` is used, which is supposed to take care of parsing out the string and set the individual options. If setting the options individually works but doesn't work with `av_opt_set_from_string` then this should be changed.

Cheers

Reply all
Reply to author
Forward
0 new messages