Создать демультиплексор для MPEG 2 TS в Android

У меня есть требование, где мне нужно извлечь теги ID3 из MPEG2 TS(HLS STREAM). MPEG2 имеет ограниченную поддержку в Android в отношении воспроизведения файла. Но моя задача - извлечь теги ID3 (проигрывать файл не обязательно). Поэтому я не занимаюсь кодеками (кодирование и декодирование).

Я исследовал следующие варианты:

libstagefright и OpenMax: движок воспроизведения, реализованный Google из Android 2.0. Он имеет MediaExtractor, отвечающий за извлечение данных дорожки и соответствующих метаданных из базовой файловой системы или потока http. Но согласно этому посту, добавив видеокодек в Android, мне нужно собрать собственную прошивку или собственный медиаплеер. Надеюсь, мне не нужно идти по этому пути. Больше информации о stagefright и openMax можно найти здесь:

Обзор игрока Stagefright

Архитектура Android Stagefright Media Player

Интеграция пользовательских кодеков Wrapper в Android

Как интегрировать декодер в мультимедийный фреймворк

Компиляция и использование FFMPEG: полное кроссплатформенное решение для записи, преобразования и потоковой передачи аудио и видео. Мы можем демультиплексировать файлы TS с этой библиотекой, как упомянуто здесь:

FFmpeg - Извлечение видео и аудио из файла транспортного потока (.ts).

Но я не уверен, смогу ли я извлечь теги ID3 из потока HLS. Возможно, libavformat сможет сделать это, но мне все еще нужно придумать механизм для передачи метаданных о прочтении в мое приложение.

Компиляция vlc для android: я скомпилировал vlc для android и внес некоторые изменения в транспортный модуль в компоненте demux для извлечения тегов, но он не может воспроизводить все потоки, которые я ему предоставляю.

Просматривая эти варианты, я все еще не могу понять, как этого добиться. Я не хочу создавать медиаплеер, так как я не буду воспроизводить файлы и не хочу создавать собственную прошивку. Использование ffmpeg представляется наиболее приемлемым вариантом, но я хочу попробовать это без использования сторонней библиотеки или библиотеки с открытым исходным кодом. Мои вопросы:

Возможно ли вообще создать демультиплексор с нуля, который будет работать на Android?

Если возможно, то как это сделать?

Какие-либо варианты, которые я пропустил?

Я новичок в этом. Любая помощь будет принята с благодарностью.. Спасибо

1 ответ

В androidесть поддержка для извлечения ID3 теги. Пожалуйста, обратитесь к ID3 модуль для дальнейших деталей.

Интеграция ID3 в MP3 экстрактор можно найти здесь.

Из быстрой проверки я обнаружил, что ID3 поддерживается с Froyo и далее.

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