Как добавить обложку альбома с помощью ffmpeg?

Я застрял, чтобы добавить обложку альбома в mp3 файлы.

Я уже исследовал и погуглил эту проблему, но пока не нашел решения. Документация ffmpeg рекомендует этот скрипт для добавления изображения (обложки альбома) в mp3:

ffmpeg -i input.mp3 -i cover.png -c copy -map 0 -map 1 -metadata:s:v title="Album cover" -metadata:s:v comment="Cover (Front)" out.mp3

Источник: http://www.ffmpeg.org/ffmpeg-all.html#mp3

Но это не работает. Мой консольный вывод:

Unrecognized option 'c'
Failed to set value 'copy' for option 'c'

Я искал другое решение и получил это: http://trac.ffmpeg.org/ticket/2221:

ffmpeg -i input.mp3 -i cover.png -map 0:0 -map 1:0 -c copy -id3v2_version 3 -metadata:s:v title="Album cover" -metadata:s:v comment="Cover (Front)" out.mp3

Это возвращает тот же результат:

Unrecognized option 'c'
Failed to set value 'copy' for option 'c'

Кто-нибудь может мне помочь, пожалуйста?

Примечание: я использую Ubuntu 12.04 и ffmpeg версии 0.8.6-4: 0.8.6-0.

Благодарю.

Ответ 1

С последней версией,

ffmpeg -i in.mp3 -i test.png -map 0:0 -map 1:0 -c copy -id3v2_version 3 -metadata:s:v title="Album cover" -metadata:s:v comment="Cover (front)" out.mp3

Используйте -map для связывания входного потока с выходом
Использовать -c copy для прямого demux/remux
-id3v2_version 3 - это то, что отсутствует в вашей командной строке. Обратите внимание, что wil пишет IDV2.3, но вы можете запросить 2.4 (-id3v2_version 4)

с -id3v2_version 3 опция -metadata будет хорошо интерпретирована

Примечание: комментарий метаданных чувствителен к регистру.

Ответ 2

Здесь очень важно заметить, что я потерял час работы:

ffmpeg -i in.mp3 -i test.jpeg -map 0:0 -map 1:0 -codec copy -id3v2_version 3 \ 
-metadata:s:v title="Album cover" -metadata:s:v comment="Cover (front)" out.mp3

Значение f в comment="Cover (front)" должно быть строчным. Если нет, тип изображения в заголовке ID3 не будет установлен!

Еще один намек, который может помочь кому-то: Чтобы изображение JPEG-изображения было преобразовано в png, вам нужно установить -codec copy.

Ответ 3

проблема в том, что вы не определяете, какой кодек вы хотите скопировать. В случае аудио должно быть -c:a copy обложки распознается как видео (иди на фигуру !!), поэтому -c:v copy

ffmpeg -i audio-in.mp3 -i picture.png -c:a copy -c:v copy -map 0:0 -map 1:0 -id3v2_version 3 -metadata:s:v title="Album cover" -metadata:s:v comment="Cover (front)" audio-out.mp3