Поток RTSP против HLS, который будет плавно воспроизводиться на устройстве Android

Я работаю над приложением для Android, предназначенным только для планшетов. Минимальный требуемый уровень API — 3.1. Приложение будет транслировать некоторые телеканалы в прямом эфире.

Я протестировал как RTSP, так и HLS, и оба работают хорошо. Однако HLS, похоже, не работает лучше, и вызывается функция onCompletion VideoView, которую не следует вызывать, так как поток идет из прямого эфира, который еще не завершен.

У меня есть URL-адреса потоков RTSP и HLS каждого телеканала. Я знаю, что Android Android 3.0+ поддерживает HLS, но я также могу играть в RTSP.

Какой из них лучше другого и почему?


person Aamir    schedule 24.02.2012    source источник


Ответы (2)


RTSP поддерживается только через UDP. Поэтому, если ваши клиенты находятся в Интернете, где возможна потеря пакетов, это не лучший вариант. Но для локальной сети нормально.

HLS имеет довольно слабую поддержку в Android, и они, похоже, ломают ее по-новому с каждым выпуском. Тем не менее, это, вероятно, то, что вам нужно использовать, если вы хотите видео через Интернет. Доступны некоторые сторонние библиотеки (vitamio и nextreaming), которые могут обеспечить более согласованную работу на нескольких устройствах и версиях Android.

person vipw    schedule 28.02.2012
comment
спасибо за подробности ... но я не понимаю одного ... как сторонняя библиотека может хорошо передавать поток, если она не поддерживается должным образом базовой ОС, например, вы сказали, что HLS имеет довольно слабую поддержку в Android тогда как некстрейминг или витамио могут сделать лучше?? - person Aamir; 29.02.2012
comment
И я искал vitamio и nextreaming ... я думаю, что vitamio можно загрузить бесплатно, так как его файл jar был доступен ... я проверю его завтра .. nextreaming кажется лучше, когда я смотрел его демонстрационное видео на YouTube, но я не смог найти библиотеку jar nextreaming для интеграции в мое приложение ... это бесплатно доступный? или хотя бы демонстрационную библиотеку jar можно найти? так что я могу показать это руководству моей компании... спасибо - person Aamir; 01.03.2012
comment
@AamirHabib Я не думаю, что Nextreaming есть в свободном доступе. Сторонние библиотеки могут использовать базовые медиа-фреймворки через NDK, но я не совсем уверен, как они работают. - person vipw; 01.03.2012
comment
Лучшим вариантом для HLS будет ExoPlayer google.github.io/ExoPlayer с открытым исходным кодом. проект, поддерживаемый Google и используемый для Youtube - person box; 29.12.2016

Я протестировал NexStreaming, и он довольно хорош. Я бы сказал лучше, чем Vitamio. Но это не бесплатно. Вы можете запросить пробную версию SDK через их веб-сайт. В SDK есть некоторые файлы .jar, к которым вы можете получить доступ из приложения для Android, а также некоторые собственные (.so) библиотеки, в которых происходит декодирование (я думаю).

person Herve Thu    schedule 11.10.2013