2 votes

FFMPEG Ajouter des métadonnées à un .mp3 à partir d'une entrée .mp3 ?

Si je pars d'un fichier .mp3, comment puis-je y ajouter des métadonnées ? Je connais le -metadata title="Some Title" -metadata artist="Someone" mais je ne suis pas sûr que cela puisse être appliqué à un fichier .mp3, surtout si le fichier est déjà un .mp3.

Je pense plutôt à quelque chose comme ça : ffmpeg -i input.mp3 -metadata artist="Someone" -f mp3 output.mp3

La seule chose est que lorsque je l'exécute avec ffmpeg 4 compilé avec toutes les bibliothèques sur Kubuntu 18.04, j'obtiens ce message d'erreur :

Automatic encoder selection failed for output stream #0:0. Default encoder for format mp3 (codec mp3) is probably disabled. Please choose an encoder manually. Error selecting an encoder for stream 0:0

Edit 0 :

Cela se produit également lorsque j'essaie d'ajouter -acodec libmp3lame bien que l'erreur semble indiquer que je n'ai pas le codec .mp3.

sarah@ConvergentRefuge:~/Desktop/Indexing/Test Folder$ ffmpeg -i DANCE\ WITH\ THE\ DEAD\ -\ BATTLE.mp3 -acodec libmp3lame -f mp3 file.mp3 ffmpeg version 4.0 Copyright (c) 2000-2018 the FFmpeg developers built with gcc 7 (Ubuntu 7.3.0-16ubuntu3) configuration: libavutil 56. 14.100 / 56. 14.100 libavcodec 58. 18.100 / 58. 18.100 libavformat 58. 12.100 / 58. 12.100 libavdevice 58. 3.100 / 58. 3.100 libavfilter 7. 16.100 / 7. 16.100 libswscale 5. 1.100 / 5. 1.100 libswresample 3. 1.100 / 3. 1.100 Input #0, mp3, from 'DANCE WITH THE DEAD - BATTLE.mp3': Duration: 00:04:15.92, start: 0.025057, bitrate: 128 kb/s Stream #0:0: Audio: mp3, 44100 Hz, stereo, fltp, 128 kb/s Metadata: encoder : LAME3.99r Side data: replaygain: track gain - -9.200000, track peak - unknown, album gain - unknown, album peak - unknown, Unknown encoder 'libmp3lame'

6voto

Gyan Points 29437

Votre compilation de ffmpeg n'a pas d'encodeur MP3. Cependant, pour votre cas d'utilisation, ce n'est pas pertinent.

Utilisez

ffmpeg -i input.mp3 -c copy -metadata artist="Someone" output.mp3

La sortie doit être un fichier séparé. FFmpeg ne peut pas mettre à jour l'entrée elle-même.

0voto

J'ai des centaines de fichiers, et j'utilise ce script.  J'espère qu'il sera utile à quelqu'un.

Github

Github avec quelques scripts audio

Liste de lecture YouTube

#!/bin/sh

#____________ 1. CONVERT ALL WAV FILES TO 44100hz and 16bits _______________________________
# Rename all audio wav files in folder, with the format 001.wav, 002.wav, 003.wav, etc...
a=1
for i in *.wav; do
  new=$(printf "%03d.wav" "$a") #03 pad to length of 3
  mv -i -- "$i" "$new"
  let a=a+1
done

rm *.mp3    # remove old mp3 files

declare -a arr=("" # always keep empty the first array index, because have index zero.
                "Track Title 1 (allow with special characters + $ ñ ò)"
                "Track Title 2 (allow with special characters + $ ñ ò)"
                "Track Title 3 (allow with special characters + $ ñ ò)"
                "Track Title 4 (allow with special characters + $ ñ ò)"
                "Track Title 5 (allow with special characters + $ ñ ò)"
                "Track Title 6 (allow with special characters + $ ñ ò)"
                "Track Title 7 (allow with special characters + $ ñ ò)"
                "Track Title 8 (allow with special characters + $ ñ ò)"
                "Track Title 9 (allow with special characters + $ ñ ò)"
                "Track Title 10 (allow with special characters + $ ñ ò)"
                "Track Title 11 (allow with special characters + $ ñ ò)"
                "Track Title 12 (allow with special characters + $ ñ ò)"
                )

counterTotalFiles = 0;    # count the total audio wav files there are in the folder
counterTrackNumber = 0;   # sequence of the track number
metadataArtist = "My Artist Name"
metadataTPE2="My Artist Album"
metadataComposer="My Composer"
metadataGenre="Spoken & Audio" 
metadataYear=`date +%Y`   # setup automatic the current year

# count the total audio wav files there are in the folder
for x in *.wav; do      
  let counterTotalFiles++
done

  for z in *.wav; do      
    let counterTrackNumber++
    ffmpeg -y -i "$z" -vn -ar 44100 -b:a 128k -metadata title="${arr[$counterTrackNumber]}" -metadata album="My Album Name" -metadata track="$counterTrackNumber/$counterTotalFiles" -metadata artist="$metadataArtist" -metadata TPE2="$metadataTPE2" -metadata composer="$metadataComposer" -metadata genre="$metadataGenre" -metadata year="$metadataYear" $z.mp3
  done

# remove temporary files
rm "temp-"*.wav    
rm *.pkf    

# rename the wrong extension *.wav.mp3 to the right extension *.mp3
for f in *.mp3; do
    mv -- "$f" "$(basename -- "$f" .wav.mp3).mp3"
done

# show info about your media files generated
mediainfo *.mp3
ls -lah

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