2014-09-29 8 views
46

Wie kann ich .flac zu .mp3 mit ffmpeg konvertieren, wobei alle Metadaten beibehalten werden (das konvertiert Vorbis-Kommentar in .flac-Dateien in ID3v2-Metadaten von .mp3)?Convert .flac in .mp3 mit ffmpeg, alle Metadaten beibehalten

+4

Bitte beachten Sie, dass für das nächste Mal sollten Sie 'ffmpeg' cli Nutzung Fragen an [su] fragen. [so] ist nur für Fragen der Programmierung. Außerdem unterstützt FLAC [offiziell Vorbis Kommentar] (http://xiph.org/flac/format.html#format_overview) nur, also nehme ich an, dass Sie zu ID3v2 konvertieren möchten anstatt "keep". – LordNeckbeard

+0

Ok, ich habe meine Frage behoben. Ich fragte hier, weil ich Fragen wie diese auf Stackoverflow sah (zB [diese] (http://stackoverflow.com/questions/24840708/ffmpeg-convert-flac-to-mp3-and-add-album-art-in-one -Schritt) oder [diese] (http://stackoverflow.com/questions/15294844/with-ffmpeg-trying-to-change-a-container-from-mpeg-ts-to-mp4-fps-became-twice)) und nahm an, dass es interessant sein könnte, mein Wissen zu teilen. Außerdem sehe ich, dass es ein [ffmpeg-Tag] gibt (http://stackoverflow.com/questions/tagged/ffmpeg), also warum teile ich meine Lösung hier nicht? ffmpeg wird in vielen Anwendungen von vielen Entwicklern verwendet. –

+2

Der [tag: ffmpeg] Tag sagt: „Fragen zur interaktiven Nutzung des Kommandozeilen-Tool FFmpeg sollten auf Super User gefragt.“. Es ist keine große Sache, aber ich wollte nur darauf hinweisen, da es meiner Meinung nach zu viele off-topic Fragen gibt. – LordNeckbeard

Antwort

83

Der folgende Befehl hält hohe Qualität auf .mp3 (320 kbps) und Metadaten aus .flac Datei in ID3v2-Format konvertiert werden, die in MP3-Dateien enthalten sein können:

ffmpeg -i input.flac -ab 320k -map_metadata 0 -id3v2_version 3 output.mp3 
+0

Es ist erwähnenswert, dass "ffmpeg" möglicherweise durch "avconv" ersetzt werden muss. – shockburner

+2

FWIW 'ffmpeg' 3.2 automatisch Kopien von Metadaten in ID3v2 von FLAC ohne' -map_metadata 0 -id3v2_version 3' angeben müssen, obwohl es nicht in ID3v1-Tags kopiert. Ich benutze dafür ein separates Tool. – Dai

+0

Texte noch nicht bekommen, obwohl – user151496

25

perfekte Antwort oben. Ich benutze es zusammen mit Suche alle FLAC-Dateien in einer Baumansicht zu iTunes mit diesem Befehl

find . -name "*.flac" -exec ffmpeg -i {} -ab 160k -map_metadata 0 -id3v2_version 3 {}.mp3 \; 

hinzufügen, um die resultierenden Dateien zu iTunes automatisch hinzufügen, erhalten den Import iTunes Verzeichnis mit

find ~/Music/ -name "Automatically Add*" 

Ergebnis z.B.

/Users/sir/Music//iTunes/iTunes Media/Automatically Add to iTunes.localized 

Dann z.

find . -name "*.mp3" -exec mv {} "/Users/sir/Music//iTunes/iTunes Media/Automatically Add to iTunes.localized/" \; 

Um automatisch alle konvertierten Titel zu iTunes hinzuzufügen.

8

Wenn Sie ein wenig Platz zu sparen, versuchen die Empfehlung von hydrogenaud.io:

Sehr hohe Qualität: HiFi, zu Hause oder das leise Hören, mit besten Dateigröße -V0 (~245 kbps), -V1 (~225 kbps), -V2 (~190 kbps) oder -V3 (~175 kbps) sind empfohlen. Diese VBR-Einstellungen führen normalerweise zu transparenten Ergebnissen. Hörbare Unterschiede zwischen diesen Voreinstellungen können bestehen, sind aber selten.

Quelle: http://wiki.hydrogenaud.io/index.php?title=LAME

Wenn Sie diese Option in ffmpeg verwenden möchten, sollten Sie den -q:a 0 alias verwenden.

Kontrollqualität mit -qscale:a (oder dem Alias ​​-q:a). Die Werte sind Encoder-spezifisch, so dass für libmp3lame der Bereich 0-9 ist, wobei ein niedrigerer Wert eine höhere Qualität ist. 0-3 wird normalerweise transparente Ergebnisse liefern, 4 (Standard) sollte der Wahrnehmungstransparenz nahe kommen, und 6 erzeugt eine "akzeptable" Qualität. Die Option -qscale:a ist der Option -V im eigenständigen Befehlszeilentool lame zugeordnet.

Quelle: https://trac.ffmpeg.org/wiki/Encode/MP3

Wenn Sie ID3v1 wollen Metatags auch, sollten Sie den -write_id3v1 1 Parameter hinzuzufügen.

Also mein letzter Befehl lautet:

ffmpeg.exe -y -i input.flac -codec:a libmp3lame -q:a 0 -map_metadata 0 -id3v2_version 3 -write_id3v1 1 output.mp3 
5

ich den folgenden Befehl teste zu konvertieren infile.flac Datei zu outfile.mp3: der obigen Befehl zu kopieren

ffmpeg -i infile.flac -q:a 0 outfile.mp3 

Ab Ubuntu 16.04, scheint (die meisten von? allen?) die Metadaten.

-q:a 0 sagt ffmpeg die höchste Qualität VBR zu verwenden.

Allerdings transkodierte ffmpeg mein Album Kunst von jpeg zu png, die die Größe des Cover-Kunst erhöht.

Stream mapping: 
    Stream #0:1 -> #0:0 (mjpeg (native) -> png (native)) 
    Stream #0:0 -> #0:1 (flac (native) -> mp3 (libmp3lame)) 

(Ich denke, die obige Umwandlung Art von Sinn macht given how ffmpeg works.)

Nach einigem Graben fand ich die -c:v copy Option, die das sollte das Video gibt Strom kopiert werden, anstatt umcodiert. Der vollständige Befehl lautet:

ffmpeg -i infile.flac -c:v copy -q:a 0 outfile.mp3 

Die obigen Befehl ergibt:

Stream mapping: 
    Stream #0:1 -> #0:0 (copy) 
    Stream #0:0 -> #0:1 (flac (native) -> mp3 (libmp3lame)) 
Verwandte Themen