Что мне нужно сделать, так это декодировать видеокадры и визуализировать кадры на трапециевидной поверхности. Я использую Android 2.2 в качестве платформы для разработки.
Я не использую службу медиаплеера, так как мне нужен доступ к декодированным кадрам.
Вот что у меня есть до сих пор:
- Я использую фреймворк stagefright для извлечения декодированных видеокадров.
- затем каждый кадр преобразуется из формата YUV420 в формат RGB.
- преобразованные кадры затем копируются в текстуру и визуализируются на поверхности OpenGL.
- Обратите внимание, что я использую Processing, а не вызовы OpenGL напрямую.
Итак, теперь мои проблемы
- я могу декодировать файлы mp4 только с помощью stagefright
- рендеринг слишком медленный, около 100 мс для кадра 320x420
- звука пока нет, могу только видео рендерить но пока не знаю как синхронизировать проигрывание аудиокадров.
Итак, на мои вопросы...
- как я могу поддерживать другие форматы видео? Должен ли я использовать stagefright или мне следует переключиться на ffmpeg?
- как я могу улучшить производительность? Я должен быть в состоянии поддерживать по крайней мере 720p?
- Должен ли я использовать вызовы OpenGL напрямую вместо обработки? Улучшит ли это производительность?
- Как я могу синхронизировать звуковые кадры во время воспроизведения?