Добавление других видеоформатов и кодеков к stagefright
Если у вас есть парсеры для «других» видеоформатов, вам необходимо внедрить плагин Stagefright Media Extractor и интегрировать его в удивительный плеер,Аналогично, если у вас есть компоненты OMX для необходимых видеокодеков, вам необходимо интегрировать их в класс OMXCodec.Использование компонентов FFMPEG в stagefright или использование проигрывателя FFMPEG вместо stagefright не кажется тривиальным.Однако, если необходимые форматы уже доступны в Opencore, вы можете изменить стек Android, чтобы Opencore был выбран для этих форматов.Вам необходимо перенести логику получения данных YUV в Opencore.(пачкайтесь с помощью MIO)
Производительность воспроизведения
Поверхностное мерцание, используемое для обычного воспроизведения, использует Overlay для рендеринга.Обычно он обеспечивает около 4 - 8 видеобуферов (пока что я видел).Таким образом, вы можете проверить, сколько разных буферов вы получаете при рендеринге OPEN GL.Увеличение буфера определенно улучшит производительность.Кроме того, проверьте время, необходимое для преобразования YUV в RGB.Можно оптимизировать или использовать библиотеку с открытым исходным кодом для повышения производительности.Обычно Open GL не используется для рендеринга видео (известный как Graphics).Так что не уверены в производительности.
Аудио Видео Синхронизация
Аудио время используется в качестве справочного.В Stagefright потрясающий плеер использует Audio Player для воспроизведения аудио.Этот проигрыватель реализует интерфейс для предоставления данных о времени.Потрясающий плеер использует это для рендеринга видео.В основном, видеокадры воспроизводятся, когда время их представления совпадает со временем воспроизведения аудиосэмпла.
Шаш