当前位置: 首页 > article >正文

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

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

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

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

下面是一个Python脚本示例,展示了如何遍历一个目录中的所有视频文件,并将它们批量转换为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)

代码解析

  • 批量处理函数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)中。

http://www.kler.cn/a/511454.html

相关文章:

  • LeetCode:2266. 统计打字方案数(DP Java)
  • Elasticsearch 和arkime 安装
  • vue集成高德地图API实现坐标拾取功能
  • 八大排序--冒泡排序
  • RabbitMQ-消息可靠性以及延迟消息
  • HarmonyOS NEXT应用开发边学边玩系列:从零实现一影视APP (四、最近上映电影滚动展示及加载更多的实现)
  • 49.向配置文件写入 C#例子
  • Windows截获系统鼠标消息转发到指定窗口
  • Unity 热更新对象绑定的替代方案--StrangeIoC 注入方式
  • 计算机毕业设计Python+卷积神经网络租房推荐系统 租房大屏可视化 租房爬虫 hadoop spark 58同城租房爬虫 房源推荐系统
  • 3D线上会议:打破空间限制,重塑会议未来
  • 管理口令安全和资源(二)
  • CSS笔记基础篇01——选择器、文字控制属性、背景属性、显示模式、盒子模型
  • HTTP/2 与 HTTP/3 的新特性
  • Matlab总提示内存不够用,明明小于电脑内存
  • DilateFormer: Multi-Scale Dilated Transformer for Visual Recognition 中的空洞自注意力机制
  • ACL基础理论
  • 跨境电商使用云手机用来做什么呢?
  • 网络系统管理Linux环境——ROUTERSRV之SSH
  • 怎么在iPhone手机上使用便签进行记录?
  • 在亚马逊云科技上高效蒸馏低成本、高精度的Llama 3.1 405B模型(上篇)
  • QT 使用OpenGL显示并查看点云图
  • LabVIEW 水电站厂内经济运行系统
  • Spring Security 6.X + JWT + RBAC 权限管理实战教程(上)
  • Redis 在项目中的实战应用与复盘
  • CSS中样式继承+优先级