Частота дискретизации кодека Linphone opus

Я хотел бы использовать кодек opus в linphone

Но у меня есть несколько проблем с его использованием. Если бы кто-то со знанием кодека opus мог бы мне помочь, был бы признателен. Как я могу принудительно настроить схему дискретизации звука на 8000 Гц? В настоящее время он использует только 48000 Гц.

заранее спасибо


person Ehsan Maiqani    schedule 07.03.2020    source источник
comment
Opus согласовывается в sdp с использованием opus/48000: но его можно настроить для кодирования на 8000, 16000, 32000 и 48000. Возможно, вы смешиваете частоту sdp для метки времени и реальную частоту дискретизации/качество, используемое кодировщиком!   -  person AymericM    schedule 07.03.2020
comment
Итак, вы имеете в виду, что opus/48000 в SDP не означает частоту дискретизации 48000 Гц? Например, GSM имеет частоту дискретизации 8000 Гц, закодированную с загрузкой данных со скоростью около 24 Кбит/с. Но когда я использую Opus (48000) в linphone, я загружаю данные со скоростью 50 Кбит/с. Я хочу использовать Opus 8000, чтобы снизить потребление данных.   -  person Ehsan Maiqani    schedule 07.03.2020
comment
Да: opus/48000 в sdp не означает 48 кГц в частоте дискретизации. См. rfc7587 и rfc6716 (например, раздел 2.1.1. Битрейт). Параметры кода и sdp будут соответствовать настройкам libopus для использования более низких битрейтов.   -  person AymericM    schedule 08.03.2020


Ответы (1)


Если вы посмотрите на rfc7587 Раздел 4.1, вы можете прочитать это:

Opus supports 5 different audio bandwidths, which can be adjusted
during a stream.  The RTP timestamp is incremented with a 48000 Hz
clock rate for all modes of Opus and all sampling rates.  The unit
for the timestamp is samples per single (mono) channel.  The RTP
timestamp corresponds to the sample time of the first encoded sample
in the encoded frame.  For data encoded with sampling rates other
than 48000 Hz, the sampling rate has to be adjusted to 48000 Hz.

Читая больше в rfc7587, вы узнаете, что в SDP вы всегда будете видеть кодек, использующий «OPUS/48000/2», независимо от реальной частоты дискретизации.

Независимо от реальной частоты дискретизации, как объяснялось выше, временная метка RTP всегда будет увеличиваться с тактовой частотой 48000 Гц.

Если вы хотите контролировать реальную частоту дискретизации для кодека (и, следовательно, пропускную способность), вы можете использовать следующие параметры SDP: maxplaybackrate и maxaveragebitrate использовал.

В разделе 3.1.1 указано соотношение между maxaveragebitrate и частотой дискретизации:

3.1.1.  Recommended Bitrate

   For a frame size of 20 ms, these are the bitrate "sweet spots" for  Opus in various configurations:

   o  8-12 kbit/s for NB speech,
   o  16-20 kbit/s for WB speech,
   o  28-40 kbit/s for FB speech,
   o  48-64 kbit/s for FB mono music, and
   o  64-128 kbit/s for FB stereo music.

Вывод: для использования только 8000Гц в OPUS необходимо согласовать с такими параметрами, где 12кбит/с максимальная настройка для опуса в NB речи:

   m=audio 54312 RTP/AVP 101
   a=rtpmap:101 opus/48000/2
   a=fmtp:101 maxplaybackrate=8000; sprop-maxcapturerate=8000; maxaveragebitrate=12000

Я не знаю, соответствует ли linphone всем параметрам, но это теория!

person AymericM    schedule 01.04.2020