Декодирование AA C (LOAS / LATM) потока из RTP - PullRequest
0 голосов
/ 12 февраля 2020

Привет, сообщество.

Мне нужна помощь в декодировании аудио, пожалуйста. Я принимаю участие в создании универсального приложения для просмотра видеопотоков и прослушивания аудиопотоков.

У меня есть аудиопоток, транслированный через RTP. Я много читал о RTP и обнаружил, что мои пакеты выглядят как формат AA C LATM. Я думаю, что это формат LOAS, но некоторые заголовки пропущены.

У меня есть некоторые типы пакетов из RTP. Пакеты в HEX:

Пакет № 1 (текущая длина пакета 244 байта)

20 80 B9 8D 00 0A 0E C0 FA 11 AE 22 40 18 84 XX
XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX
XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX
XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX
XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX
XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX
A5 A5 A5 A5 A5 A5 A5 A5 A5 A5 A5 A5 A5 A5 A5 A5
A5 A5 A5 A5 A5 A5 A5 A5 A5 A5 A5 A5 6E C0 FA 11
AE 24 80 51 9F 7A 8A XX XX XX XX XX XX XX XX XX
XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX
XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX
XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX
XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX
69 69 69 69 69 69 69 69 69 69 69 69 69 69 69 69
69 69 69 69 69 69 69 69 69 69 69 69 69 69 69 69
69 69 69 40

Пакет № 2 (текущая длина пакета 240 байтов)

BB 83 F8 46 B8 8A 01 4D 77 F7 E2 AA XX XX XX XX
XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX
XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX
XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX
XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX
2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D
2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D
2D 2D 2D 2D 2D 2D 2B BB 03 F0 46 B8 8A 81 XX XX
XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX
XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX
XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX
XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX
XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX
B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4
B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 BC 00

Пакет # 3 (длина пакета 240 байт)

BB 05 00 00 02 14 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4
B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4
B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4
B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4
B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4
B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4
B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4
B4 B4 B4 B4 B4 B4 BE BB 85 00 00 02 14 B4 B4 B4
B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4
B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4
B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4
B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4
B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4
B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4
B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 A5 00

Я думаю, что Пакет № 1 содержит заголовок конфигурации - 7 байт: 20 80 B9 8D 00 0A 0E и содержит два аудиокадра. Пакеты типа Packet # 2 содержат только два аудиокадра.

Мой вопрос: как правильно декодировать этот поток, как правильно читать кадры и анализировать конфигурацию?!? Может быть, кто-нибудь знает, какой заголовок я должен добавить к каждому пакету, чтобы иметь возможность прослушивать звук с помощью стандартных кодеков. Пожалуйста, помогите:)

...