Jak połączyć wiele plików MP3 w jeden? „cat” i „mp3wrap” nie są dobre, ponieważ produkują niestandardowe pliki MP3. Wiem, że mogę użyć audacity, ale kiedy masz 1000 plików MP3, aby połączyć się w jeden, trwa to zbyt długo.
Jakieś sugestie?
Jak połączyć wiele plików MP3 w jeden? „cat” i „mp3wrap” nie są dobre, ponieważ produkują niestandardowe pliki MP3. Wiem, że mogę użyć audacity, ale kiedy masz 1000 plików MP3, aby połączyć się w jeden, trwa to zbyt długo.
Jakieś sugestie?
Odpowiedzi:
Użyj ffmpeg lub podobnego narzędzia, aby przekonwertować wszystkie pliki MP3 na spójny format, np
ffmpeg -i originalA.mp3 -f mp3 -ab 128kb -ar 44100 -ac 2 intermediateA.mp3
ffmpeg -i originalB.mp3 -f mp3 -ab 128kb -ar 44100 -ac 2 intermediateB.mp3
Następnie w środowisku wykonawczym połącz pliki razem:
cat intermediateA.mp3 intermediateB.mp3 > output.mp3
Na koniec uruchom je za pomocą narzędzia MP3Val, aby naprawić błędy strumienia bez wymuszania pełnego ponownego kodowania:
mp3val output.mp3 -f -nb
(źródło)
Można to zrobić programowo z ffmpeg „s concat demuxera .
Najpierw utwórz plik o nazwie inputs.txt z liniami podobnymi
file '/path/to/input1.mp3'
file '/path/to/input2.mp3'
file '/path/to/input3.mp3'
...itp. Następnie uruchom następującą komendę ffmpeg:
ffmpeg -f concat -i inputs.txt -c copy output.mp3
Możliwe jest łatwe generowanie inputs.txt za pomocą bash dla pętli (prawdopodobnie można to zrobić również w pakiecie Windows dla pętli dla pętli), zakładając, że chcesz scalić pliki w kolejności alfabetycznej. Będzie pasować do każdego * .mp3 w katalogu roboczym, ale można go łatwo zmodyfikować:
for f in ./*.mp3; do echo "file '$f'" >> inputs.txt; done
## Alternatively
printf "file '%s'\n" ./*.mp3 >> inputs.txt
Możliwe jest również wykonanie całej czynności w jednym wierszu, unikając tworzenia pliku listy pośredniej z podstawieniem procesu :
ffmpeg -f concat -i <(printf "file '%s'\n" ./*.mp3) -c copy output.mp3
ffmpeg
która nie lubi; dla mnie to brzmi [concat @ 0x10201a200] Impossible to open '/dev/fd/./01 Track.mp3'
. Naprawiłem to, czyniąc ścieżkę do plików absolutną:ffmpeg -f concat -i <(printf "file '/path/to/files/%s'\n" *.mp3) -c copy output.mp3
"concat:file1.mp3|file2.mp3"
zamiast inputs.txt
, a następnie -f concat
jest niepotrzebne.
Freemake Audio Converter jest świetny:
http://www.freemake.com/free_audio_converter/
Konwertuje i / lub łączy pliki audio.
Po pobraniu i zainstalowaniu Freemake (uważaj, aby nie zainstalować Ad-Aware Web Companion, TuneUp Utilities, Opera lub ustawić Yahoo! jako stronę główną), uruchom program. Kliknij przycisk + Audio w lewym górnym rogu okna i wybierz pliki, które chcesz scalić / przekonwertować.
Kliknij przycisk „Przełącz” Dołącz pliki w prawym górnym rogu okna.
Wybierz żądany typ dźwięku (prawdopodobnie FLAC dla bezstratnego)
Umożliwi to dostosowanie ustawień audio i folderu wyjściowego. Gdy będziesz gotowy, kliknij przycisk Konwertuj.
Goldwave ma pewne możliwości przetwarzania wsadowego, chociaż jest oprogramowaniem shareware, a nie freeware.
Możesz użyć darmowego mp3cat :
mp3cat indir - > outfile.mp3