批量提取mp4文件中的音频
!/bin/bash
检查是否传入输入目录参数
if [ -z "$1" ]; then
echo "Usage: $0 <input_dir> [output_dir]"
exit 1
fi
获取输入和输出目录
INPUT_DIR="$1"
OUTPUT_DIR="${2:-./mp3_files}" # 如果未指定 output_dir,则默认为当前目录下的 mp3_files
检查输入目录是否存在
if [ ! -d "$INPUT_DIR" ]; then
echo "Error: Input directory '$INPUT_DIR' does not exist."
exit 1
fi
创建输出目录(如果不存在)
mkdir -p "$OUTPUT_DIR"
遍历输入目录中的所有 .mp4 文件
for mp4_file in "$INPUT_DIR"/*.mp4; do
# 检查是否有匹配的文件
if [ ! -f "$mp4_file" ]; then
echo "No .mp4 files found in $INPUT_DIR"
exit 0 # 正常退出,不算错误
fi
# 生成输出的 .mp3 文件名
filename=$(basename "$mp4_file" .mp4)
mp3_file="$OUTPUT_DIR/$filename.mp3"
# 如果 mp3 文件已存在则跳过
if [ -f "$mp3_file" ]; then
echo "File $mp3_file already exists, skipping..."
continue
fi
# 提取音频并保存为 mp3
ffmpeg -i "$mp4_file" -q:a 0 -map a "$mp3_file" -y
if [ $? -eq 0 ]; then
echo "Successfully extracted audio from $mp4_file to $mp3_file"
else
echo "Failed to extract audio from $mp4_file"
fi
done
echo "Batch processing completed."
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库