web-dev-qa-db-ja.com

すべての情報(アートワークを含む)を保持しながら、可聴AAXファイルをM4B形式に変換する方法

私は、(何年にもわたって購入した)AAXファイル全体をM4Bにバッチ処理できるソリューションを見つけようとしました。

シークレットを抽出するために audible-activator を使用してみました。次に、次のように-activation_bytes [secret]でFFMPEGを使用しました。

ffmpeg -activation_bytes xxxxxxxx -i BOOK.AAX -c:a copy book.mp4 

問題は、MP4に変換するだけでなく、すべてのアートワークをコピーするバッチファイルを作成する方法です。

何か案は?

1
Eh'den

解決策は単純で、次のプログラムが必要です(Windowsソリューション)。

  1. FFmpeg
  2. AtomicParsley

これらのプログラム(AAXファイルが存在する場所またはPATH経由で利用可能)を使用して、次のWindowsバッチファイルを作成します。

FOR /r %%a IN (*.aax) DO (^
del cover.jpg /Q & del "%%~na.mp4" /Q & del "%%~na.m4b" /Q & ^
ffmpeg -activation_bytes XXXXXXXX -i "%%a" -vcodec copy cover.jpg & ^
ffmpeg -activation_bytes XXXXXXXX -i "%%a" -vn -c:a copy -map_metadata 0:g "%%~na.mp4" & ^
ren "%%~na.mp4" "%%~na.m4b" & ^
IF exist cover.jpg (AtomicParsley.exe "%%~na.m4b" --artwork cover.jpg --overWrite) & ^
del cover.jpg /Q )

または一行で:

FOR /r %%a IN (*.aax) DO (del cover.jpg /Q & del "%%~na.mp4" /Q & del "%%~na.m4b" /Q & ffmpeg -activation_bytes XXXXXXXX -i "%%a" -vcodec copy cover.jpg & ffmpeg -activation_bytes XXXXXXXX -i "%%a" -vn -c:a copy -map_metadata 0:g "%%~na.mp4" & ren "%%~na.mp4" "%%~na.m4b" & IF exist cover.jpg (AtomicParsley.exe "%%~na.m4b" --artwork cover.jpg --overWrite) & del cover.jpg /Q )

ここで、XXXXXXXXは、audible-activatorを使用して抽出されたシークレットです。これは、同じユーザーが所有(購入)したすべてのファイルで同じです。

このバッチファイルの機能:

  1. 以前の変換試行から可能なファイルを削除します
  2. fFmpegを使用して、可聴アルバムアート(利用可能な場合)を「cover.jpg」というファイルに抽出します
  3. fFmpegを使用して、AAXファイルとすべてのメタデータからAACオーディオを抽出し、MP4ファイルに保存します
  4. mP4ファイルの名前をM4Bに変更します
  5. (利用可能な場合)AtomicParsleyを使用してMP4ファイルにアルバムアートを追加します
  6. cover.jpgファイルを削除します
2
Eh'den

私はこれが古いことを知っていますが、これを更新したいと思いました。 FFmpeg 4.1では、アルバムアートをコピーするためのネイティブサポートが追加され、サードパーティのプログラムは不要になりました。オーディオブックを変換するには、次の簡略化されたコマンドを使用します。

ffmpeg -activation_bytes XXXXXXXX -i MyNiceBook.aax -c copy MyNiceBook.m4b

公式ドキュメント-vnフラグがまだ含まれているため、これを見つけるのに少し時間がかかりました。

ソース: https://Gist.github.com/r15ch13/0c548be006431607bf1eaecefdc0591a#gistcomment-2800421

0
Chris Sandvik