====== ffmpeg : gestion des metadata dans un MP3 ======

{{tag>"Linux commande"}}

Utilisation du programme **ffmpeg** pour manipuler les metadata des fichiers MP3. Cela impactera directement les TAG des mp3 et les informations présentes dans iTunes et autres bibliothèques multimédia.
===== Créer un fichier metadata =====

Exemple de fichier **metadata.txt** :
<code>
;FFMETADATA1
title=bike\\shed
;this is a comment
artist=FFmpeg troll team

[CHAPTER]
TIMEBASE=1/1000
START=0
#chapter ends at 0:01:00
END=60000
title=chapter \#1
[STREAM]
title=multi\
line

</code>

Autre exemple :

<code>
;FFMETADATA1
title=NRJ MEGAMIX 10.06.1990 [B!] \#mcXtra
artist=NRJ
album_artist=Cédric
album=mindCast XTRA
encoded_by=Cédric / JSide_fr
genre=Musique
comment=Mettez les ringards au placard, c'est Megamix qui redémarre. Dimitrouille le roi de la bidouille pour un panaché très estival du meilleur de la dance musique de l'année 90. C'est Megamix du 10 juin 1990\
\
00:06 [JINGLE] Top horaire Megamix\
00:35 [SPEAK] Dimitri\
01:19 Art Of Noise - Art Of Love\
07:15 Diana Brown & Barrie K Sharpe - The Masterplan (Extended Version)\
11:47 Dimitri - Summer Vibes\
16:48 Digital Underground - Freaks Of The Industry\
20:50 Barry White - I Wanna Do It Good To Ya\
25:14The Chimes - Stronger Together (Red Zone Mix)\
30:52 Blaze - So Special (So So Mix)\
33:58 The Rock Posse Featuring Fonda Rae - Do You Want My Love? (Smooth R&B Mix)\
37:58 Satoshi Tomiie Featuring Arnold Jarvis - And I Loved You (12" Red Zone Vocal Mix)\
47:07 New Order - World In Motion (Remix)\
48:44 Prince - The Future (Remix)\
52:17 [SPEAK] Dimitri\
53:12 [JINGLE] Fin\
\
+ d'infos sur http://house-revival.blogspot.com/p/nrj-club-nrj-megamix.html\
Remasterisé par Cédric @jside_fr.
copyright=NRJ
date=2019
encoder=Lavf58.20.100

</code>

===== Liste des metadata possibles =====

^Windows^iTunes (Info tab)^id3v2.3^id3v2.4^ffmpeg key^ffmpeg example|
|Title|Title|TIT2|title|-metadata title=”Adagio for Strings”|
|Subtitle|Description \\ (Video tab)|TIT3|TIT3|-metadata TIT3=”Op. 91″|
|Comments|Comments|COMM||not implemented|
|Contributing artists|Artist|TPE1|artist|-metadata artist=”Yo Yo Ma/London Symphony”|
|Album artist|Album Artist|TPE2|album_artist|-metadata album_artist=”London Symphony”|
|Album|Album|TALB|album|-metadata album=”String Classics”|
|Year|Year|TYER|date|-metadata date=”2012″|
|#|Track Number|TRCK|track|-metadata track=”3/12″ \\ (means track number 3 of 12)|
|Genre|Genre|TCON|genre|-metadata genre=”Classical”|
|Publisher||TPUB|publisher|-metadata publisher=”London Publishing”|
|Encoded by||TENC|encoded_by|-metadata encoded_by=”Telarc”|
|Author URL||WOAR||not implemented|
|Copyright \\ (Not Editable)||TCOP|copyright|-metadata copyright=”â Telarc”|
|Composers||TCOM|composer|-metadata composer=”J.S. Bach”|
|Conductors||TPE3|performer|-metadata performer=”T. S. Miles”|
|Group description|Grouping|TIT1|TIT1|-metadata TIT1=”The Classics”|
|Part of set|Disc Number|TPOS|disc|-metadata disc=”1/2″ \\ (means disc number 1 of 2)|
|Initial key||TKEY|TKEY|-metadata TKEY=”G”|
|Beats-per-minute|BPM|TBPM|TBPM|-metadata TBPM=”120″|
|Part of a compilation|Part of a compilation|TCMP|compilation|not implemented|
| ||TLAN|language|-metadata language=”eng”|
| ||TSSE|encoder|-metadata encoder=”iTunes v10″|
| |||lyrics|voir http://id3.org/Lyrics3v2 |
| |||creation_time|-metadata creation_time="2013-05-02 22:01:04″|
| |||album-sort|-metadata album-sort="String Classics″|
| |||artist-sort|-metadata artist-sort="London Symphony″|
| |||title-sort|-metadata title-sort="Adagio for Strings″|

Fichier **metadata.txt** vide basé sur toutes les metadata possibles gérées par **ffmpeg** :<code>

;FFMETADATA1
title=
title-sort=
TIT3=
artist=
artist-sort=
album=
album-sort=
album_artist=
date=
track=
genre=
publisher=
encoded_by=
copyright=
composer=
performer=
TIT1=
disc=
TKEY=TBPM=
language=
encoder=
compilation=
lyrics=
creation_time=

</code>

===== Liste des genres =====

La liste des genres est définie par la norme ID3. Elle est arrêtée depuis la version ID3v1

<code>
      0.Blues
      1.Classic Rock
      2.Country
      3.Dance
      4.Disco
      5.Funk
      6.Grunge
      7.Hip-Hop
      8.Jazz
      9.Metal
     10.New Age
     11.Oldies
     12.Other
     13.Pop
     14.R&B
     15.Rap
     16.Reggae
     17.Rock
     18.Techno
     19.Industrial
     20.Alternative
     21.Ska
     22.Death Metal
     23.Pranks
     24.Soundtrack
     25.Euro-Techno
     26.Ambient
     27.Trip-Hop
     28.Vocal
     29.Jazz+Funk
     30.Fusion
     31.Trance
     32.Classical
     33.Instrumental
     34.Acid
     35.House
     36.Game
     37.Sound Clip
     38.Gospel
     39.Noise
     40.AlternRock
     41.Bass
     42.Soul
     43.Punk
     44.Space
     45.Meditative
     46.Instrumental Pop
     47.Instrumental Rock
     48.Ethnic
     49.Gothic
     50.Darkwave
     51.Techno-Industrial
     52.Electronic
     53.Pop-Folk
     54.Eurodance
     55.Dream
     56.Southern Rock
     57.Comedy
     58.Cult
     59.Gangsta
     60.Top 40
     61.Christian Rap
     62.Pop/Funk
     63.Jungle
     64.Native American
     65.Cabaret
     66.New Wave
     67.Psychedelic
     68.Rave
     69.Showtunes
     70.Trailer
     71.Lo-Fi
     72.Tribal
     73.Acid Punk
     74.Acid Jazz
     75.Polka
     76.Retro
     77.Musical
     78.Rock & Roll
     79.Hard Rock
</code>


Sources : http://id3.org/id3v2.4.0-frames
===== Ajouter des metadata =====

Ajouter les tag définis dans le fichier **metadata.txt** :

<code>
ffmpeg -i in.mp3 -i metadata.txt -map_metadata 1 -c:a copy -id3v2_version 3 out.mp3

</code>

Pour Windows, ne pas oublier d'ajouter les options suivantes :

  - id3v2_version 3
  - write_id3v1 1

ffmpeg -i in.mp3 -i metadata.txt -map_metadata 1 -c:a copy -id3v2_version 3 -write_id3v1 1 out.mp3

----

Ajouter des tag dans la ligne de commande avec une **image** :

<code>
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
</code>

----
Ajouter les tag définis dans le fichier **metadata.txt** avec une **image** :

<code>
ffmpeg -i input.mp3 -i cover.png -c copy -map 0 -i metadata.txt -map_metadata 1 -c:a copy -id3v2_version 3 -write_id3v1 1 out.mp3
</code>


===== Supprimer =====

Par exemple, pour supprimer le tag informant le nom de l'artiste :

<code>
ffmpeg -i out.mp3 -metadata title="The Title You Want" -metadata artist="" -metadata album="Name of the Album" out2.mp3

</code>

----

Supprimer toutes les metadata :

<code>
ffmpeg -i input.mp3 -write_xing 0 -id3v2_version 0 out.mp3

</code>



===== Extraire les metadata =====

Extraire les metadatas d'un fichier MP3 :

<code>
ffmpeg -i in.mp3 -f ffmetadata metadata.txt

</code>

Le résultat est écrit dans le fichier **metadata.txt**


----

Extraire les metadatas de tous les fichiers MP3 présents dans le dossier courant :

  for f in *.mp3 ; do ffmpeg -i "$f" -f ffmetadata "${f%.*}.txt" ; done
  

Le résultat est écrit dans le fichier de même nom que le MP3 avec l'extension **txt** au lieu de **mp3**


===== Informations sur ce document =====

Document rédigé par [[user:cedricabonnel]] le 27/10/2019 à 09:31.\\
Modifié le 27/10/2019 à 11:30.

Librement inspiré des pages suivantes :

  * [[http://jonhall.info/create_id3_tags_using_ffmpeg/|http://jonhall.info/create_id3_tags_using_ffmpeg/]]
  * [[https://ffmpeg.org/ffmpeg-all.html#mp3|https://ffmpeg.org/ffmpeg-all.html#mp3]]


\\

