我想用alpha制作一个透明的视频。
这是我的密码:
import moviepy.editor as mpe
clip = mpe.VideoFileClip("input3.mov")
mask = mpe.ImageClip("01.png", ismask=True, fromalpha=True).to_mask()
clip = clip.set_mask(mask)
final_clip = mpe.CompositeVideoClip([clip])
final_clip.write_videofile("output1.avi", codec="rawvideo")使用的档案:
输出是不透明的(用Adobe效果进行测试)。
在阅读了https://github.com/Zulko/moviepy/issues/1502之后,我找到了一种方法--通过将剪辑呈现为图像序列,我最终得到了带有alpha的图像序列。虽然它不是一个透明的视频,而是一个透明的图片序列,我也可以接受它,但它需要重新处理。
import moviepy.editor as mpe
clip = mpe.VideoFileClip("input3.mov")
mask = mpe.ImageClip("01.png", ismask=True, fromalpha=True).to_mask()
clip = clip.set_mask(mask)
final_clip = mpe.CompositeVideoClip([clip])
final_clip.write_images_sequence('00/frame%05d.png', fps=25, withmask=True, logger='bar')但是有一个小问题,在图片的边缘有一个黑色的边框。↓↓↓
我想这可能是默认黑色背景的影响。更改背景色后,我发现导出的图像序列丢失了alpha,这不是我想要的结果。
import moviepy.editor as mpe
clip = mpe.VideoFileClip("input3.mov")
mask = mpe.ImageClip("01.png", ismask=True, fromalpha=True).to_mask()
clip = clip.set_mask(mask)
final_clip = mpe.CompositeVideoClip([clip], bg_color=(255, 255, 255))
final_clip.write_images_sequence('00/frame%05d.png', fps=25, withmask=True, logger='bar')白色背景图像缺少阿尔法。↓↓↓
否则如何才能直接获得透明的视频?
发布于 2022-09-13 10:01:54
我修改了镜头和代码来制作视频,最后我得到了一个透明的视频。
这种方法有其局限性,并不适用于所有情况。
这是用于制作视频的透明图像材料。导出透明序列图像后,会出现黑色边框,因此不使用此方法。

改变想法:
使每个透明图像成为白色背景图像和从alpha转换而来的灰度信息图像。


使用不同的图像资产制作两次视频,然后使用Adobe的关键功能制作透明视频。
最终效果如下:
https://stackoverflow.com/questions/73458919
复制相似问题