Декодирование VP9 с помощью Alpha Channel в Android, возможно ли это?

В настоящее время FFmpeg поддерживает сжатие VP9 для yuv 420p.

Используя grafika в качестве базы кода, я реализую воспроизведение кодированного видео VP9 yuva420p на Android (используя SurfaceTexture и MediaCodec), но я не могу получить канал Alpha из видео.

Я проверил видео, закодированное с помощью VideoAlphaMode; ID: 0x53c0 размер: 4, поэтому я уверен, что видео содержит альфа-канал.

Итак, вопрос: декодер Android 4.4+ поддерживает VP9 с альфа-каналом?

    Попробуй

    ffmpeg -i input.mov -c:v libvpx -pix_fmt yuva420p out.webm 

    Порекомендуйте начать с создания самой последней версии libvpx на 64-разрядной рабочей станции Linux. Набор тестов libvpx должен включать тест для альфа-канала. Убедитесь, что тест проходит. Если это не так, это плохой знак, потому что libvpx является эталонной реализацией для VP9.

    Если это произойдет, следующим шагом будет попытка альфа-декодирования и наложения с использованием библиотеки более высокого уровня, все еще находящейся в Linux. Я предлагаю использовать GStreamer 1.8.2 или выше. Наложите свой клип поверх генератора «videotestsrc», который будет генерировать большинство видеоформатов.

    Если любой из этих тестов не удастся, я бы рекомендовал вам внимательно изучить причину, прежде чем продолжить.

    Причина для запуска в Linux заключается в том, что у вас будет более быстрое создание времени и устранение неполадок, и я подозреваю, что вы можете столкнуться с краем спецификации, которая даже не была реализована в эталонной реализации (libvpx), или которая сложна Интегрироваться в библиотеки более высокого уровня (следовательно, предложение GStreamer).

    Тем не менее, хотя у меня есть значительный опыт работы с VP8 и libvpx, я не использовал набор функций, специфичный для VP9. Мне любопытно следить за вашими усилиями, и, возможно, вы сможете давать советы по мере продвижения.