首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用Moviepy制作透明视频?

问如何用Moviepy制作透明视频?
EN

Stack Overflow用户
提问于 2022-08-23 12:40:09
回答 1查看 482关注 0票数 3

我想用alpha制作一个透明的视频。

这是我的密码:

代码语言:javascript
复制
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")

使用的档案:

01.png

input3.mov

输出是不透明的(用Adobe效果进行测试)。

在阅读了https://github.com/Zulko/moviepy/issues/1502之后,我找到了一种方法--通过将剪辑呈现为图像序列,我最终得到了带有alpha的图像序列。虽然它不是一个透明的视频,而是一个透明的图片序列,我也可以接受它,但它需要重新处理。

代码语言:javascript
复制
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')

但是有一个小问题,在图片的边缘有一个黑色的边框。↓↓↓

黑色border.jpg

我想这可能是默认黑色背景的影响。更改背景色后,我发现导出的图像序列丢失了alpha,这不是我想要的结果。

代码语言:javascript
复制
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')

白色背景图像缺少阿尔法。↓↓↓

缺失alpha.png

否则如何才能直接获得透明的视频?

EN

回答 1

Stack Overflow用户

发布于 2022-09-13 10:01:54

我修改了镜头和代码来制作视频,最后我得到了一个透明的视频。

这种方法有其局限性,并不适用于所有情况。

这是用于制作视频的透明图像材料。导出透明序列图像后,会出现黑色边框,因此不使用此方法。

​

​

改变想法:

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

​

​

使用不同的图像资产制作两次视频,然后使用Adobe的关键功能制作透明视频。

最终效果如下:

[video.mp4]

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73458919

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档