Различать HLS-контент во время трансляции

Я хочу различать тип содержимого данных, поступающих из потока HLS, с помощью ExoPlayer от Google.

В частности, я хочу различать видео и аудиоконтент.

Спасибо!


person nurnachman    schedule 11.06.2015    source источник


Ответы (1)


Согласно документации Exoplayer, в настоящее время проигрыватель вообще не поддерживает определение формата мультимедиа:

ExoPlayer (пока) не определяет автоматически формат воспроизводимого мультимедиа. Приложение должно знать формат мультимедиа, которое оно хочет воспроизвести, чтобы создать ExoPlayer, способный его воспроизводить. Снятие этого ограничения отслеживается по Issue #438.

Ссылка на проблему, упомянутая выше: https://github.com/google/ExoPlayer/issues/438< /а>

Вы можете сами просмотреть необработанный поток, если у вас есть к нему доступ (он не зашифрован), и выяснить, является ли он аудио или видео, но для этого потребуется разумный объем работы: HLS — это «протокол потоковой передачи», который передает потоки MPEG. -2 транспортных потока, разбитых на сегменты. Каждый из этих транспортных потоков MPEG-2 может содержать аудио и видео.

Стандарты MPEG (MPEG 1 и MPEG 2) используют идентификаторы потоков для идентификации каждого отдельного аудио- или видеопотока в транспортном потоке. Аудиопотоки нумеруются 110X XXXX, а видеопотоки 1110XXXX, поэтому вы можете проверить все отдельные потоки в транспортном потоке MPEG2 и посмотреть, является ли это только аудио, только видео или миксом.

person Mick    schedule 11.06.2015
comment
Отлично сказано. Лучшее предложение решения. Не могли бы вы отредактировать свой ответ фрагментом для тестирования транспортного потока MPEG-2 на наличие аудио/видео/оба? Спасибо - person nurnachman; 12.06.2015
comment
Добавлены некоторые дополнительные сведения о том, как вы можете проверить наличие аудио- и видеопотоков — извините, у меня нет кода, чтобы дать вам! Это будет разумный объем работы — возможно, стоит поэкспериментировать с проигрывателем и посмотреть, есть ли какой-нибудь более простой трюк, который вы можете использовать для удовлетворения ваших потребностей, например, посмотреть, возникает ли ошибка, если вы пытаетесь воспроизвести видео для Поток HLS, в котором нет видео, а затем просто поймать ошибку и предположить, что поток является только аудио. - person Mick; 12.06.2015
comment
Я попробую и обновлю фрагменты кода - затем вы можете добавить их в свой ответ, и я выберу его - спасибо !! - person nurnachman; 12.06.2015