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)?
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
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.
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
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))
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.
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 \;
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)
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