私は自分の音楽をflacからoggに変換したいのですが、現在oggencはアルバムアート以外は完全にそれを行っています。Metaflacはアルバムアートを出力できますが、アルバムアートをoggに埋め込むコマンドラインツールはないようです。MP3TagとEasyTagはそれを行うことができ、base64でエンコードされる画像を要求する仕様がここにあります。ただし、これまでのところ、画像ファイルを取得してbase64に変換し、oggファイルに埋め込むことができませんでした。
既に画像が埋め込まれているoggファイルからbase64でエンコードされた画像を取得する場合、vorbiscommentを使用して別の画像に簡単に埋め込むことができます。
vorbiscomment -l withimage.ogg > textfile
vorbiscomment -c textfile noimage.ogg
私の問題は、jpegのようなものを取得してbase64に変換することです。現在私は持っています:
base64 --wrap=0 ./image.jpg
これにより、vorbiscommentを使用してタグ付け規則に従ってbase64に変換された画像ファイルが得られ、次のようにoggファイルに埋め込むことができます。
echo "METADATA_BLOCK_PICTURE=$(base64 --wrap=0 ./image.jpg)" > ./folder.txt
vorbiscomment -c textfile noimage.ogg
ただし、これにより、画像が正しく機能しないoggが生成されます。base64文字列を比較すると、適切に埋め込まれたすべての画像にヘッダー行がありますが、生成するbase64文字列にはすべてこのヘッダーがありません。ヘッダーのさらなる分析:
od -c header.txt
0000000 \0 \0 \0 003 \0 \0 \0 \n i m a g e / j p
0000020 e g \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
0000040 \0 \0 \0 \0 \0 \0 \0 \0 035 332
0000052
上記の仕様に従います。通知003は表紙に対応し、image / jpegはMIMEタイプです。
最後に、私の質問は、ファイルをbase64でエンコードし、oggファイルに埋め込むためにこのヘッダーをヘッダーとともに生成するにはどうすればよいですか?