Задержка звука Android при воспроизведении файла MPEG-TS

В последнее время я много боролся с воспроизведением видео в приложении для Android. Рассматриваемое видео представляет собой файл M3U8, который, в свою очередь, связан с серией вторичных M3U8, каждый из которых имеет список компонентов видеофайлов MPEG-TS, и один файл M3U8, содержащий аудиокомпоненты в формате AAC. У меня были небольшие проблемы с взаимодействием M3U8, однако теперь это работает нормально.

К сожалению, звук отстает от видео примерно на секунду. Эта задержка присутствует как в моем собственном действии, содержащем MediaPlayer, так и в простом запуске видеоплеера Android по умолчанию, указывающего на поток. При воспроизведении также часто возникают визуальные заикания или искажения. Ни одна из проблем не возникает при воспроизведении с VLC Beta или в версии этого приложения для iPhone, поэтому проблема не в самом видеофайле. Я попробовал библиотеку Vitamio, она работала еще хуже (гораздо более частые повреждения и отсутствие звука). К сожалению, изменить формат видео невозможно.

Мне кажется, что эта проблема может быть вызвана ограниченной поддержкой Android для MPEG-TS — в списке поддерживаемых форматов мультимедиа указано, что он использует звук AAC (тогда как я предполагаю, что версия iOS просто воспроизводит и видео, и аудио из .ts файл). Любые рекомендации/решения для исправления этого отставания?


person Xono    schedule 16.04.2013    source источник
comment
большинство файлов ts имеют задержку звука по сравнению с их видео. Либо переупаковать поток (используя ffmpeg) ffmpeg -i {input} -c copy -f mpegts out.ts, либо изменить настройки кодировщика, создающего поток.   -  person Antwan van Houdt    schedule 08.12.2020


Ответы (1)


Вы можете попробовать Gstreamer, который хорошо работает на Android (http://gstreamer.com/), а также Vitamio

person Florian    schedule 18.06.2013