4 votes

Dump/chargement des métadonnées avec FFmpeg (WMA vers MP3)

J'ai besoin de convertir des métadonnées WMA en balises ID3 MP3. FFmpeg devrait être capable de les transférer dans un fichier et de les recharger dans un autre en utilisant les mappeurs implémentés. Je ne trouve cependant pas de syntaxe d'utilisation :

http://ffmpeg.org/ffmpeg.html#Metadata

Je ne peux pas convertir les fichiers en utilisant directement FFmpeg car il échoue sur 1% d'entre eux, ce qui est critique pour des milliers de fichiers. Quelques erreurs :

ff asf bad header 0  at:264993
[asf @ 0046DA60] ff asf skip 2252 (unknown stream)
[asf @ 0046DA60] ff asf bad header 0  at:267254
[mp3 @ 0003DA60] max_analyze_duration 5000000 reached at 5015510
Truncating packet of size 1024 to 563
[mp3 @ 0171b0c0] Header missing
get_buffer() failed
Error while decoding stream #0:0

J'ai pu les convertir en WAV à l'aide de Mplayer, puis de WAV en MP3 à l'aide de LAME, mais en perdant les métadonnées au passage.

Je n'ai pas encore décidé de la solution de contournement mais je n'utiliserai pas mplayer et resterai avec ffmpeg. J'ai analysé/affiché la vague des fichiers dans audacity et il semble que j'ai affaire à 3 types d'erreurs :

  1. get_buffer() failed Erreur lors du décodage du flux #0:0 [98% des bogues] :
    • semble être causée par la fin d'un fichier "fondu enchaîné" ou par une image manquante.
    • il n'est pas écoutable et le fichier mp3 semble être ok
  2. ff asf skip, bad header, truncating, [2% des bugs seulement] :
    • le fichier est cassé d'une certaine manière, il n'est pas toujours écoutable
    • seulement quelques-uns d'entre eux contiennent un micro espace de bruit de craquement
  3. max_analyze_duration atteint, En-tête manquant [avertissements seulement] :
    • très rare, peut-être causé par une mauvaise fin ou un grand en-tête (avec photo incluse etc.)
    • le fichier de résultat est bien pour écouter

Le mplayer utilise le ffmpeg et semble ignorer les bogues. Je vais probablement ignorer l'erreur get_buffer() tout en gardant en échec les autres.

3voto

iphonedroid Points 131

Vous pouvez vider les métadonnées avec :

ffmpeg -i in.mov -f ffmetadata metadata.txt  

Vous pouvez importer des métadonnées avec quelque chose comme ( je n'ai jamais essayé) :

ffmpeg -i in.mov -i metadata.txt -map_metadata 1 -c:a copy -id3v2_version 3 

Quelle: http://jonhall.info/how_to/create_id3_tags_using_ffmpeg

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X