Voglio convertire la mia musica da flac a ogg e attualmente oggenc lo fa perfettamente tranne che per le copertine degli album. Metaflac può produrre copertine di album, tuttavia non sembra esserci alcun strumento da riga di comando per incorporare le copertine degli album in ogg. Mp3tag e EasyTag sono in grado di farlo, e v'è una specifica per esso qui che prevede l'immagine da base64 codificato. Tuttavia, finora non ho avuto successo nel riuscire a prendere un file di immagine, convertendolo in base64 e incorporandolo in un file ogg.
Se prendo un'immagine codificata in base64 da un file ogg che ha già l'immagine incorporata, posso facilmente incorporarla in un'altra immagine usando vorbiscomment:
vorbiscomment -l withimage.ogg > textfile
vorbiscomment -c textfile noimage.ogg
Il mio problema è prendere qualcosa come un jpeg e convertirlo in base64. Attualmente ho:
base64 --wrap=0 ./image.jpg
Il che mi dà il file di immagine convertito in base64, usando vorbiscomment e seguendo le regole di tagging, posso incorporarlo in un file ogg in questo modo:
echo "METADATA_BLOCK_PICTURE=$(base64 --wrap=0 ./image.jpg)" > ./folder.txt
vorbiscomment -c textfile noimage.ogg
Tuttavia, questo mi dà un oggetto la cui immagine non funziona correttamente. Ho notato quando si confrontano le stringhe base64 che tutte le immagini che incorporano correttamente hanno una riga di intestazione ma tutte le stringhe base64 che ho generato mancano di questa intestazione. Ulteriore analisi dell'intestazione:
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
Che segue le specifiche fornite sopra. L'avviso 003 corrisponde alla copertina e image / jpeg è il tipo mime.
Quindi, alla fine, la mia domanda è: come posso base64 codificare un file e generare questa intestazione insieme ad esso per incorporarlo in un file ogg?