Nawróć się.flac do. mp3 z ffmpeg, zachowując wszystkie metadane

Jak mogę przekonwertować .flac do. mp3 z ffmpeg, zachowując wszystkie metadane (czyli konwertowanie komentarza Vorbis w .pliki flac do Metadanych ID3v2. mp3)?

Author: Vito Gentile, 2014-09-30

7 answers

Następujące polecenie utrzymuje wysoką jakość na .mp3 (320 kbps) , a metadane z .pliki flac są konwertowane do formatu ID3v2, który może być zawarty w plikach. mp3:

ffmpeg -i input.flac -ab 320k -map_metadata 0 -id3v2_version 3 output.mp3
 100
Author: Vito Gentile,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-09-30 12:47:15

Doskonała odpowiedź powyżej. Używam go razem z find, aby dodać wszystkie pliki FLAC w poddrzewie do iTunes za pomocą tego polecenia

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

Aby automatycznie dodać pliki wynikowe do iTunes, Pobierz katalog import iTunes z

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

Wynik np.

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

Następnie uruchom np.

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

Aby automatycznie dodać wszystkie przekonwertowane utwory do iTunes.

 31
Author: user2707001,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-31 11:47:58

Jeśli chcesz zaoszczędzić trochę miejsca, spróbuj rekomendacji hydrogenaud.io :

Bardzo wysoka jakość: HiFi, domowe lub ciche słuchanie, z najlepszym rozmiarem pliku -V0 (~245 kbps), -V1 (~225 kbps), -V2 (~190 kbps) lub -V3 (~175 kbps) są zalecane. Te ustawienia VBR zwykle dają przejrzyste wyniki. Słyszalne różnice między tymi ustawieniami mogą istnieć, ale są rzadkie.

Źródło: http://wiki.hydrogenaud.io/index.php?title=LAME

Jeśli chcesz skorzystać z tej opcji w ffmpeg należy użyć aliasu -q:a 0.

Kontrola jakości za pomocą -qscale:a (lub aliasu -q:a). Wartości są specyficzne dla kodera, więc dla libmp3lame zakres wynosi 0-9, gdzie niższa wartość oznacza wyższą jakość. 0-3 zwykle daje przejrzyste wyniki, 4 (domyślnie) powinno być zbliżone do przezroczystości percepcyjnej, a 6 daje "akceptowalną" jakość. Opcja {[6] } jest mapowana do opcji -V w samodzielnym narzędziu interfejsu wiersza poleceń lame.

Źródło: https://trac.ffmpeg.org/wiki/Encode/MP3

Jeśli chcesz metatagów ID3v1, powinieneś dodać parametr -write_id3v1 1.

Więc moje ostatnie polecenie to:

ffmpeg.exe -y -i input.flac -codec:a libmp3lame -q:a 0 -map_metadata 0 -id3v2_version 3 -write_id3v1 1 output.mp3
 9
Author: wiktor,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-28 21:56:12

Testowałem następujące polecenie do konwersji infile.flac pliku na outfile.mp3:

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

Od Ubuntu 16.04 powyższe polecenie wydaje się kopiować (większość? wszystkie?) metadane.

-q:a 0 mówi ffmpeg, aby używać najwyższej jakości VBR.

Jednak ffmpeg transkodował moją okładkę z jpeg do png, co zwiększyło rozmiar okładki.

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

(myślę, że powyższa konwersja ma sens biorąc pod uwagę, jak działa ffmpeg .)

Po jakimś kopanie, znalazłem opcję -c:v copy, która określa, że strumień wideo powinien być kopiowany, a nie transkodowany. Pełna Komenda to:

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

Powyższe polecenie daje:

Stream mapping:
  Stream #0:1 -> #0:0 (copy)
  Stream #0:0 -> #0:1 (flac (native) -> mp3 (libmp3lame))
 6
Author: mpb,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-12 07:46:53

Aby rekurencyjnie przekonwertować w mp3 wszystkie pliki flac w zagnieżdżonych folderach, użyłem polecenia:

find '~/Music/' -iname '*.flac' -exec bash -c 'D=$(dirname "{}"); B=$(basename "{}"); mkdir "$D/mp3/"; ffmpeg -i "{}" -ab 320k -map_metadata 0 -id3v2_version 3 -acodec libmp3lame "$D/mp3/${B%.*}.mp3"' \;

Utworzy folder o nazwie "mp3" wewnątrz tego z plikami flac, a wewnątrz folderu mp3 zapisze względne pliki mp3 z bitrate 320kbps, bez trzymania starego rozszerzenia pliku w nazwie.

 1
Author: Riccardo Volpe,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-03 00:02:30

Wiem, że nie pytano o to, ale biorąc pod uwagę, że jednym z powodów, dla których to się robi (przynajmniej to chciałem zrobić), jest to, że muzyka może być importowana do Apple iTunes, który nie obsługuje FLAC. W takim przypadku bardziej sensowne jest przekonwertowanie FLAC do własnego bezstratnego formatu Apple, m4a. użyłem tego polecenia do konwersji wszystkich plików w bieżącym folderze, zachowując jednocześnie podobne rozmiary plików.

find . -name "*.flac" -exec ffmpeg -i {} -map_metadata 0 -acodec alac {}.m4a \;

 0
Author: Dhiraj Gupta,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-13 05:49:53

Jednowierszowy do konwersji wszystkich .flac plików na .mp3 w jednym katalogu, zachowując większość metadanych:

for file in *.flac; do ffmpeg -i $file -q:a 0 ${file:r}.mp3; done

(Uwaga: ${file:r} usuwa rozszerzenie podanej ścieżki pliku)

FFmpeg: flac do mp3

 0
Author: woudsma,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-27 21:39:38