web-dev-qa-db-fra.com

Comment supprimer TOUTES métadonnées en utilisant ffmpeg?

J'ai un fichier d'entrée: infile.mp3 Ce fichier contient des métadonnées (artiste, genre, etc.) J'essaie de supprimer toutes les métadonnées du fichier wav en sortie.

Oui! J'ai trouvé l'option:

-map_metadata -1

Mais la sortie est inattendue pour moi ...

$ ffmpeg -i infile.mp3 -acodec pcm_s16le -ac 2 -ar 44100 -map_metadata -1 ./outfile.wav

D'ACCORD!

$ ffprobe outfile.wav
Input #0, wav, from 'inp.wav':
  Metadata:
    encoder         : Lavf56.25.101
  Duration: 00:04:00.47, bitrate: 1411 kb/s
    Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, 2 channels, s16, 1411 kb/s

Tu vois? les métadonnées d'encodeur existent!

Et dans l'entête wav après "subchunk1_id" avec la valeur "fmt", j'attends "subchunk2_id" avec la valeur "data" (exemple attendu: clair):

$ strings outfile.wav | more
RIFFFB
WAVEfmt
data

Mais ce n'est pas (LISTE, INFOISFT, etc.):

$ strings outfile.wav | more
RIFFFB
WAVEfmt 
LIST
INFOISFT
Lavf56.25.101
data

Bien .. Comment vraiment supprimer toutes les métadonnées pour le fichier de sortie?

8
Deep
-fflags +bitexact -flags:v +bitexact -flags:a +bitexact
5
mzs

Peut-être copiez-le d'abord dans un fichier .wav (ne supporte pas les métadonnées), puis recopiez-le dans un fichier .mp3?

```
ffmpeg -i in.mp3 tmp.wav
ffmpeg -i tmp.wav out.mp3
```
0
jimmy