Opus в RTP: 48 кГц временной шкалы не определяют bitrate
Фотография конкретного исполнения не приложена.
Поля времени RTP и фактическая частота обработки звука могут иметь разный смысл. Для Opus RFC 7587 задаёт RTP clock 48 000 Гц для всех режимов и sampling rates. Это правило нужно для правильной интерпретации timestamp и jitter.
Расчётный пример: 20 мс содержимого соответствуют 960 ticks такой шкалы. Это не 960 байт и не обещание постоянного размера пакета. Timestamp считается в отсчётах одного канала; умножение приращения на число каналов нарушит временную модель.
Opus может упаковывать разные длительности кадров и объединять их в пакет в разрешённых пределах. Поэтому нельзя вычислять период только по знакомому размеру payload. Bitrate, число байтов и временная продолжительность связаны настройками кодирования, но не являются взаимозаменяемыми величинами. DTX и иные режимы также требуют контекста потока.
В приёмке сопоставляют SDP, timestamp increments и фактическую packetization. При изменении формата сохраняют текущие параметры. Перевод RTCP jitter в миллисекунды делают с верной временной базой. Наличие opus/48000 в описании подтверждает заявленный RTP clock, а не полосу сети, качество звучания или обязательную частоту исходного аудиосигнала.
Основание — Numbered IETF voice and NAT-traversal RFCs with selected RFC8863 ICE update; protocol scopes identified per task, разделы RFC7587 4.1 RTP timestamp; 4.2 Payload Structure; SDP parameters. Сохранён текст публичной справочной публикации; конкретная реализация может поддерживать только часть возможностей. Основание — указанные номерные RFC о SIP, SDP, RTP и NAT traversal; рассматриваются конкретные границы поведения, а не полный современный профиль реализации или защиты. Реальные шлюзы, АТС, терминалы и медиапотоки не проверялись; вызовы и записи звука не выполнялись.