使用Python和`moviepy`库从输入的图片、动图和音频生成幻灯片式视频的示例代码

ops/2025/2/12 1:14:39/

下面是一个使用Python和moviepy库从输入的图片、动图和音频生成幻灯片式视频的示例代码。在这个示例中,我们将依次展示每张图片或动图,同时播放音频。

python">from moviepy.editor import ImageClip, VideoFileClip, AudioFileClip, concatenate_videoclipsdef create_slideshow_video(image_paths, audio_path, output_path, duration_per_image=5):"""从输入的图片、动图和音频生成幻灯片式的视频。:param image_paths: 图片和动图的文件路径列表:param audio_path: 音频文件的路径:param output_path: 输出视频的路径:param duration_per_image: 每张静态图片显示的时长(秒),默认为5秒"""clips = []for image_path in image_paths:try:# 尝试将文件作为动图处理clip = VideoFileClip(image_path)except:# 如果不是动图,将其作为静态图片处理clip = ImageClip(image_path).set_duration(duration_per_image)clips.append(clip)# 拼接所有的视频片段final_clip = concatenate_videoclips(clips, method="compose")# 加载音频文件audio = AudioFileClip(audio_path)# 将音频添加到视频中final_clip = final_clip.set_audio(audio)# 保存最终的视频final_clip.write_videofile(output_path, fps=24)# 关闭所有的剪辑对象for clip in clips:clip.close()final_clip.close()audio.close()if __name__ == "__main__":# 图片和动图的文件路径列表image_paths = ["image1.jpg", "image2.gif", "image3.jpg"]# 音频文件的路径audio_path = "audio.mp3"# 输出视频的路径output_path = "output_video.mp4"create_slideshow_video(image_paths, audio_path, output_path)

代码说明:

  1. 导入必要的库:从moviepy.editor导入所需的类,包括ImageClip用于处理静态图片,VideoFileClip用于处理动图和视频,AudioFileClip用于处理音频,concatenate_videoclips用于拼接视频片段。
  2. 定义create_slideshow_video函数:该函数接受图片和动图的文件路径列表、音频文件的路径、输出视频的路径以及每张静态图片显示的时长作为参数。
  3. 处理图片和动图:遍历图片和动图的文件路径列表,尝试将每个文件作为动图处理。如果失败,则将其作为静态图片处理,并设置显示时长。
  4. 拼接视频片段:使用concatenate_videoclips函数将所有的视频片段拼接成一个最终的视频。
  5. 添加音频:加载音频文件,并将其添加到最终的视频中。
  6. 保存视频:使用write_videofile方法将最终的视频保存到指定的输出路径。
  7. 关闭剪辑对象:关闭所有的剪辑对象,释放资源。

使用方法:

image_paths列表中的文件路径替换为你实际的图片和动图文件路径,将audio_path替换为你实际的音频文件路径,将output_path替换为你想要保存的输出视频的路径,然后运行代码即可生成幻灯片式的视频。


http://www.ppmy.cn/ops/157658.html

相关文章

Baumer工业相机堡盟相机的相机传感器芯片清洁指南

Baumer工业相机堡盟相机的相机传感器芯片清洁指南 Baumer工业相机1.Baumer工业相机传感器芯片清洁工具和清洁剂2.Baumer工业相机传感器芯片清洁步骤2.1、准备步骤2.2、清洁过程1.定位清洁工具2.清洁传感器3.使用吹风装置 Baumer工业相机传感器芯片清洁的优势设计与结…

我用AI做数据分析之数据清洗

我用AI做数据分析之数据清洗 AI与数据分析的融合效果怎样? 这里描述自己在使用AI进行数据分析(数据清洗)过程中的几个小故事: 1. 变量名的翻译 有一个项目是某医生自己收集的数据,变量名使用的是中文,分…

DeepSeek开源多模态大模型Janus-Pro部署

DeepSeek多模态大模型部署 请自行根据电脑配置选择合适环境配置安装conda以及gitJanus 项目以及依赖安装运行cpu运行gpu运行 进入ui界面 请自行根据电脑配置选择合适 本人家用电脑为1060,因此部署的7B模型。配置高的可以考虑更大参数的模型。 环境配置 安装conda…

[Meet DeepSeek] 如何顺畅使用DeepSeek?告别【服务器繁忙,请稍后再试。】

文章目录 [Meet DeepSeek] 如何顺畅使用DeepSeek?告别【服务器繁忙,请稍后再试。】引言使用渠道一:硅基流动 Chatbox AI【推荐】硅基流动 Chatbox AI的优势 使用渠道二:秘塔AI搜索秘塔AI搜索的优势 其它方案1. DeepSeek官网2. 纳…

mac下dify+deepseek部署,实现私人知识库

目前deepseek 十分火爆,本地部署实现私有知识库,帮助自己日常工作,上一篇使用工具cherry studio可以做到私人知识库。今天学习了一下,使用Dify链接deepseek,实现私人知识库,也非常不错,这里分享…

构建jdk17包含maven的基础镜像

1、先拉取jdk17基础镜像 docker pull openjdk:17-jdk-alpine 2、使用jdk17基础镜像创建容器 docker run -it openjdk:17-jdk-alpine sh 或 docker run -it --name jdk17 openjdk:17-jdk-alpine sh 3、修改镜像源地址 cat /etc/apk/repositories https://mirrors.aliyun.com…

电能表“抱上“CCLINK IE转MODBUS-TCP网关大腿工业电力管理一路“狂飙“

工厂中有多个仪表通过CCLink IE现场总线连接,需要将这些仪表的数据接入到上位机系统。上位机系统支持Modbus TCP协议,因此需要使用稳联技术CCLink IE转Modbus TCP网关(WL-CCIE-TCP)来实现协议转换。 首先打开GX WORKS3组态软件在左…

gis风场加载

https://gitee.com/openGPL json数据格式使用v1 “sakitam-gis/mapbox-wind”: “1.1.2” import { WindLayer } from "sakitam-gis/mapbox-wind"; windLayer new WindLayer("wind", res.data, {windOptions: {// colorScale: (m) > {// // consol…