群晖ffmpeg视频转码(适用于linux)
https://packages.synocommunity.com 添加社区,安装ffmpeg6
我采用的是h.265(hevc)文件压缩30%左右,视频质量不变,主流播放器可以播放(小部分不支持)
INPUT_DIR="原文件目录"
OUTPUT_DIR="输出目录"
需要成功后删除原文件放开注视就好,推荐全部转码后删除原本文件夹
#!/bin/bash
INPUT_DIR="/volume1/x/"
OUTPUT_DIR="/volume1/x/out"
# 确保输出目录存在
mkdir -p "$OUTPUT_DIR"
for input_file in "$INPUT_DIR"/*; do
if [[ -f "$input_file" ]]; then
filename=$(basename -- "$input_file")
output_file="$OUTPUT_DIR/${filename%.*}.mp4"
# 转码文件
ffmpeg6 -i "$input_file" -c:v libx265 -c:a copy "$output_file"
# 检查 FFmpeg 是否成功
if [[ $? -eq 0 ]]; then
# 转码成功
echo "Successfully converted $input_file to $output_file"
#rm "$input_file" # 转码成功后删除原文件(目前注释掉)
else
# 转码失败,删除生成的文件
rm "$output_file"
echo "Failed to convert $input_file"
fi
fi
done
在这个脚本中:
- 注释掉了删除原文件的命令
rm "$input_file"
,但保留了其注释说明,以便将来需要时可以恢复。
评论区