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