2016-10-18 5 views
6

Actuellement, FFmpeg prend en charge la compression VP9 pour yuv a 420p. Utilisation grafika en tant que base de code Je suis implémenté en jouant la vidéo encodée VP9 yuva420p dans Android (en utilisant SurfaceTexture et MediaCodec), mais je ne peux pas obtenir le canal Alpha de la vidéo.Décoder VP9 avec Alpha Channel dans Android, est-ce possible?

J'ai vérifié que la vidéo était encodée avec VideoAlphaMode; ID: 0x53c0 taille: 4, donc je suis sûr que la vidéo contient un canal alpha.

Donc la question est: le décodeur Android 4.4+ prend-il en charge VP9 avec canal alpha?

+0

Cela peut être un problème de décodeur; de nombreux décodeurs VP9 ne prennent pas en charge le décodage de canal alpha. –

Répondre

0

Essayes

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

S'il vous plaît expliquer ce que cela fait, non seulement dire "essayez ceci" et le code de fourniture. Expliquez ce que c'est, ce qui fait quoi et pourquoi c'est la (ou) une façon correcte de le faire – Zoe

0

vous recommandons de commencer par la construction de la dernière version de libvpx lui-même sur un poste de travail Linux 64 bits. La suite de tests libvpx devrait inclure un test pour alpha-channel. Assurez-vous que le test réussit. Si ce n'est pas le cas, c'est un mauvais signe, car libvpx est l'implémentation de référence pour VP9. Si tel est le cas, l'étape suivante consisterait à tenter un décodage alpha et une superposition à l'aide d'une bibliothèque de niveau supérieur, toujours sous Linux. Je suggère d'utiliser GStreamer 1.8.2 ou supérieur. Superposez votre clip sur le générateur "videotestsrc", qui générera la plupart des formats vidéo.

Si l'un de ces tests échoue, je vous recommande d'examiner attentivement pourquoi avant de continuer. La raison pour laquelle vous démarrez sur Linux est que vous aurez plus de facilité à construire et à résoudre les problèmes, et je suppose que vous allez peut-être toucher une limite de la spécification qui n'a même pas été implémentée dans l'implémentation de référence (libvpx), ce qui est difficile à intégrer dans les bibliothèques de plus haut niveau (d'où la suggestion de GStreamer). Cela dit, même si j'ai une expérience significative avec VP8 et libvpx, je n'ai pas utilisé l'ensemble de fonctionnalités spécifiques VP9. Je suis toutefois curieux de suivre vos efforts et pourra peut-être vous conseiller au fur et à mesure que vous progresserez.