Встройте искусство альбома в OGG через командную строку в Linux

Я хочу преобразовать свою музыку от flac до ogg, и в настоящее время oggenc делает это отлично за исключением искусства альбома. Metaflac может произвести искусство альбома, однако, кажется, нет никакого инструмента командной строки для встраивания искусства альбома в ogg. MP3Tag и EasyTag могут сделать это, и существует спецификация для него здесь который призывы к изображению, чтобы быть закодированным base64. Однако до сих пор я был неудачен в способности взять файл изображения, преобразовав его в base64 и встраивание его в ogg файл.

Если я беру base64 закодированное изображение из ogg файла, которому уже встроили изображение, я могу легко встроить его в другое изображение с помощью vorbiscomment:

vorbiscomment -l withimage.ogg > textfile
vorbiscomment -c textfile noimage.ogg

Моя проблема берет что-то как jpeg и преобразовывает его в base64. В настоящее время я имею:

base64 --wrap=0 ./image.jpg

Который дает мне файл изображения, преобразованный в base64, с помощью vorbiscomment и после правил меток, я могу встроить это в 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 является типом пантомимы.

Таким образом, наконец мой вопрос, как может я base64 кодировать файл и генерировать этот заголовок наряду с ним для встраивания в ogg файл?

15
задан 30.07.2010, 22:28

1 ответ

Я не знаю ни о чем, что делает это автоматически, просто указав на изображение.

Однако vorbiscomment может встроить произвольные теги, просто необходимо закодировать изображение в base64 и затем создать тег в правильном формате.

например, vorbiscomment -a -t 'METADATA_BLOCK_PICTURE=...' file.ogg newfile.ogg

необходимо будет взломать эти шаги сценарий некоторого вида для него, чтобы быть полезными.

2
ответ дан 07.12.2019, 11:09

Теги

Похожие вопросы