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

import subprocess import os def 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', # 输出格式为gif output_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)
上一篇:面试: 工作中常用的linux命令


下一篇:Mockito+PowerMock+Junit单元测试