Jak sugerowano tutaj , używam cat
polecenia, aby połączyć kilka plików .mp3 w jeden plik .mp3.
Wyobraź sobie, że mam następujące pliki .mp3 w bieżącym folderze:
001001.mp3 001002.mp3 001003.mp3 001004.mp3 001005.mp3
lub tak:
096001.mp3 096002.mp3 096003.mp3 096004.mp3
Muszę połączyć te pliki .mp3 w kolejności rosnącej, tzn 001001.mp3+001002.mp3+001003.mp3+etc.
Aby połączyć te pliki .mp3 w jeden, wykonuję następujące polecenie w bieżącym folderze:
cat *.mp3 > final.mp3
Przetestowałem końcowy plik .mp3 i tego się spodziewam, ale muszę się upewnić, że powyższe polecenie wybiera pliki w kolejności rosnącej.
Czy mogę mieć pewność, że powyższe polecenie zawsze łączy pliki w kolejności rosnącej?
Dziękuję Sir !
źródło
find . -maxdepth 1 -iname '*.mp3' -print0 | sort -z | xargs -0 mp3wrap output.mp3
*.mp3
powinno wystarczyć (i działa ze spacjami).$ brew install mp3wrap
.*.mp3
gwarantuje zachowanie porządku alfabetycznego. Jeśli pliki są nazywane09.mp3
,10.mp3
,11.mp3
, to chyba to, co chcesz. Jeśli pliki są nazywane9.mp3
,10.mp3
,11.mp3
, że prawdopodobnie nie jest to, co chcesz, ale można to zrobić`ls *.mp3 | sort -n`
.mp3wrap wydaje się być całkiem przyzwoitym rozwiązaniem, ale kiedy odtworzyłem plik wynikowy, znacznik czasu był nieprawidłowy. Wygląda na to, że mp3wrap najlepiej jest stosować, gdy dołączasz mp3 do pliku, który chcesz podzielić później.
Chciałem po prostu na stałe połączyć niektóre pliki mp3 razem. Skończyło się na tym, że użyłem ffmpeg do połączenia plików:
Najpierw zainstaluj ffmpeg
Ubuntu 15.04+
Ubuntu 14.10 i nowsze wersje
Przejdź do http://ffmpeg.org/download.html , pobierz jedną ze statycznych wersji, rozpakuj ją i skopiuj do / usr / local / bin
ffmpeg -i "concat:file1.mp3|file2.mp3" -acodec copy output.mp3
Więcej informacji: https://trac.ffmpeg.org/wiki/Concatenate#protocol
https://superuser.com/a/314245
źródło
ffmpeg
brakuje, aleavconv
go zastępuje: askubuntu.com/questions/432542/…output.mp3
przez a,mp3val
a zobaczysz różnego rodzaju błędy, które spowodują problemy z odtwarzaniem w Chrome64 + (zobacz bugs.chromium.org/p/chromium/issues/detail?id=794782 i bugs.chromium.org/p/chromium/ problemy / szczegóły? id = 806601 # c10 )Jak wcześniej sugerowano,
mp3wrap
jest dobrym rozwiązaniem. Jednak może nie działać przez cały czas. O ile mi wiadomo,mp3wrap
zakłada, że wszystkie pliki wejściowe mają takie same cechy, jak VBR vs CBR, szybkość transmisji i tak dalej. Jeśli to założenie nie zostanie spełnione, może się nie powieść. W takim przypadku jedynym rozwiązaniem byłoby zdekodowanie wszystkich plików mp3 do formatu surowego jak.wav
, połączenie ich z programem podobnymsox
i zakończenie przez ponowne zakodowanie wszystkich plików mp3.źródło
Dokonuje sortowania alfabetycznego na podstawie pojedynczych znaków. Oznacza to, że „01” występuje przed „1”, ponieważ nic nie ma niższej wartości niż jeden.
Oto przykład. Mam katalog z plikami o nazwach 1, 2, 3, 04, 05 i 06. Są to pliki tekstowe zawierające własne nazwy plików:
Tak, tak będzie; ale musisz upewnić się, że wszystkie pliki są odpowiednio „wypełnione”.
Ta fajna linia skryptu bash pozwala wizualnie porównać nazwy plików, dzięki czemu bardzo łatwo jest wykryć wszelkie błędy:
Jego dane wyjściowe będą wyglądały następująco:
Jeśli nie są, musisz wpisać nazwy plików: Skrypt Bash, aby wpisać nazwy plików na StackOverflow, wyjaśnia, jak to zrobić.
Edytować. Głosuj na odpowiedź Oli, jest znacznie lepiej. : P
Opuszczę moje, bo to coś dodaje, ale powinieneś skorzystać z jego rozwiązania,
Pamiętaj, że
sort
nadal posortujesz rzeczy w sposób opisany powyżej, nadal będziesz musiał uzupełniać nazwy plików, jeśli nie są one równej długości.źródło
Większość ludzi sugeruje
mp3wrap
, ale ma to swoje wady: wygenerowany plik nie zgłasza pełnej długości w niektórych odtwarzaczach, a następnie nie można przeszukać tego punktu.mp3cat
wykonuje pracę szybko i dobrze, o ile wiem. Można go pobrać w http://mulholland.xyz/dev/mp3cat/ i używać w następujący sposób:inną możliwością byłoby
sox
ale wydaje się bardzo wolny (możliwe, że dekoduje i ponownie koduje dźwięk?)
źródło
Uważam, że łącznik audio usługi online działa bardzo dobrze i zachowuje prawidłowy znacznik czasu (w przeciwieństwie do mp3wrap).
źródło
Możesz spróbować użyć dedykowanego programu do edycji dźwięku (takiego jak Audacity )
źródło
Uwielbiam komentarz bmaupin , ale może generować naturalne liczby (wersji) przy użyciu
sort -V
:i nie musisz zajmować się znakami specjalnymi jak
' " () [] {}
w nazwie pliku.źródło