我可以用HTML5视频标签制作一个背景透明的视频吗?

我可以用HTML5视频标签制作一个背景透明的视频吗?,html,mp4,html5-video,Html,Mp4,Html5 Video,我们在绿色屏幕上拍摄了一位发言人,并准备好了多种格式的视频文件 使用Flash,我们可以在param和embed标记中使用wmode透明,但HTML5中的视频和源标记是否也有类似的功能?甚至可以正确保存.m4v或.ogv视频,以便我们可以在浏览器上以透明背景播放这些文件吗 感谢现在,唯一真正支持alpha频道的视频编解码器是VP8,Flash使用它。如果视频作为图像序列导出,MP4可能会支持它,但我相当确定Ogg视频文件不支持alpha通道。这可能是少数几个坚持使用Flash会更好的例子之一。虽

我们在绿色屏幕上拍摄了一位发言人,并准备好了多种格式的视频文件

使用Flash,我们可以在param和embed标记中使用wmode透明,但HTML5中的视频和源标记是否也有类似的功能?甚至可以正确保存.m4v或.ogv视频,以便我们可以在浏览器上以透明背景播放这些文件吗


感谢现在,唯一真正支持alpha频道的视频编解码器是VP8,Flash使用它。如果视频作为图像序列导出,MP4可能会支持它,但我相当确定Ogg视频文件不支持alpha通道。这可能是少数几个坚持使用Flash会更好的例子之一。

虽然视频本身不可能做到这一点,但您可以使用画布绘制视频帧,除了颜色范围内的像素或其他什么。当然,这需要一些javascript之类的东西。请参见(目前显然已损坏)和

是的,这种事情在没有闪光灯的情况下是可能发生的:


然而,只有非常现代的浏览器才支持HTML5视频,在HTML5中部署时,这应该是您的考虑因素,并且您应该提供一个后备方案(可能是Flash或省略透明度)。

更新:Chrome和Firefox现在支持带有alpha通道的Webm


对于其他浏览器来说,有一些变通方法,但它们涉及到使用画布重新渲染视频,这是一种黑客行为。这是一个例子。它在HTML5桌面浏览器(甚至IE9)上运行得很好,但在移动设备上似乎运行得不太好。我无法让它在Android的Chrome上运行。它确实在Android版Firefox上运行,但帧速率相当糟糕。我想你在手机上可能运气不好,尽管我希望被证明是错的。

Chrome30>支持视频alpha透明


webm格式是Chrome>29的最佳解决方案,但Firefox IE和Safari不支持webm格式,最好的解决方案是使用Flash(wmode=“transparent”)。但你必须忘记“ios”

Quicktime MOV作为动画作品导出,但仅在safari中导出。我希望有一个涵盖所有主要浏览器的完整解决方案(或格式)。

Mp4文件可以使用seeThrou Js库在透明背景下播放。您只需在单个视频中组合实际视频和alpha通道。同时确保视频高度尺寸低于1400像素,因为一些旧的iphone设备不会播放尺寸超过2000像素的视频。这在目前不支持webm的safari桌面和移动设备中非常有用

更多详细信息可以在下面的链接中找到

如今,如果您使用两种不同的视频格式(WebM和HEVC),您可以拥有一个透明的视频,它可以在除Internet Explorer之外的所有主要浏览器中运行,并带有一个简单的
标记:



我也为此挣扎。这是我发现的。在Adam的答案的基础上,这里有更多的细节,包括如何在Webm容器中使用alpha编码VP9

首先,你可以玩,可以随意使用我的视频进行测试

        <video width="600" height="100%" autoplay loop muted playsinline>
        <source src="https://rotato.netlify.app/alpha-demo/movie-hevc.mov" type='video/mp4'; codecs="hvc1">
        <source src="https://rotato.netlify.app/alpha-demo/movie-webm.webm" type="video/webm">
        </video>

这里使用z-index将透明视频分层到某些元素的上下。(您可以克隆Webflow模板)

因此,我们需要一部针对Chrome的Webm电影,以及一部带有Alpha的HEVC(自2019年以来,Safari在所有平台上都提供支持)

支持哪些浏览器? 对于Chrome,我已经从2013年开始在30版上成功地进行了测试。(似乎没有说明支持哪种webm编解码器,所以我不得不尝试自己的方法)。chrome的早期版本似乎呈现黑色区域

对于Safari,它更简单:Catalina(2019)或iOS 11(2019)

编码 根据您使用的编辑应用程序,我建议直接导出带有Alpha的HEVC

但许多应用程序不支持Webm格式,尤其是在Mac上,因为它不是AVFoundation的一部分

我建议导出带有alpha通道的中间格式(如ProRes4444),以避免在这一步中丢失太多质量。一旦你有了那个文件,制作你的webm就像

ffmpeg-i“您在prores.mov中的电影”-c:v libvpx-vp9 movie webm.webm


请参阅中的更多方法。

第一个演示使用SVG剪辑为视频“创建”alpha区域。第二个演示使用两个HTML5画布以及一个视频,显式设置每帧的alpha。这两个都不是带有alpha通道的视频。使用Flash-yo可以使用FLV文件制作透明背景视频,我以前做过,那是在2008年左右。我尝试了第二种解决方案。它可以在桌面上工作,但不能在移动设备上工作,它应该也可以在移动设备上工作吗?您现在可以使用具有透明度的webm。webm是这项工作所必需的,只能在这项工作上工作。这是唯一真正的答案-实际使用
。我在移动设备上也没有成功,只是在桌面上。有什么解决办法吗?你是否也会因为使用画布而失去对视频播放的控制?我想你会的。Webm是受支持的。你是如何生成透明的视频的?是否使用了此处概述的技术:?@Amit是的,我使用Finder生成了HEVC视频