добавить заголовок rtp перед заголовком aac adts

Я писал программу, которая могла упаковать заголовок RTP до h264 и aac. но меня смутило поле отметки времени RTP.

Если используется видеокодек h264, временная метка может добавляться на 90000/fps с каждым кадром. Я понятия не имею о ааке.

Моя частота дискретизации aac составляет 8000 Гц, конфигурация = 1588, а каждый кадр - 250 ~ 520. Я нашел решение:

(1) 1024

(2) 8000/1024 = 7 => 8000/7 = 1142

Видео и аудио не могут синхронизироваться, видео будет быстрее, чем звук.

Кто-нибудь может мне помочь?


person BY.H    schedule 30.12.2019    source источник
comment
Вы упаковываете аудиополезную нагрузку (AAC) и видеополезную нагрузку (H.264) в один и тот же пакет RTP или отправляете их отдельно в разных пакетах RTP? какие RFC вы следуете.   -  person mail2subhajit    schedule 30.12.2019
comment
Затем я отправил отдельным rtp-пакетом. RFC 6184 для H264 и RFC 3640 для аудио mpeg4 (aac). Но я не смог найти формулу для расчета метки времени для упаковки аудио, я нашел какое-то решение на веб-сайте, например, переполнение стека или github.   -  person BY.H    schedule 31.12.2019


Ответы (1)


Отправка/передача пакетных RTP-пакетов

H.264 @ 90000 - метка времени rtp = метка времени кадра * 90000 (метка времени кадра при чтении из любого источника)

AAC @ 8000 - метка времени rtp = метка времени буфера * 8000 (метка времени аудиобуфера при чтении из любого источника)

Прием распаковываемых RTP-пакетов

H.264 - фактическая метка времени = метка времени rtp / 90000

AAC - фактическая метка времени = метка времени rtp / 8000

Основываясь на фактической метке времени, вы выполняете синхронизацию аудио-видео.

Примечание. Преобразуйте время в секунды из миллисекунд.

person mail2subhajit    schedule 31.12.2019
comment
Привет, мои h264 и aac являются необработанными данными. Как рассчитать временную метку кадра и временную метку буфера? Как я уже говорил, я добавляю 90000/fps для h264. Но я понятия не имею о aac. - person BY.H; 02.01.2020
comment
Видеокадры вы можете перейти с fps и рассчитать интервал/временную метку. Аудио это ptime , скажем, для x миллисекунд вам нужно рассчитать время буферизации на основе частоты дискретизации аудио. - person mail2subhajit; 03.01.2020
comment
Спасибо за ваш ответ. Можно ли понимать формулу для временной метки аудио rtp как ptime (миллисекунды) / частота дискретизации? - person BY.H; 06.01.2020
comment
Да, вы правы, убедитесь, что преобразования единиц измерения выполнены правильно. - person mail2subhajit; 06.01.2020