Jak przeliczyć pliki muzyczne z FFMPEG
- 1814
- 394
- Maria Piwowarczyk
FFMPEG jest rdzeniem multimedialnych narzędzi, ale samo narzędzie nie ma możliwości konwersji wielu plików jednocześnie. Na szczęście FFMPEG podlega scenariuszowi i możesz łatwo skonfigurować coś szybko za pomocą Bash.
W tym samouczku nauczysz się:
- Jak skonfigurować zmienne
- Jak zbudować pętlę
- Jak usunąć nazwy plików
- Jak to wszystko razem i uruchomić
Zastosowane wymagania i konwencje oprogramowania
Kategoria | Wymagania, konwencje lub wersja oprogramowania |
---|---|
System | Dowolny rozkład z FFMPEG |
Oprogramowanie | FFMPEG |
Inny | Uprzywilejowany dostęp do systemu Linux jako root lub za pośrednictwem sudo Komenda. |
Konwencje | # - Wymaga, aby podane polecenia Linux są wykonywane z uprawnieniami root bezpośrednio jako użytkownik root lub za pomocą sudo Komenda$ - Wymaga, aby podane polecenia Linux zostały wykonane jako zwykły użytkownik niepewny |
-
Skonfiguruj zmienne
Jedynym prawdziwym sposobem obsługi konwersji plików wsadowych za pomocą FFMPEG jest skrypt bash. Nie musi być super złożone ani szczegółowe, ale możesz, jeśli lubisz ten sord, być naprawdę szczegółowym. Ten przewodnik będzie współpracować z czymś znacznie prostszym, co wykonuje zadanie.
Najpierw utwórz plik dla swojego skryptu.
Dotknij Batch FFMPEG.cii
Następnie otwórz go ze swoim ulubionym edytorem tekstu i skonfiguruj jako skrypt bash.
#! /bin/bash
Ten skrypt użyje serii zmiennych dla ścieżek plików, rozszerzeń i opcji FFMPEG. W ten sposób jest na tyle elastyczny, że można je przekazać różne pliki w różnych lokalizacjach, wybierając formaty plików w miarę upływu czasu.
Istnieje pięć zmiennych, których potrzebujesz. Będziesz potrzebować jednego dla każdego katalogu wejściowego i katalogu wyjściowego. Następnie będziesz potrzebować zestawu do rozszerzenia pliku wejściowego i innego dla rozszerzenia wyjściowego. Wreszcie, możesz utworzyć taki, który jest ogólnym połowem dla opcji konwersji. W sumie powinno wyglądać mniej więcej tak:
Kopiujsrcext = 1 $ vestext = 2 $ srcdir = 3 $ destdir = 4 $ opts = 5 $
Jeśli chcesz to zmodyfikować, idź dalej. Rozszerzenia są konieczne, zamiast po prostu wyciągnąć je z pliku, ponieważ folder może zawierać więcej niż jeden typ pliku. Jeśli wolisz założyć, że w folderze jest tylko jeden typ pliku, idź dalej i zmodyfikuj skrypt, aby działał w ten sposób.
-
Zbuduj pętlę
Wszystko w tym skrypcie dzieje się przez proste
dziobowy
pętla. Będzie iterował każdy plik z określonym rozszerzeniem w określonym katalogu.
Kopiujdla nazwy pliku w „$ srcdir”/*.$ srcext; gotowe
-
Rozbij nazwy plików
Aby skrypt był naprawdę dostosowywany, będziesz musiał usunąć ścieżki i rozszerzenia każdego pliku, aby uzyskać nazwę pliku. W ten sposób skrypt będzie w stanie wyeksportować nowo przekonwertowane pliki o identycznych nazwach, eliminując potrzebę indywidualnego określenia lub zmiany nazwy plików.
Najpierw zdejmij rozszerzenie i przypisz to do nowej zmiennej.
dla nazwy pliku w „$ srcdir”/*.$ srcext; Do
Następnie zdejmij ścieżkę z nazwy pliku.
Basename = $ Basepath ##*/
Możesz spróbować powtórzyć wynik, aby zobaczyć, co dostajesz. Powinna to być sama nazwa pliku.
echo $ basename
-
Złóż to wszystko i biegnij
W końcu jesteś gotowy, aby dodać prawdziwą pracę FFMPEG. Ta część jest zasadniczo prostym wezwaniem do FFMPEG, ale praca z zmiennymi zamiast dosłownych nazw plików. Podaj ffmpeg pełną nazwę pliku ze ścieżką jako jej wejście. Następnie skonstruuj wyjście za pomocą katalogu docelowego, zdejmowanej nazwy pliku i rozszerzenia pliku docelowego. Dołącz swoje opcje pomiędzy. Cytaty są niezbędne do traktowania każdej zmiennej jako łańcucha.
ffmpeg -i „$ filename” $ opts "$ destdir"/"$ basename".„$ vestext”
Możesz dodać wiadomość po pętli, konfrminując się, że pliki zostały pomyślnie przekonwertowane. W sumie twój skrypt powinien wyglądać mniej więcej tak:
Kopiuj#! /bin/bash srcext = 1 $ vestext = 2 $ srcdir = 3 $ destdir = 4 $ opts = 5 $ dla nazwy pliku w „$ srcdir”/*.$ srcext; Do Basepath = $ nazwa pliku%.* basename = $ Basepath ##*/ ffmpeg -i „$ filename” $ opts "$ destdir"/"$ basename".„$ vestext” DODE Echo ”Konwersja z $ srcext na $ vestext kompletne!"
Nie ma w tym wiele, ale skrypt wystarczy, aby poradzić sobie z większością sytuacji. Teraz biegałby tak mniej więcej tak:
./FFMPEG Batch.sh flac mp3/home/nazwa użytkownika/muzyka/„LED ZEPPELIN”/„LED ZEPPELIN”//HOME/Użytecznia/Music/„Led Zeppelin mp3”/"-Ab 320K"
Wniosek
Gdy się do tego przyzwyczaisz, nawet coś takiego może być niezwykle użytecznym sposobem zarządzania dźwiękiem, a nawet plikami wideo. FFMPEG jest doskonałym narzędziem, a jeśli wolisz minimalizm, możesz uzyskać ten sam wynik, co rozdęty program graficzny z poleceniem pojedynczym.
Powiązane samouczki Linux:
- Mastering Bash Script Loops
- Najlepsze dystrybucje multimedialne Linux
- Najlepszy odtwarzacz muzyki dla Linux
- Ubuntu 20.04 Instalacja FFMPEG
- Zagnieżdżone pętle w skryptach Bash
- Rzeczy do zainstalowania na Ubuntu 20.04
- Wprowadzenie do automatyzacji, narzędzi i technik Linuksa
- Jak utworzyć pakiet FlatPak
- Samouczek debugowania GDB dla początkujących
- Jak zdobyć i zmienić metadane audio w Linux
- « Jak połączyć się z głośnikiem Bluetooth na XFCE, Mate i Cynamon
- Jak zainstalować odtwarzacz muzyki LollyPop w Linux »