将视频按分辨率重命名为 1080P 或 720P
判断 MP4 文件是 720P 还是 1080P,并根据分辨率在文件名后添加 _720P.mp4 或 _1080P.mp4 后缀(例如将 348AAA-003.mp4 重命名为 348AAA-003_720P.mp4 或 348AAA-003_1080P.mp4)。
# 预览
for file in *.mp4; do
if [[ ! "$file" =~ _720P\.mp4$ && ! "$file" =~ _1080P\.mp4$ ]]; then
resolution=$(ffprobe -v error -select_streams v:0 -show_entries stream=width,height -of csv=s=x:p=0 "$file" 2>/dev/null)
width=$(echo "$resolution" | cut -d'x' -f1)
if [[ "$width" -ge 1920 ]]; then
quality="_1080P"
elif [[ "$width" -ge 1280 ]]; then
quality="_720P"
else
quality="_Unknown"
fi
echo "将 $file 重命名为 ${file%.mp4}${quality}.mp4"
fi
done
#!/bin/bash
# 遍历所有 mp4 文件
for file in *.mp4; do
# 确保是文件且不以 _720P 或 _1080P 结尾(避免重复处理)
if [[ -f "$file" && ! "$file" =~ _720P\.mp4$ && ! "$file" =~ _1080P\.mp4$ ]]; then
# 获取视频分辨率
resolution=$(ffprobe -v error -select_streams v:0 -show_entries stream=width,height -of csv=s=x:p=0 "$file" 2>/dev/null)
# 提取宽度
width=$(echo "$resolution" | cut -d'x' -f1)
# 确定分辨率标签
if [[ "$width" -ge 1920 ]]; then
quality="_1080P"
elif [[ "$width" -ge 1280 ]]; then
quality="_720P"
else
quality="_Unknown"
echo "警告:$file 分辨率 $resolution 未知,标记为 Unknown"
fi
# 构建新文件名(去掉 .mp4 后缀,添加质量标签)
base_name="${file%.mp4}"
new_name="${base_name}${quality}.mp4"
# 检查是否已存在目标文件名
if [[ -f "$new_name" ]]; then
echo "警告:$new_name 已存在,跳过 $file"
else
mv -i "$file" "$new_name"
echo "已将 $file 重命名为 $new_name"
fi
fi
done