У меня есть требование, когда мне нужно извлечь теги ID3 из TS2 MPEG2 (HLS STREAM). MPEG2 имеет ограниченную поддержку в android в отношении воспроизведения файла. Но моя задача – извлечь теги ID3 (играть в файл не нужно). Поэтому меня не интересуют кодеки (кодирование и декодирование).
Я изучил следующие варианты:
Libstagefright и OpenMax : механизм воспроизведения, реализованный Google с Android 2.0. Он MediaExtractor отвечает за получение данных трека и соответствующих метаданных из базовой файловой системы или потока HTTP. Но согласно этому сообщению Добавление видеокодека на Android мне нужно создать собственную прошивку или собственный медиаплеер. Я надеюсь, что мне не нужно идти по этому пути. Более подробную информацию о stagefright и openMax можно найти здесь:
Обзор игрока Stagefright
Архитектура медиаплеера Stagefright от Android
Интеграция пользовательских Wrapper Codec в Android
Как интегрировать декодер в мультимедийную инфраструктуру
Компиляция и использование FFMPEG : полное кросс-платформенное решение для записи, конвертирования и передачи аудио и видео. Мы можем демультиплексировать файлы ts с помощью этой библиотеки, как указано здесь:
FFmpeg – извлечение видео и аудио из файла транспортного потока (.ts) .
Но я не уверен, смогу ли я извлечь теги ID3 из потока HLS. Libavformat может это сделать, но мне все же нужно придумать механизм для передачи прочитанных метаданных в мое приложение.
Компиляция vlc для android : я скомпилировал vlc для android и внесли некоторые изменения внутри транспортного модуля в компонент demux для извлечения тегов, но он не может воспроизводить все потоки, которые я им предоставляю.
Просмотрев эти параметры, я все еще могу исправить это. Я не хочу создавать медиаплеера, так как я не буду воспроизводить файлы и не хочу создавать собственную прошивку. Использование ffmpeg представляется наиболее жизнеспособным вариантом, но я хочу попробовать это без использования сторонней или открытой исходной библиотеки. Мои вопросы:
Возможно ли создать демультиплексор с нуля, который будет работать на Android?
Если возможно, то как это сделать?
Любые варианты, которые я пропустил?
Я новичок в этом. Любая помощь будет принята с благодарностью. Спасибо.
В android
существует поддержка для извлечения тегов ID3
. Дополнительную информацию см. В модуле ID3
.
Интеграцию ID3
в MP3
экстрактор можно найти здесь .
Из быстрой проверки я обнаружил, что ID3
поддерживается от Froyo
далее.