我对这个演示很感兴趣:http://jakearchibald.com/scratch/alphavid/
我还看到了这个问题:
但是我似乎弄不清楚:如何创建带有alpha通道的h264、ogg和webm视频文件?
我对这个演示很感兴趣:http://jakearchibald.com/scratch/alphavid/
我还看到了这个问题:
但是我似乎弄不清楚:如何创建带有alpha通道的h264、ogg和webm视频文件?
putImageData
将结果推入实际显示视频的另一个HTML5 Canvas中。function processFrame() {
buffer.drawImage(video, 0, 0);
var image = buffer.getImageData(0, 0, width, height),
imageData = image.data,
alphaData = buffer.getImageData(0, height, width, height).data;
for (var i=3, len=imageData.length; i<len; i += 4){
imageData[i] = alphaData[i-1];
}
output.putImageData(image, 0, 0, 0, 0, width, height);
}
现在,WebM已经支持透明度,并且Chrome 29+可以在不使用标志的情况下进行播放。
http://updates.html5rocks.com/2013/07/Alpha-transparency-in-Chrome-video
但是在Android上的Chrome浏览器中无法使用。
ImageData
对象的data
属性是一个名为CanvasPixelArray
的扁平数组结构,其中包含所有RGBA值。上面的脚本从图像的下半部分中获取蓝色通道的值,并将它们用作上半部分的alpha值。然后,它将每帧创建的具有新alpha的图像复制到输出中。 - Phrogz