繁体   English   中英

使用 MoviePy 在视频上叠加图像

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM