diff --git a/archrived-shells/ffmpeg.sh b/archrived-shells/ffmpeg.sh new file mode 100644 index 0000000..e20166f --- /dev/null +++ b/archrived-shells/ffmpeg.sh @@ -0,0 +1,29 @@ +#!/bin/bash + +extensions=("mp4" "avi" "mov" "mkv" "flv" "wmv") + +echo "开始批量转码,输出格式为 AVC/H.264 编码的 MP4..." +echo + +for ext in "${extensions[@]}"; do + for file in *."$ext"; do + # 检查文件是否存在(避免没有匹配文件时报错) + [ -f "$file" ] || continue + + output="${file%.*}.mp4" + if [ ! -f "$output" ]; then + echo "正在转码: $file --> $output" + ffmpeg -i "$file" -c:v libx264 -preset medium -crf 23 -c:a aac -b:a 128k "$output" + if [ $? -eq 0 ]; then + echo "完成: $file" + else + echo "转码失败: $file" + fi + echo + else + echo "跳过 $file,因为 $output 已存在。" + fi + done +done + +echo "所有任务执行完毕。" \ No newline at end of file