Почему поток HLS искажается в Stagefright 1.2 при изменении файлов ts?

Я настроил Apache 2.0 с несколькими .m3u8 файлы, обслуживающие набор mpeg2ts файлы более HLS, Эти ts файлы были созданы с libavformat от transmuxing MP4 Я скачал с youtube, Когда я играю в результате HLS на VLC или же QTвсе работает нормально. Но на Android (Stagefright 1.2) у видео есть несколько проблем:

  1. Возможность перехода в полноэкранный режим не работает
  2. Продолжительность видео говорит 1:40, когда на самом деле 2:00
  3. Видео иногда не запускается, и вам нужно перезагрузить страницу
  4. Видео надежно искажает (разрывы и пиксели) в точках перехода при переключении основного .ts потоки.

Часть этого улучшится, если я не использую HTML5Теги Но проблема № 4 остается.

Я могу играть в другие m3u8на Stagefright без каких-либо из перечисленных выше проблем, поэтому я предполагаю, что мой код трансмутации неверен, но даже отказываюсь от него и использую (недавно добавленный) HLS особенности сегментации ffmpeg У меня та же проблема. Запись с libx264 ничего не меняет.

Я в конце остроумия отлаживаю это.

1 ответ

Libstagefright для Android (наряду с NuPlayer от mediaservice) не является настолько зрелым продуктом, как vlc, и множество проблем, которых нет при использовании vlc, присутствует в Android, оно намного более уязвимо для любого поврежденного, поврежденного, отклоненного контента.

Такие артефакты пикселизации / макроблоков обычно присутствуют, в то время как некоторые кадры были отброшены (по коду Android или были потеряны) перед декодированием.

Если эти искажения присутствуют вместе с некоторыми зелеными полями, это может быть проблемой с синхронизацией изменения формата с ключевыми кадрами (что может быть результатом неправильной реализации исходного кода или части, которая уведомляет ANativeWindow об изменении формата). В угловом случае вы можете не получить какие-либо зеленые рамки, но кадрирование / преобразование будут отклонены, и может быть видна пикселизация).

Что я хотел бы сделать: 1) Проверить наличие кадровых падений 2) Проверить с помощью некоторых кадров анализатора на границах последовательных секций

Другие вопросы по тегам