Почему поток HLS искажается в Stagefright 1.2 при изменении файлов ts?
Я настроил Apache 2.0
с несколькими .m3u8
файлы, обслуживающие набор mpeg2ts
файлы более HLS
, Эти ts
файлы были созданы с libavformat
от transmuxing
MP4
Я скачал с youtube
, Когда я играю в результате HLS
на VLC
или же QT
все работает нормально. Но на Android (Stagefright 1.2) у видео есть несколько проблем:
- Возможность перехода в полноэкранный режим не работает
- Продолжительность видео говорит 1:40, когда на самом деле 2:00
- Видео иногда не запускается, и вам нужно перезагрузить страницу
- Видео надежно искажает (разрывы и пиксели) в точках перехода при переключении основного
.ts
потоки.
Часть этого улучшится, если я не использую HTML5
Теги Но проблема № 4 остается.
Я могу играть в другие m3u8
на Stagefright без каких-либо из перечисленных выше проблем, поэтому я предполагаю, что мой код трансмутации неверен, но даже отказываюсь от него и использую (недавно добавленный) HLS
особенности сегментации ffmpeg
У меня та же проблема. Запись с libx264
ничего не меняет.
Я в конце остроумия отлаживаю это.
1 ответ
Libstagefright для Android (наряду с NuPlayer от mediaservice) не является настолько зрелым продуктом, как vlc, и множество проблем, которых нет при использовании vlc, присутствует в Android, оно намного более уязвимо для любого поврежденного, поврежденного, отклоненного контента.
Такие артефакты пикселизации / макроблоков обычно присутствуют, в то время как некоторые кадры были отброшены (по коду Android или были потеряны) перед декодированием.
Если эти искажения присутствуют вместе с некоторыми зелеными полями, это может быть проблемой с синхронизацией изменения формата с ключевыми кадрами (что может быть результатом неправильной реализации исходного кода или части, которая уведомляет ANativeWindow об изменении формата). В угловом случае вы можете не получить какие-либо зеленые рамки, но кадрирование / преобразование будут отклонены, и может быть видна пикселизация).
Что я хотел бы сделать: 1) Проверить наличие кадровых падений 2) Проверить с помощью некоторых кадров анализатора на границах последовательных секций