Konwersja FLAC na ALAC, zachowanie znaczników - w skrypcie

3

Obecnie tworzę skrypt do obsługi równoległych bibliotek muzycznych, ponieważ mam urządzenia, które nie mogą odtwarzać FLAC, ale wolą przechowywać moją muzykę w tym formacie. Mam jednak problem z częścią, która konwertuje FLAC na ALAC. Obecnie po prostu wysyła FFMPEG, aby wykonać zadanie. Jednak FFMPEG (wersja 0.5.9) nie wydaje się zachowywać tagów! -map_meta_data infile: outfile nie działa ... nie działa również -map_meta_data outfile: infile, -map_meta_data 0: 0 lub -map_meta_data 0: 0, s0 (lub coś w tym rodzaju), z których wszystkie widziałem, jak sugerują ludzie .

Więc ... Teraz szukam programu wiersza polecenia (lub biblioteki Python), który może konwertować FLAC na ALAC w systemie Linux, zachowując dane znaczników. Byłoby nawet do przyjęcia, gdybym musiał skopiować tagi po konwersji - ale nie mogę też znaleźć rozwiązania tego problemu. Próbowałem QLCLI, ale wydaje się, że zawodzi podczas importowania Quod Libet. Staram się, aby to wszystko działało pod Ubuntu. Jakieś sugestie?

Eric Astor
źródło
1
Czy możesz wypróbować nowszą wersję FFmpeg? Możesz skompilować go ze źródła, jak udokumentowano na stronie głównej
slhck
1
W Ubuntu 12.04 LTS wygląda na to, że podana wersja ffmpeg zachowuje tagi. Właśnie próbowałem ffmpeg -i "in.flac" -acodec alac "out.m4a"i wszystkie tagi wyglądają na przekonwertowane.
mivk

Odpowiedzi:

1

Obecny ffmpeg (wersja 2.0.2, kiedy to piszę) obsługuje zarówno dekodowanie, jak i kodowanie ALAC. I domyślnie kopiuje globalne metadane z pierwszego pliku wejściowego.

Wywoływanie go w ten sposób:

ffmpeg -i track01.flac -c:a alac track01.m4a

utworzono plik ALAC z skopiowanymi metadanymi.

Roland Smith
źródło
-1

Jeśli źródłowy plik audio ma osadzoną okładkę, ffmpeg przekonwertuje go na wideo, co prawdopodobnie nie jest tym, czego chcesz. Pełne polecenie to:

ffmpeg -i file.flac -vn -acodec alac file.m4a

I w trybie wsadowym:

ls *flac | while read f; do
    ffmpeg -i "$f" -acodec alac -vn "${f[@]/%flac/m4a}" < /dev/null;
done

-vnPrzełącznik uczyni ffmpeg ignorować części „Video” z pliku źródłowego. Tagi zostaną przeniesione do pliku docelowego, ale wolałbym użyć taggera Picard, aby oznaczyć nowe pliki za pomocą solidnej bazy danych wykonawców / prac / wydań jako MusicBrainz.

Oto bardziej zaawansowane techniki:

https://avi.alkalay.net/2016/09/multimedia-linux-cli.html

Avibrazil
źródło