Jak przeliczyć pliki muzyczne z FFMPEG

Jak przeliczyć pliki muzyczne z FFMPEG

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ć
Batch Conwert pliki audio z FFMPEG.

Zastosowane wymagania i konwencje oprogramowania

Wymagania oprogramowania i konwencje linii poleceń Linux
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
  1. 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:

    srcext = 1 $ vestext = 2 $ srcdir = 3 $ destdir = 4 $ opts = 5 $
    Kopiuj

    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.

  2. 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.

    dla nazwy pliku w „$ srcdir”/*.$ srcext; gotowe
    Kopiuj
  3. 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
  4. 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:

    #! /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!"
    Kopiuj

    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