將MP4或WEBM影片檔轉換為帶有縮圖的MP3的Shell腳本

大家好,我是無能。
如果直接使用ffmpeg將影片轉換為音訊檔,會遺失縮圖,所以我嘗試用shell腳本來實現。
只需轉換,然後輸出並合併縮圖,接著刪除不需要的檔案並恢復原始名稱。
#!/bin/bash
# 各目錄路徑
input_dir=“/media/m”
output_dir=“/media/m/mp3”
# 如果輸出目錄不存在則建立
mkdir -p “$output_dir”
# 格式指定※目前僅轉換為mp3,但如果我有動力,會考慮加入其他格式的分支...
in=“mp4”
out=“mp3”
# 適用於目錄中的所有檔案
for file in “$input_dir”/*.${in}; do
# 指定base
base=$(basename “$file” .${in})
# 指定MP3路徑
output=“${output_dir}/${base}.${out}”
# 指定縮圖路徑
thumbnail=“${output_dir}/${base}_thumbnail.jpg”
# 將影片檔轉換為mp3
ffmpeg -i “$file” -vn -acodec libmp3lame -qscale:a 2 “$output”
# 從影片檔中提取縮圖
if ffmpeg -i “$file” -an -vframes 1 -q:v 2 “$thumbnail” -y; then
echo “Thumbnail extracted for $base”
ffmpeg -i “$output” -i “$thumbnail” -map 0 -map 1 -c copy -id3v2_version 3 -metadata:s:v title=“Alb
um cover” -metadata:s:v comment=“Cover (front)” -y “${output_dir}/${base}_with_thumbnail.${out}”
rm “${output_dir}/${base}.${out}”
rm “${output_dir}/${base}_thumbnail.jpg”
mv “${output_dir}/${base}_with_thumbnail.${out}” “${output_dir}/${base}.${out}”
else
echo “No found for $base”
fi
done
授予執行權限
chmod +x convert.sh
由於是SSH連線,因此設定為即使會話中斷也能在後台運行
nohup ./convert.sh &
結束。