私はFFmpegのZeranoeビルドを使用しています。オーディオストリームに関しては、mp3ファイルをm4aファイルに問題なく変換しますが、ffmpegが何らかの理由で認識している曲のアルバムカバーjpegを保持する方法がわかりません。
Stream #0:1: Video: mjpeg, yuvj420p, 200x200 [SAR 120:120 DAR 1:1]
output.m4a
ファイルに含まれています。次のコマンドラインを使用する場合:
ffmpeg.exe -i 09.mp3 -map 0 -codec:a libvo_aacenc -ab 320k -ar 44100 -ac 2 -codec:v copy output.m4a
no tag, codec not currently in the container
エラーが発生します。それでも、iTunesで処理された.m4a
ファイルを使用してffprobeを実行すると、次のようになります。
Stream #0:1: Video: mjpeg, yuvj420p, 350x350 [SAR 72:72 DAR 1:1]
それで、ffmpeg変換で曲のカバーもコピーする方法はありますか?
私に関する限り、通常AACオーディオ(.m4a
)に使用するMP4コンテナのアルバムアートワークを設定するようにFFmpegに指示する簡単な方法はありません。ただし、 AtomicParsley を使用して、後でコマンドラインからアートワークを追加できます。
AtomicParsleyをインストールする方法は次のとおりです。
apt-get install atomicparsley
brew install atomicparsley
ただし、最初に、アートワークを抽出する必要があります。 JPEGファイルとして:
ffmpeg -i input.mp3 artwork.jpg
次に、AtomicParsleyを使用してアルバムアートワークを追加できます。
AtomicParsley output.m4a --artwork artwork.jpg
これは元のファイルを上書きしませんが、代わりに一時ファイルを作成します。 output-temp-15274.m4a
。オリジナルを上書きする場合は、コマンドに--overWrite
オプションを追加します。例:
AtomicParsley output.m4a --artwork artwork.jpg --overWrite
そしてvoilà:
便利なWindowsバッチファイル:
@ECHO OFF
REM Extracting album cover art and resizing to 300x300 into temporary file in PNG format
REM because FFMPEG can’t handle properly cover art directly...
ffmpeg -i %1 -an -vcodec png -vf scale=300:-1 __arttemp__.png -y
REM timeout 30
REM Converting audio to AAC LLC into .M4A container (Apple "Signed")
REM The FFMPEG does not apply LowPass filter, but there is not so
REM much control over other parameters, but in tests was the righest
REM VBR rate (350~400 Kbps)...
ffmpeg -i %1 -acodec aac -ab 512k -ac 2 -vn %2 -y
REM timeout 30
REM Applying already cover art image extracted from original file
REM with this new "AtomicParsley"...
AtomicParsley %2 --artwork __arttemp__.png --overWrite
REM timeout 30
REM Deleting temporary cover art file...
del __arttemp__.jpg
REM timeout 30
FFmpegにはこの機能に関する 未解決の問題 があります。それまでの間、カバーは TagEditor project で追加できます。たす:
tageditor -s cover=ju.jpg --max-padding 100000 -f ki.m4a
削除する:
tageditor -s cover= --max-padding 100000 -f ki.m4a