具有透明度的视频,如何在每台设备上正确显示webm文件的alpha通道;VP9 还是 VP8 编码?



关于如何通过 alpha 通道获得带有 webm 视频的透明背景, 这里有一个人说你应该用VP8而不是VP9编码。

WebM Alpha 只显示在 Chrome 中?

这是另一个人说这是相反的事情,就像它应该是VP9而不是VP8。

透明的webm视频在安卓68的Chrome上显示纯色背景色 安卓9.0

有没有办法让每个设备正确显示包含 alpha 通道的 webm 文件?

编辑1: 以下是一些测试结果!我制作了同一个webm文件的两个版本,一个使用VP8编码,另一个使用VP9编码。我已经运行了测试以在不同的设备上查看它们。在索尼手机(android/chrome 74)上,具有VP8编码的手机以透明背景正确显示,而具有VP9编码的手机则以纯黑色而不是透明填充其背景。在华为手机(安卓/铬74)上,情况恰恰相反!带有 VP9 的那个正确显示,而带有 VP8 的那个的背景用纯黑色而不是透明填充。在华硕平板电脑上,VP8 和 VP9 都正确显示。在小米手机上,VP8 和 VP9 都无法正确显示。

编辑2:这是一个页面,其中包含一些我不完全理解的良好解释, https://sites.google.com/a/webmproject.org/wiki/alpha-channel 我敢肯定,这一切都是为了正确设置这些参数,使其在所有 android 设备上都能正常工作。喜欢足球/足球运动员的视频

https://simpl.info/videoalpha/

。在我的桌面(Chorme/Windows),我的平板电脑(Chrome/Android)和我的索尼手机(Chrome/Android)上,舞者和足球运动员的视频都通过Alpha通道以透明背景正确显示(这是预期的)。但在华为和小米手机上,只有足球运动员视频按预期工作,而奇怪的是,舞者的背景充满了纯灰色。该足球运动员的视频如何在所有安卓设备上工作;我希望我的 webm 文件也这样做,但不知道如何实现。

我终于有了部分解决方案。

我通过使用动画"webp"文件而不是"webm"文件,能够在各种设备上实现一致的透明度。 由于我的视频很短并且没有音频,因此使用动画 webp 文件对我来说是最好的解决方案。

使用这种方法,您希望将视频的每一帧另存为单独的文件(例如带有 alpha 的未压缩 PNG),然后从 https://github.com/webmproject/WebPShop 获取 Photoshop 的 webp 插件。 最后,将每一帧放在 Photoshop 中的图层上,并像(50 ms)(100 ms)一样命名每个图层(包括括号)。和"另存为"webp感谢您的新插件。在我的测试中,它适用于每台设备。


关于webps的一些有用说明,

  1. webp 文件大小和压缩率并不总是成比例的。 例如,以 90% 的质量而不是 80% 的质量节省 MAY 在某些情况下,实际上减小文件大小!奇怪但真实。
  2. 从iOS 15开始,由于Safari中的一些错误,动画webp文件中的某些帧可以水平裁剪。

我发现(至少在我的情况下)显示透明度的问题与 webm 视频分辨率有关。

谷歌官方指南中显示的分辨率为 640x360 的 webm 在低端设备上运行良好,事实上,官方示例中带有 alpha 的 webm 视频都具有 nHD 分辨率,这有很多缺点。

如果更改 nHD 分辨率,Alpha 通道将在低端设备上停止工作。 也许这可能取决于设备的处理能力(可能与 webm 在内部如何为 alpha 通道或 GPU 驱动程序工作有关,如本期所述?

最新更新