Szybkie łączenie plików MP3 w systemie macOS

Jakiś czas temu stanąłem przed problemem szybkiego połączenia wielu plików MP3. Były to pliki o dokładnie tej samej jakości. Fragmenty większego nagrania, które musiałem skleić w jeden plik. Niestety nie mogłem na szybko niczego znaleźć. Na szczęście zapytałem Adriana czy nie zna jakiegoś narzędzia, a on przypomniał mi o istnieniu Terminala, od czego przecież powinienem zacząć.

Okno Terminala z zapisem operacji łączenia plików.


W między czasie okazało się, że istnieją różne narzędzia umożliwiające wykonanie interesującej mnie operacji. Jednak albo były one płatne, albo było to wielkie kombajny, opanowanie których zajęłoby mi sporo czasu. Dlatego tym bardziej Terminal okazał się być dla mnie lepszym rozwiązaniem.

Uruchamianie Terminala

O tworzeniu skrótów i Usług dla Terminala już pisałem w Mojej Szufladzie, dlatego dziś pominę tę kwestie. Na nasze potrzeby, wystarczy jak pliki przeznaczone do scalenia skopiujemy do głównego katalogu użytkownika. W naszym przykładzie będą się one nazywać: plik1.mp3 plik2.mp3 plik3.mp3.

Sam Terminal uruchamiamy z poziomu Narzędzi znajdujących się w katalogu Aplikacje, albo wpisując w Spot Light (Command+Spacja) słowo Terminal i naciskając Enter. Terminal, jeśli uruchamiamy go w ten sposób, zawsze otworzy się w głównym katalogu zalogowanego użytkownika.

Scalanie Plików

Jeśli Terminal mamy już otwarty w lokalizacji, w której wcześniej umieściliśmy pojedyncze pliki MP3, to wystarczy w lini poleceń wpisać:

cat plik1.mp3 plik2.mp3 plik3.mp3 > PlikScalony.mp3

Po wpisaniu powyższej frazy naciskamy klawisz Return. I niemal natychmiast w naszym katalogu pojawi się nowy plik o nazwie PlikScalony.mp3, będący połączeniem wskazanych przez nas wcześniej trzech plików.

Proste, prawda? Sam już zapomniałem, że jakieś 15 lat temu dokładnie w ten sam sposób łączyłem pliki MP3 z lini poleceń systemu Windows. Mam nadzieję, że Wam również przyda się ta informacja. Co ważne, w ten sposób możecie łączyć ze sobą pliki w różnych formatach. A Adrianowi raz jeszcze dziękuję za przypomnienie tego sposobu.

3 komentarzy na temat “Szybkie łączenie plików MP3 w systemie macOS

  1. Piotrze, ale wiesz, że właściwie to możesz potencjalnie uzyskać plik niezgodny ze standardem. Chodzi tu o metadane, tagi ID itp. Taki wynikowy plik może działać, ale to raczej zasługa odtwarzacza, który przewidział taką formę, a nie tego, że plik jest OK. Podobnie masz z plikami stron HTML, czy dokumentami Word. Przeglądarka najczęściej wyświetli całość zawartości, ale wyobraź sobie sytuację, że w każdym pliku był zadeklarowany inny tytuł lub co gorsza kodowanie znaków. Oczywiście zastrzegłeś, że pliki mają te same parametry, ale jeśli trafisz na format plików dźwiękowych, który w metadanych zapisuje długość nagrania (nie pamiętam, czy MP3 robi to), to może okazać się, że niektóre odtwarzacze odtworzą, np. Tylko pierwszy odcinek lub taki fragment od początku, którego czas odpowiada metadanym w pliku ostatnim z kolejki. Warto o tym pamiętać przy publikowaniu nagrań w internecie lub dzieleniem się nimi ze znajomymi. U Ciebie może grać OK, a u kogoś nie i może nawet nie być świadomy, że nie odsłuchał całości.
    Oczywiście sposób jest fajny i sam z niego niejednokrotnie korzystałem, choć raczej w przypadku tekstu, np. HTML itp., a nie dźwięku, ale przy publikowaniu takiej porady warto zwrócić na to uwagę, bo nie jest to oczywiste, że dopasowanie parametrów częstotliwości, jakości itd. Zawsze załatwia sprawę. W przypadku dźwięku, to chyba najwrażliwsza cecha, to ta długość nagrania zapisana w metadanych.

  2. Dzięki Michale za tę istotną uwagę. Tak, wiem o tym, ale akurat łączone przeze mnie pliki mają dokładnie te same parametry. Są generowane przeze mnie. Jedyna różnica to ich długość.
    Dobrze, że o tym wspomniałeś. Dzięki raz jeszcze.

  3. Jasne, że tak, ale trafiłem się – perfekcjonista programista, który w dodatku szczególnie interesuje się bezpieczeństwem – i chciałem zwrócić uwagę, nie tyle na fakt, że jest to zła metoda, co na fakt, że odtwarzanie takiego wynikowego pliku dźwiękowego (choć mile widziane przez użytkownika) nie świadczy dobrze o odtwarzaczu. Oczywiście mówimy tutaj wyłącznie o przypadku, gdy długość utworu jest wymagana w metadanych danego formatu. Nie wiem, jak to jest w wypadku MP3, ale jeśli informacja o długości utworu będzie istniała w metadanych i jednocześnie będzie sprzeczna z rzeczywistą długością pliku, to nie mamy gwarancji, z której długości utworu skorzysta program odtwarzający. Dlatego fajnie, że pomysł na połączenie podałeś i jeśli w danym przypadku zadziała, to OK, ale myślę, że odradzam publikowanie tak połączonych plików, np.: w formie podcastów, bo można podać kilka powodów, dla których nie jest to dobrą praktyką. U kogoś może odtwarzać się tylko fragment, choć istotnie rzadko to się zdarza. Inna przyczyna, to odtwarzacz może odgrywać wszystko, ale menedżer plików może wyświetlać długość utworu z metadanych nieadekwatną do wielkości pliku w bajtach z systemu plików. Wreszcie, usługi hostingowe lub antywirusy mogą czepiać się takich plików ze względu na niezgodność metadanych z rzeczywistą wielkością pliku. Innymi słowy, wszystko OK dopóki działa i co więcej, w 99% przypadków będzie działać, bo użytkownicy oczekują, że ich odtwarzacze będą sobie z tym radzić. Niestety wiąże się to z ignorowaniem lub pobłażliwym traktowaniem długości utworu, zapisanej w metadanych, a ponieważ zasady bezpiecznego programowania wymagają dokładnego sprawdzania spójności danych, to nie jestem zwolennikiem takiego podejścia odtwarzaczy. Stąd mój komentarz, uzupełniający informację o ewentualnych skutkach łączenia takich plików, w intencji promowania dobrych praktyk, generowania takich plików, które będą kompatybilne z jak największą liczbą odtwarzaczy. Również takich, które mocno dbają o spójność danych.
    PS.: A teraz okaże się, że w metadanych MP3 nie ma długości utworu. 🙂
    PS2.: Przenoszenie złośliwego kodu w obrazkach, a nawet wstrzykiwanie się w SQL, też niedaleko od tego stoi. Technikalia są inne i kontekst sytuacyjnego użycia, ale logika podobna, też chodzi o długości danych, raz w liczbie, raz w znaku o wartości zero, ale chodzi o to samo – albo w interesie atakującego jest wirtualnie przyciąć długość danych albo wirtualnie ją wydłużyć.
    PS3.: Oczywiście przejaskrawiam i robię burzę w szklance wody, ale z bezpieczeństwem i jego zasadami jest dokładnie tak samo, jak z dostępnością i jej zasadami, więc mam nadzieję, że zrozumiesz nieco zakręconego na tej kwestii i proszę o wyrozumiałość.

Możliwość komentowania jest wyłączona