[英]Overlay image on video using MoviePy
我正在尝试在基本视频上叠加图像。 这是我目前拥有的代码:
clip = VideoFileClip("base_video.mp4")
cat = (ImageClip("title.png")
.set_start(0) #which second to start displaying image
.set_duration(4) #how long to display image
.set_position(("center", "center")))
clip = CompositeVideoClip([clip, cat])
clip.write_videofile("asdf.avi",fps=24, codec='rawvideo')
我在 reddit 上找到了这段代码,它似乎可以工作,但是它将 mp4 文件转换为 avi 文件(我尝试将“.avi”更改为“.mp4”,但它不起作用)。 想知道在保持 mp4 文件类型的同时是否还有其他方法可以做到这一点。
非常感谢您!
nvm 我想通了
video = VideoFileClip("base_video.mp4")
title = ImageClip("title.png").set_start(3).set_duration(7).set_pos(("center","center"))
#.resize(height=50) # if you need to resize...
final = CompositeVideoClip([video, title])
final.write_videofile("test.mp4")
不同的格式有不同的编解码器。 你可以在这里找到它们。 如果您没有在write_videofile
方法中设置编解码器参数,它会自动检测并使用相应的编解码器。
“libx264” (文件扩展名.mp4的默认编解码器)制作压缩良好的视频(使用“比特率”可调整质量)。
'mpeg4' (扩展.mp4的其他编解码器)可以替代 'libx264',并默认生成更高质量的视频。
'rawvideo' (使用文件扩展名.avi )将产生完美质量的视频,可能非常大。
png (使用文件扩展名.avi )将产生完美质量的视频,比 rawvideo 更小。
'libvorbis' (使用文件扩展名.ogv )是一种不错的视频格式,完全免费/开源。 然而,并不是每个人的机器上都默认安装了编解码器。
'libvpx' (使用文件扩展名.webm )是一种非常适合 web 视频(使用 HTML5)的视频格式。 开源。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.