blob: 600037f388a963e4f86d3710ef82782465f3c633 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
#!/bin/bash
# それぞれのディレクトリパス
input_dir="/media/ncp/yt/music"
output_dir="/media/ncp/yt/musicmp3"
# 出力ディレクトリが存在しない場合は作成する
mkdir -p $output_dir
# フォーマット指定、現状出力はmp3のみ
in="webm"
out="mp3"
# ディレクトリ内全てに適応させる
#find "$input_dir" -type f -name "*$in" | while IFS= read -r file; do
shopt -s globstar
for file in "$input_dir"/**/*.${in}; do
# baseを指定
base=$(basename "$file" .${in})
# ファイルのディレクトリ取得
file_dir=$(dirname "$file")
# ディレクトリパスの一部を置換して新しいパスを作成
outfile_dir="${output_dir}${file_dir#$input_dir}"
mkdir -p "$outfile_dir"
# サムネイルのパス指定
thumbnail="${outfile_dir}/${base}_thumbnail.jpg"
# ビデオファイルからmp3に変換
ffmpeg -i "$file" -vn -acodec libmp3lame -qscale:a 2 "$outfile_dir/${base}.${out}"
# 映像ファイルからサムネイル抽出
if ffmpeg -i "$file" -an -vframes 1 -q:v 2 "$thumbnail" -y; then
echo "Thumbnail extracted for $base"
ffmpeg -i "$outfile_dir/${base}.${out}" -i "$thumbnail" -map 0 -map 1 -c copy -id3v2_version 3 -metadata:s:v title="Album cover" -metadata:s:v comment="Cover (front)" -y "$outfile_dir/${base}_with_thumbnail.${out}"
rm "${outfile_dir}/${base}}"
rm "${outfile_dir}/${base}_thumbnail.jpg"
mv "${outfile_dir}/${base}_with_thumbnail.${out}" "$outfile_dir/${base}.${out}"
else
echo "No thumbnail found for $base"
fi
done
|