在Android中使用Alpha通道解码VP9,有可能吗?

时间:2016-10-18 18:00:31

标签: android webm vp9

目前FFmpeg支持VP9压缩到yuv a 420p。

使用grafika作为代码库我实现在Android中播放VP9 yuva420p编码视频(使用SurfaceTexture和MediaCodec),但我无法从视频中获取Alpha频道。

我检查了用VideoAlphaMode编码的视频; ID:0x53c0大小:4,所以我确信该视频包含alpha通道。

所以问题是: Android 4.4+解码器支持带有Alpha通道的VP9吗?

2 个答案:

答案 0 :(得分:0)

试一试

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

答案 1 :(得分:0)

建议您首先在64位Linux工作站上构建最新版本的libvpx。 libvpx测试套件应包括alpha通道测试。确保测试通过。如果没有,这是一个不好的迹象,因为libvpx 是VP9的参考实现。

如果是这样,下一步就是尝试使用更高级别的库进行alpha解码和覆盖,仍在Linux上。我建议使用GStreamer 1.8.2或更高版本。将剪辑叠加在“videotestsrc”生成器的顶部,这将生成大多数视频格式。

如果其中任何一项测试失败,我建议您在继续之前仔细调查原因。

在Linux上启动的原因是你可以更容易地构建和排除故障,我怀疑你可能会遇到规范的边缘,甚至没有在参考实现(libvpx)中实现,或者难以融入更高级别的图书馆(因此GStreamer建议)。

尽管如此,虽然我对VP8和libvpx有丰富的经验,但我没有使用VP9特有的功能集。但是,我很想跟随你的努力,也许能够在你取得进步时提供建议。