欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 金融 > 使用Python和FFmpeg批量转换视频为GIF

使用Python和FFmpeg批量转换视频为GIF

2025/2/23 0:47:48 来源:https://blog.csdn.net/wxdzuishaui/article/details/145191807  浏览:    关键词:使用Python和FFmpeg批量转换视频为GIF

使用Python和FFmpeg批量转换视频为GIF

我们来继续昨天的项目,但是昨天所说的是单个视频转pdf,要实现批量转化,还需进行参数的调整

批量转换视频为GIF的示例代码

下面是一个Python脚本示例,展示了如何遍历一个目录中的所有视频文件,并将它们批量转换为GIF。

import subprocess
import osdef convert_video_to_gif(input_video_path, output_gif_path, start_time, duration):# FFmpeg命令command = ['ffmpeg','-ss', str(start_time),  # 指定开始时间'-t', str(duration),      # 指定持续时间'-i', input_video_path,   # 输入视频路径'-vf', 'fps=10,scale=320:-1:flags=lanczos',  # 处理视频帧率和尺寸'-c:v', 'gif',           # 输出格式为gifoutput_gif_path          # 输出GIF路径]# 执行命令subprocess.run(command)print(f"成功将视频 {input_video_path} 转换为GIF {output_gif_path}!")def batch_convert_videos(input_directory, output_directory, start_time, duration):# 确保输出目录存在os.makedirs(output_directory, exist_ok=True)# 遍历输入目录中的所有文件for filename in os.listdir(input_directory):if filename.endswith(('.mp4', '.avi', '.mov', '.mkv')):  # 支持的视频格式input_video_path = os.path.join(input_directory, filename)output_gif_path = os.path.join(output_directory, f"{os.path.splitext(filename)[0]}.gif")  # 输出GIF文件名# 确保输入文件存在if os.path.exists(input_video_path):convert_video_to_gif(input_video_path, output_gif_path, start_time, duration)else:print(f"输入视频文件 {input_video_path} 不存在,请检查路径。")# 使用示例
input_directory = 'videos'  # 输入视频文件所在目录
output_directory = 'gifs'    # 输出GIF文件所在目录
start_time = 5               # 从视频的第5秒开始
duration = 2                 # 持续时间为2秒batch_convert_videos(input_directory, output_directory, start_time, duration)

代码解析

  • 批量处理函数batch_convert_videos函数接受输入目录、输出目录、开始时间和持续时间作为参数。
  • 遍历目录:使用os.listdir遍历输入目录中的所有文件,检查文件扩展名以确定是否为支持的视频格式(如.mp4.avi.mov.mkv)。
  • 生成输出路径:使用os.path.splitext获取文件名(不带扩展名),并生成输出GIF的路径。
  • 确保输出目录存在:使用os.makedirs创建输出目录(如果不存在的话)。
  • 调用转换函数:对每个视频文件调用convert_video_to_gif函数进行转换。

运行脚本

  1. 将你要转换的视频文件放在指定的输入目录(例如videos)。
  2. 运行上述Python脚本,生成的GIF文件将保存在指定的输出目录(例如gifs)中。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词