Возможно ли декодирование VP9 с помощью альфа-канала в Android?

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

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

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

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

2 ответа

Попытайся

 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 набор функций. Тем не менее, мне любопытно следить за вашими усилиями, и, возможно, вы сможете дать совет по мере вашего прогресса.

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