脳みそスワップアウト

揮発性なもので。おもにPHPのこととか。

ffmpeg で flac から mp3 に一括変換

最近はマスタはflacで保存しておくようになった。
エンコードも早くてリッピングは快適である。
ディスクは食うが無劣化・可逆というのは精神衛生上いいものだ。

持ち出す場合にはmp3にすることが多いので、
一括変換のbashスクリプトを書いたというメモ。

#!/bin/bash

#####
# カレントディレクトリ内の *.flac から *.mp3 を作成する
#####
BASE_DIR=$(cd $(dirname $0);pwd)

#FFMPEG_BIN="/c/apps/ffmpeg/bin/ffmpeg.exe"
FFMPEG_BIN="/c/apps/ffmpeg-4.1/bin/ffmpeg.exe"

# 最高品質VBR
#FFMPEG_OPT="-ac 2 -q:a 0 -acodec libmp3lame -f mp3 -map_metadata 0 -id3v2_version 3 -vcodec copy -pass 2"
# CBR 256k
#FFMPEG_OPT="-ac 2 -ar 44100 -ab 256k -acodec libmp3lame -f mp3 -map_metadata 0 -id3v2_version 3 -vcodec copy -pass 2"
# CBR 192k
FFMPEG_OPT="-ac 2 -ar 44100 -ab 192k -acodec libmp3lame -f mp3 -map_metadata 0 -id3v2_version 3 -vcodec copy -pass 2"


### main

ORG_IFS=$IFS
IFS=$'\n'

for f in $(ls -1 ./*.flac); do
  IFS=$ORG_IFS
  "${FFMPEG_BIN}" -i "${f}" ${FFMPEG_OPT} "${f%.flac}.mp3"
done

IFS=$ORG_IFS

Google Play Music に置く場合はflacを上げればmp3に変換してくれるようだ。
flacのタグを除いたデータ部のみで同一ファイルと判断する模様。
タグを修正して上げなおすとちゃんと上書きされる。