#!/bin/bash

# 检查是否提供了输入文件
if [ $# -eq 0 ]; then
    echo "错误：未提供输入文件。"
    echo "用法：$0 [mp4文件路径] [JPEG文件前缀] [帧率]"
    exit 1
fi

# 输入文件
input_file="$1"

# 输出前缀（默认为"frame"）
output_prefix="${2:-frame}"

# 帧率（默认为原视频帧率）
framerate="${3:-}"

# 检查输入文件是否存在
if [ ! -f "$input_file" ]; then
    echo "错误：文件 '$input_file' 不存在。"
    exit 1
fi

# 构建FFmpeg命令
ffmpeg_cmd="ffmpeg -i \"$input_file\""

# 如果指定了帧率，添加帧率选项
if [ -n "$framerate" ]; then
    ffmpeg_cmd="$ffmpeg_cmd -r $framerate"
fi

# 设置输出格式和命名规则
mkdir -p picture
ffmpeg_cmd="$ffmpeg_cmd -q:v 2 \"./picture/${output_prefix}%04d.jpg\""

# 执行命令
echo "正在将视频转换为图片..."
echo "执行命令: $ffmpeg_cmd"
eval "$ffmpeg_cmd"

# 检查命令执行状态
if [ $? -eq 0 ]; then
    echo "转换完成！图片已保存为 '${output_prefix}0001.jpg', '${output_prefix}0002.jpg', ..."
else
    echo "转换过程中出现错误。"
    exit 1
fi