Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @echo off
- setlocal enabledelayedexpansion
- echo Bezpieczne laczenie plikow audio - usuwanie ciszy z poczatku i konca
- echo ================================================================
- :: Tworzenie katalogu roboczego
- set "WORK_DIR=audio_processing"
- if exist "%WORK_DIR%" rmdir /s /q "%WORK_DIR%"
- mkdir "%WORK_DIR%"
- echo Utworzono katalog roboczy: %WORK_DIR%
- :: Kopiowanie plików do katalogu roboczego
- echo Kopiowanie plikow do katalogu roboczego...
- for %%F in (*.mp3) do (
- copy "%%F" "%WORK_DIR%\%%F"
- echo Skopiowano: %%F
- )
- :: Przejście do katalogu roboczego
- cd "%WORK_DIR%"
- :: Zmiana nazw plików z 1-9 na 01-09 (tylko dla plików zaczynających się od pojedynczej cyfry)
- echo Zmiana nazw plikow 1-9 na format 01-09...
- for %%F in (*.mp3) do (
- set "filename=%%~nF"
- set "firstChar=!filename:~0,1!"
- :: Sprawdź czy pierwszy znak to cyfra od 1 do 9
- if "!firstChar!" GEQ "1" if "!firstChar!" LEQ "9" (
- :: Upewnij się, że drugi znak to podkreślnik lub kropka (separator)
- set "secondChar=!filename:~1,1!"
- if "!secondChar!"=="_" (
- echo Zmiana: %%F -^> 0%%F
- ren "%%F" "0%%F"
- )
- )
- )
- :: Tworzenie folderu dla plików bez ciszy
- echo Tworzenie folderu dla plikow bez ciszy...
- set "SILENCE_DIR=no_silence"
- if exist "%SILENCE_DIR%" rmdir /s /q "%SILENCE_DIR%"
- mkdir "%SILENCE_DIR%"
- :: Tworzenie pliku listy
- set "LIST_FILE=filelist.txt"
- if exist "%LIST_FILE%" del "%LIST_FILE%"
- :: Sortowanie plików według nazwy (alfabetycznie, co teraz jest równoważne numerycznie)
- echo Sortowanie plikow...
- dir /b /o:n *.mp3 > sorted_files.txt
- :: Liczenie plików
- set "count=0"
- for /f %%a in ('type "sorted_files.txt" ^| find /c /v ""') do set "count=%%a"
- echo Znaleziono %count% plikow do przetworzenia.
- :: Przetwarzanie każdego pliku - usuwanie ciszy z początku i końca
- echo Przetwarzanie plikow - usuwanie ciszy z poczatku i konca...
- set "index=0"
- for /f "tokens=*" %%i in (sorted_files.txt) do (
- set /a "index+=1"
- echo [!index!/%count%] Przetwarzanie: %%i
- :: Utwórz nazwę pliku wyjściowego z indeksem numerycznym dla zachowania kolejności
- set "paddedIndex=000!index!"
- set "paddedIndex=!paddedIndex:~-3!"
- :: Usunięcie ciszy z początku i końca pliku
- :: UWAGA: naprawiona składnia - użycie %%i zamiast %%F
- ffmpeg -i "%%i" -af "silenceremove=start_periods=1:start_silence=0.1:start_threshold=-50dB,areverse,silenceremove=start_periods=1:start_silence=0.1:start_threshold=-50dB,areverse" "%SILENCE_DIR%\!paddedIndex!.wav" -y -loglevel warning
- :: Sprawdzenie czy plik wyjściowy istnieje
- if exist "%SILENCE_DIR%\!paddedIndex!.wav" (
- :: Dodanie wpisu do pliku listy z pełną ścieżką
- echo file '%CD%\%SILENCE_DIR%\!paddedIndex!.wav' >> "%LIST_FILE%"
- ) else (
- echo BLAD: Nie udalo sie utworzyc pliku: %SILENCE_DIR%\!paddedIndex!.wav
- )
- )
- :: Sprawdzenie czy plik listy został utworzony i ma zawartość
- echo Sprawdzanie pliku listy...
- if not exist "%LIST_FILE%" (
- echo BLAD: Plik listy nie zostal utworzony.
- exit /b 1
- )
- set "filesize=0"
- for %%A in ("%LIST_FILE%") do set "filesize=%%~zA"
- if %filesize% EQU 0 (
- echo BLAD: Plik listy jest pusty.
- exit /b 1
- )
- echo Zawartosc pliku listy:
- type "%LIST_FILE%"
- :: Łączenie plików
- echo Laczenie plikow...
- ffmpeg -f concat -safe 0 -i "%LIST_FILE%" -c:a mp3 -b:a 192k "..\combined_audio.mp3" -y
- :: Powrót do oryginalnego katalogu
- cd ..
- :: Sprawdzenie wyniku
- if exist "combined_audio.mp3" (
- echo Zakonczono pomyslnie! Plik wyjsciowy: combined_audio.mp3
- for %%A in ("combined_audio.mp3") do set "filesize=%%~zA"
- echo Rozmiar pliku wyjsciowego: !filesize! bajtow
- :: Sprzątanie
- echo Usuwanie plikow tymczasowych...
- rmdir /s /q "%WORK_DIR%"
- ) else (
- echo BLAD: Plik wyjsciowy nie zostal utworzony.
- echo Katalog roboczy "%WORK_DIR%" nie zostal usuniety.
- echo Sprawdz pliki w katalogu roboczym, aby zobaczyc, co sie stalo.
- )
- echo Proces zakonczony!
- pause
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement