#61 2018-07-27 17:46:44

Ognisty321
Użytkownik
Dołączył: 2017-10-07

Odp: [PORADNIK] Automatyczna synchronizacja napisów

matiasmovie napisał:
Ognisty321 napisał:

A jest możliwość zrobienia wersji, w której zamiast wrzucania plików do folderów będzie się podawało lokalizacje danego pliku?

jest to możliwe ale ścieżkę trzeba wtedy wpisywać tekstowo że np wyświetli się

Podaj ścieżkę do input
i tutaj będzie trzeba wpisać np C:\PlikiAnime\PlikiStare

i tak 3 razy bo dla input, output i subs, minus takiej rzeczy to to, że cmd gryzie się z krzakami i chyba z pl znakami, dlatego nie chciałem dawać takiej możliwości bo nie zadziała w każdym przypadku, jeżeli chcesz sobie edytować pod siebie skrypt to wystarczy zamiast input/* output/* w pierwszych dać "full_ścieżkę/*" pamiętając że cudzysłów jest wymagany

No własnie ta opcja "np wyświetli się (Podaj ścieżkę do input)..." mi by bardzo pasowała, tylko nie wiem jak ją zrobić, bo się na tym nie znam.

Offline

#62 2018-08-07 20:27:57

matiasmovie
Użytkownik
Skąd: Poznań (ポズナン)
Dołączył: 2008-10-23

Odp: [PORADNIK] Automatyczna synchronizacja napisów

Skrypt umożliwiający synchronizację całego sezonu za jednym zamachem

Oczywiście jeżeli ktoś używa tego poza folderem sushi to trzeba zmienić sushi.exe na pełną ścieżkę do pliku sushi.exe
do folderu input wrzucamy stare epki (przeważnie odcinki TV)
do folderu output nowe epki (przeważnie odcinki BD)
do folderu subs wrzucamy stare subki (napisy pasujące do odcinków w input) [nie wymagane, jeżeli napisy są w starych epkach]

lub podać ścieżki folderów z plikami (nie przetestowane dobrze i mogą być problemy z chińskimi krzakami)

oczywiście kolejność odcinków jak i napisów musi być taka sama w każdym folderze
(przy okazji każda komenda zapisywana jest do plik.txt jakby ktoś się chciał upewnić czy komendy na pewno są poprawne)
PS. Explorer troszkę oszukuje i cyfry 1,2,3,...,11,12 traktuje po kolei czego nie robi cmd bo dla niego kolejność to 1,11,12,2,3,...
dlatego warto dla dwucyfrowych serii dodać 0 przed pojedynczą cyfrą czyli 01,02,03,...,11,12

zawsze tez można sprawdzić kolejność plików przez skrypt (należy wrzucić do folderu z plikami i odpalić)

Pokaż spoiler zapisać do .bat

@echo off
dir /b
pause

skrypt do automatyzacji

Pokaż spoiler tekst trzeba zapisać w pliku z rozszerzeniem .bat (np. wrzucić wszystko do notatnika i zapisać jako synchro.bat)

@echo off
chcp 1250
TITLE Synchronizacja napisów
SETLOCAL ENABLEDELAYEDEXPANSION
Color 70
cls

:Sci
echo [0] Wybór ścieżki dla plików
echo [1] Pliki wrzucone do input/output/subs
SET /P sciezka="Wybór : "
cls

IF "%sciezka%"=="0" (
SET /P si="Ścieżka Input : "
SET /P so="Ścieżka Output : "
SET /P ss="Ścieżka Subs (jeżeli brak wpisać '*') : "
cls
) ELSE IF "%sciezka%"=="1" (
set si=input
set so=output
set ss=subs
) ELSE (
echo Niepoprawny wybór
    GOTO :Sci
)

set i=0
for %%a in ("%si%\*") do (

        set input[!i!]=%%a
    set /a i=i+1
   
)

set o=0
for %%b in ("%so%\*") do (

        set output[!o!]=%%b
    set /a o=o+1
   
)

set s=0
for %%c in ("%ss%\*") do (

        set sub[!s!]=%%c
    set /a s=s+1
   
)

set /a ile=%i%-1

:Wyb
echo Wybierz opcję wpisując cyfrę
echo [0] Szybkie, mniej dokładne synchro
echo [1] Wolniejsze, dokładniejsze synchro
echo [2] Problematyczne odcinki
echo [3] Odcinki "Output" z multi-lang
echo [4] Odcinki "Input" z multi-lang
echo [5] Odcinki "Output" i "Input" z multi-lang

SET /P Sync="Wybór : "

IF "%Sync%"=="3" (
echo Wybierz numer ścieżki audio dla plików Output
Set /P audio_o="Wybór : "
)ELSE IF "%Sync%"=="4" (
echo Wybierz numer ścieżki audio dla plików Input
Set /P audio_i="Wybór : "
) ELSE IF "%Sync%"=="5" (
echo Wybierz numer ścieżki audio dla plików Input
Set /P audio_i="Wybór : "
echo Wybierz numer ścieżki audio dla plików Output
Set /P audio_o="Wybór : "
)
cls

IF        "%Sync%"=="0" (

for /l %%j in (0,1,%ile%) do (
echo F:\Sushi.0.5.1\sushi.exe --src "!input[%%j]!" --dst "!output[%%j]!" --script "!sub[%%j]!" --max-window 360>>plik_quick.txt
F:\Sushi.0.5.1\sushi.exe --src "!input[%%j]!" --dst "!output[%%j]!" --script "!sub[%%j]!" --max-window 360
)

) ELSE IF "%Sync%"=="1" (

for /l %%j in (0,1,%ile%) do (
echo F:\Sushi.0.5.1\sushi.exe --src "!input[%%j]!" --dst "!output[%%j]!" --script "!sub[%%j]!" --sample-rate 48000 --max-window 360>>plik_slow.txt
F:\Sushi.0.5.1\sushi.exe --src "!input[%%j]!" --dst "!output[%%j]!" --script "!sub[%%j]!" --sample-rate 48000 --max-window 360
)

) ELSE IF "%Sync%"=="2" (

for /l %%j in (0,1,%ile%) do (
echo F:\Sushi.0.5.1\sushi.exe --src "!input[%%j]!" --dst "!output[%%j]!" --script "!sub[%%j]!" --window 300 --sample-rate 48000 --max-window 600>>plik_pro.txt
F:\Sushi.0.5.1\sushi.exe --src "!input[%%j]!" --dst "!output[%%j]!" --script "!sub[%%j]!" --window 300 --sample-rate 48000 --max-window 600
)

) ELSE IF "%Sync%"=="3" (

for /l %%j in (0,1,%ile%) do (
echo F:\Sushi.0.5.1\sushi.exe --src "!input[%%j]!" --dst "!output[%%j]!" --script "!sub[%%j]!" --window 60 --sample-rate 48000 --max-window 360 --dst-audio "%audio_o%">>plik_audio_output.txt
F:\Sushi.0.5.1\sushi.exe --src "!input[%%j]!" --dst "!output[%%j]!" --script "!sub[%%j]!" --window 60 --sample-rate 48000 --max-window 360 --dst-audio %audio_o%
)

) ELSE IF "%Sync%"=="4" (

for /l %%j in (0,1,%ile%) do (
echo F:\Sushi.0.5.1\sushi.exe --src "!input[%%j]!" --dst "!output[%%j]!" --script "!sub[%%j]!" --sample-rate 48000 --max-window 360 --src-audio "%audio_i%">>plik_audio_input.txt
F:\Sushi.0.5.1\sushi.exe --src "!input[%%j]!" --dst "!output[%%j]!" --script "!sub[%%j]!" --sample-rate 48000 --max-window 360 --src-audio %audio_i%
)

) ELSE IF "%Sync%"=="5" (

for /l %%j in (0,1,%ile%) do (
echo F:\Sushi.0.5.1\sushi.exe --src "!input[%%j]!" --dst "!output[%%j]!" --script "!sub[%%j]!" --sample-rate 48000 --max-window 360 --src-audio %audio_i% --dst-audio "%audio_o%">>plik_audio_io.txt
F:\Sushi.0.5.1\sushi.exe --src "!input[%%j]!" --dst "!output[%%j]!" --script "!sub[%%j]!" --sample-rate 48000 --max-window 360 --src-audio %audio_i% --dst-audio %audio_o%
)

) ELSE (
echo Niepoprawny wybór
    GOTO :Wyb
)
pause

-----------------------------------------------------------------------------------------------------------------------------------------------------------------

Skrypt do synchronizacji tylko jednego odcinka umożliwiający podanie pełnej ścieżki do pliku

Pokaż spoiler

@echo off
chcp 1250
TITLE Synchronizacja napisów
SETLOCAL ENABLEDELAYEDEXPANSION
Color 0b
cls

SET /P si="Source : "
SET /P so="Destination : "
SET /P ss="Sub : "
cls

:Wyb
echo Wybierz opcję wpisując cyfrę
echo [0] Szybkie, mniej dokładne synchro
echo [1] Wolniejsze, dokładniejsze synchro
echo [2] Problematyczne odcinki
echo [3] Odcinki "Output" z multi-lang
echo [4] Odcinki "Input" z multi-lang
echo [5] Odcinki "Output" i "Input" z multi-lang

SET /P Sync="Wybór : "

IF "%Sync%"=="3" (
echo Wybierz numer ścieżki audio dla plików Output
Set /P audio_o="Wybór : "
)ELSE IF "%Sync%"=="4" (
echo Wybierz numer ścieżki audio dla plików Input
Set /P audio_i="Wybór : "
) ELSE IF "%Sync%"=="5" (
echo Wybierz numer ścieżki audio dla plików Input
Set /P audio_i="Wybór : "
echo Wybierz numer ścieżki audio dla plików Output
Set /P audio_o="Wybór : "
)
cls

IF        "%Sync%"=="0" (

echo F:\Sushi.0.5.1\sushi.exe --src "!si!" --dst "!so!" --script "!ss!" --max-window 360>>plik_quick.txt
F:\Sushi.0.5.1\sushi.exe --src "!si!" --dst "!so!" --script "!ss!" --max-window 360

) ELSE IF "%Sync%"=="1" (


echo F:\Sushi.0.5.1\sushi.exe --src "!si!" --dst "!so!" --script "!ss!" --sample-rate 48000 --max-window 360>>plik_slow.txt
F:\Sushi.0.5.1\sushi.exe --src "!si!" --dst "!so!" --script "!ss!" --sample-rate 48000 --max-window 360


) ELSE IF "%Sync%"=="2" (


echo F:\Sushi.0.5.1\sushi.exe --src "!si!" --dst "!so!" --script "!ss!" --window 300 --sample-rate 48000 --max-window 600>>plik_pro.txt
F:\Sushi.0.5.1\sushi.exe --src "!si!" --dst "!so!" --script "!ss!" --window 300 --sample-rate 48000 --max-window 600


) ELSE IF "%Sync%"=="3" (


echo F:\Sushi.0.5.1\sushi.exe --src "!si!" --dst "!so!" --script "!ss!" --window 60 --sample-rate 48000 --max-window 360 --dst-audio "%audio_o%">>plik_audio_output.txt
F:\Sushi.0.5.1\sushi.exe --src "!si!" --dst "!so!" --script "!ss!" --window 60 --sample-rate 48000 --max-window 360 --dst-audio %audio_o%


) ELSE IF "%Sync%"=="4" (


echo F:\Sushi.0.5.1\sushi.exe --src "!si!" --dst "!so!" --script "!ss!" --sample-rate 48000 --max-window 360 --src-audio "%audio_i%">>plik_audio_input.txt
F:\Sushi.0.5.1\sushi.exe --src "!si!" --dst "!so!" --script "!ss!" --sample-rate 48000 --max-window 360 --src-audio %audio_i%


) ELSE IF "%Sync%"=="5" (


echo F:\Sushi.0.5.1\sushi.exe --src "!si!" --dst "!so!" --script "!ss!" --sample-rate 48000 --max-window 360 --src-audio %audio_i% --dst-audio "%audio_o%">>plik_audio_io.txt
F:\Sushi.0.5.1\sushi.exe --src "!si!" --dst "!so!" --script "!ss!" --sample-rate 48000 --max-window 360 --src-audio %audio_i% --dst-audio %audio_o%


) ELSE (
echo Niepoprawny wybór
    GOTO :Wyb
)
pause

PS. Skrypty mogą mieć problemy z różnymi znakami specjalnymi w folderach lub plikach pokroju !%',;#

Gotowa paczka do użycia dla laików dostępna tutaj, tutaj oraz tutaj oczkod

Paczka zawiera Sushi 0.5.1 wraz z najnowszym FFMPEG x64 (20200216) + skrypty do synchronizacji

Ostatnio edytowany przez matiasmovie (2020-02-18 18:15:41)


sALiRRN.png

Offline

#63 2019-12-11 18:01:45

matiasmovie
Użytkownik
Skąd: Poznań (ポズナン)
Dołączył: 2008-10-23

Odp: [PORADNIK] Automatyczna synchronizacja napisów

Paczka bazowana na pythonie zamiast na exe (podobno działa lepiej, ale zauważyłem, że czasem ma problemy, więc wrzucam jako alternatywę)

Gotowa paczka do użycia dostępna tutaj, tutaj oraz tutaj

Ostatnio edytowany przez matiasmovie (2019-12-12 08:05:30)


sALiRRN.png

Offline

Stopka forum

© Animesub.info 2020