在安卓系统中解码带有Alpha通道的VP9视频是否可行?

9

目前,FFmpeg支持将VP9压缩到yuva420p。

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

我检查了视频是否使用VideoAlphaMode进行编码; ID:0x53c0 size:4,所以我确定视频包含Alpha通道。

因此问题是:Android 4.4+解码器是否支持具有Alpha通道的VP9?


这可能是一个解码器问题;许多VP9解码器不支持alpha通道解码。 - Ronald S. Bultje
2个回答

0

试一下

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

3
请解释其功能,不要只是说“试试这个”并提供代码。请说明它是什么,它的作用是什么以及为什么这是正确(或一个正确)的方法去做。 - Zoe stands with Ukraine

0

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

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

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

之所以从Linux开始,是因为您将更容易地构建和排除故障,并且我怀疑您可能正在遇到规范的边缘,甚至还没有在参考实现(libvpx)中实现,或者很难集成到更高级别的库中(因此建议使用GStreamer)。

话虽如此,虽然我在VP8和libvpx方面有丰富的经验,但我没有使用VP9特定的功能集。我很想关注您的努力,并可能能够在您取得进展时提供建议。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接