mpeg2-ts aac PTS

У меня есть IP-камера, которая отправляет аудио с частотой дискретизации 8000 Гц и видео H264. Я сделал программу, генерирующую TS-файл с этой IP-камеры, и она отлично работает на VLC, Android Media player, кроме IPhone, Mac OSX Safari. (Программа работает с HLS-сервером, который я сделал.)

Видео воспроизводится на Iphone, в Safari все в порядке, а вот с аудио нет. (Я слышу звук, но он не воспроизводится плавно)

Я понимаю, что Audio PTS в пакете TS должен быть основан на часах MPEG2 Sytem PCR (90000 Гц). Значение временной метки, отправляемое IP-камерой, основано на частоте дискретизации (8000 Гц), поэтому я умножаю 90000/8000 на временную метку, чтобы сделать PTS часами MPEG2 PCR, когда я записываю PTS аудио в TS-файл.

Неверно ли умножать 90000/8000 на Audio PTS? любая помощь будет оценена.


person JayMuzie    schedule 25.11.2013    source источник


Ответы (1)


Скорее всего, вы страдаете от ошибок округления. PTS в TS ДОЛЖЕН быть идеальным, иначе многие проигрыватели попытаются повторно синхронизировать воспроизведение с эталонными часами, что часто проявляется в виде пропущенных сэмплов или вставленной тишины.

Убедитесь, что ваш начальный PTS точен, подсчитав образцы и преобразовав их в 90 кГц. Сделайте умножение перед делением, например. (sampleCount * 90000) / sampleRate (НЕ sampleCount * ( 90000 / sampleRate ), и убедитесь, что вы используете 64-битное целое число, чтобы избежать целочисленного переполнения. Или, что еще лучше, используйте av_rescale из libavutil.

person szatmary    schedule 27.11.2013
comment
спасибо @szatmary. Мне просто интересно, временная метка из заголовка RTP может использоваться как значение PTS в TS-файле. Я поместил значение PTS в TS-файл для видеоданных в качестве метки времени из заголовка RTP. Если это может быть неправильно, как мне рассчитать значение PTS? - person JayMuzie; 28.11.2013
comment
Для видео это не имеет большого значения. Просто конвертируйте исходную временную базу в 90 кГц. Если ваши кадры отображаются на несколько микросекунд раньше или позже, никто этого не заметит. Однако вы замечаете это со звуком. - person szatmary; 28.11.2013