1

Я кодирую некоторые файлы в формат opus в ffmpeg, используя настройки приложения VoIP (это для исследования).

Одним из параметров, который вы можете установить, является ожидаемая потеря пакета (%). Я понимаю принципы потери пакетов, однако не могу понять, что этот параметр на самом деле делает с результирующим файлом, так как передача не происходит.

Любое понимание будет оценено.

1 ответ1

1

Чем больше потери пакетов вы указываете, тем больше избыточных данных кодируется в файле, чтобы иметь возможность справиться с этим.

http://blogs.asterisk.org/2017/04/12/asterisk-opus-packet-loss-fec/

Как уже упоминалось, FEC добавляется внутриполосным кодером Opus, но только после того, как настроен для этого. В предыдущем посте уже обсуждались все доступные опции, которые вы можете установить на кодере, поэтому обязательно проверьте это, если вы еще этого не сделали. Здесь мы обсудим некоторые из этих опций и то, как они работают в комбинации, чтобы кодер включал данные FEC. Как указано в FAQ по Opus, необходимо выполнить несколько условий, прежде чем кодер добавит исправление ошибок в кадры:

  • Функция должна быть включена. Опция «fec» должна быть установлена для определенного формата (обратите внимание, опции для кодека Opus для Asterisk могут быть установлены в codecs.conf). Этот параметр по умолчанию имеет значение «нет», поэтому, если вы не включите его специально, Asterisk не будет включать данные FEC при кодировании.
  • Энкодеру нужно сказать ожидать потери. Это означает, что также должен быть указан предполагаемый процент потери пакетов. Установка этого значения сдвигает порог, при котором кодер начнет включать данные FEC. Чем выше число, тем ниже порог.
  • Кодек должен работать в режиме, способствующем уменьшению полосы пропускания. Убедитесь, что максимальная пропускная способность установлена на узкую или среднюю. Это может быть достигнуто путем настройки опции «max_bandwidth». Вы можете сделать это либо непосредственно, установив сам параметр, либо косвенно, установив параметр max_playback_rate на 16 кГц или меньше.

Не забудьте убедиться, что обе стороны договорились о FEC. Если все настроено правильно, но одна сторона не предлагает FEC («useinbandfec = yes»), то она не будет включена.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .