web-dev-qa-db-fra.com

Comment ajouter une pochette d'album avec ffmpeg?

J'ai été bloqué pour ajouter une pochette d'album sur des fichiers mp3.

J'ai déjà recherché et recherché ce problème sur Google, mais je n'ai pas encore trouvé de solution. La documentation ffmpeg recommande ce script pour ajouter une image (pochette d'album) au 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

Source: http://www.ffmpeg.org/ffmpeg-all.html#mp

Mais ça ne marche pas. La sortie de ma console est:

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

J'ai cherché une autre solution et j'ai obtenu ceci: 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

Cela renvoie la même sortie:

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

Quelqu'un peut-il m'aider, s'il vous plaît?

nb: j'utilise ubuntu 12.04 et ffmpeg version 0.8.6-4: 0.8.6-0.

Merci.

28
Adi Ricky k

Avec la version récente,

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

Utilisation -map pour associer le flux d'entrée à la sortie
Utilisation -c copy pour démultiplexer/remux directement
Le -id3v2_version 3 est ce qui manque dans votre ligne de commande. Notez que cela va écrire un IDV2.3 mais vous pouvez demander un 2.4 (-id3v2_version 4)

avec le -id3v2_version 3 l'option -metadataoption sera bien interprétée

Remarque: le commentaire des métadonnées est sensible à la casse.

30
alexbuisson

Il y a une chose importante à noter ici, qui m'a fait perdre une heure de travail:

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 dans comment="Cover (front)" doit être en minuscules. Sinon, le type d'image dans l'en-tête ID3 ne sera pas défini!

Un autre indice qui pourrait aider quelqu'un: pour éviter qu'une image de couverture JPEG soit convertie en png, vous devez définir -codec copy.

11
Lorenz Meyer

le problème est que vous ne définissez pas quel codec vous souhaitez copier. Dans le cas où l'audio devrait être -c:a copy la pochette est reconnue comme vidéo (allez comprendre !!), donc -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
1
Mauricio