#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 oczkod

Paczka zawiera Sushi 0.5.1 wraz z FFMPEG (2023-12-21-git-1e42a48e37) + skrypty do synchronizacji

Ostatnio edytowany przez matiasmovie (2023-12-24 01:57:29)

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

Ostatnio edytowany przez matiasmovie (2022-07-24 19:11:58)

Offline

#64 2021-04-03 15:28:10

moszter
Użytkownik
Dołączył: 2020-06-20

Odp: [PORADNIK] Automatyczna synchronizacja napisów

Może komuś się przyda subsync | GitHub, dodaje z powodu, że sushi | GitHub nie radzi sobie z *.SRT (chyba że ja coś źle robię).

Link do pobrania: v0.17.0 | install (x64) ; v0.17.0 | MAC ; v0.17.0 | Portable (x64) ; v0.16.0 | Linux

tt7KN7t.png, angielski obsługuję.

Ostatnio edytowany przez moszter (2022-03-22 18:20:45)

Offline

#65 2021-04-10 11:14:50

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

Odp: [PORADNIK] Automatyczna synchronizacja napisów

moszter napisał:

sushi | GitHub nie radzi sobie z *.SRT (chyba że ja coś źle robię).

Sushi bez problemu radzi sobie z srt.

Jeżeli dobrze zrozumiałem twój program nie potrzebuje video na którym się opiera, więc plus, jeżeli nie można już dostać video pasującego do subów, ale minusem może być, że rozwali np. napisy tabliczek bo wtedy nikt nie wypowiada żadnych słów + nie wiem na ile radzi sobie z wykrywaniem mowy, ale nie zdziwię się jak przy mniej wyraźnych kwestiach lub kwestiach z jakąś dużą ilością dźwięków w tle się zgubi i zamiast pomóc to jeszcze bardziej rozwali czasy linijek.

Bardziej jednak ufam metodzie z Sushi czyli porównywania audio i na tej podstawie dobierania czasów linijek.

Offline

#66 2021-04-10 12:24:59

moszter
Użytkownik
Dołączył: 2020-06-20

Odp: [PORADNIK] Automatyczna synchronizacja napisów

matiasmovie napisał:
moszter napisał:

sushi | GitHub nie radzi sobie z *.SRT (chyba że ja coś źle robię).

Sushi bez problemu radzi sobie z srt.

Jeżeli dobrze zrozumiałem twój program nie potrzebuje video na którym się opiera, więc plus, jeżeli nie można już dostać video pasującego do subów, ale minusem może być, że rozwali np. napisy tabliczek bo wtedy nikt nie wypowiada żadnych słów + nie wiem na ile radzi sobie z wykrywaniem mowy, ale nie zdziwię się jak przy mniej wyraźnych kwestiach lub kwestiach z jakąś dużą ilością dźwięków w tle się zgubi i zamiast pomóc to jeszcze bardziej rozwali czasy linijek.

Bardziej jednak ufam metodzie z Sushi czyli porównywania audio i na tej podstawie dobierania czasów linijek.

Zapomniałem pogrubić, podkreślić i dać czcionką na cały ekran, bo ślepcze i analfabeci nie zobaczą i nie przeczytają najważniejszego, ale dziwne ten najważniejszy fragment zacytowałeś, ale go nie zauważyłeś i nie przeczytałeś.

To nie mój program, tylko podzieliłem się tym co znalazłem, gdy szukałem czegoś by zsynchronizować napisy do produkcji z NetFlix'a.

Offline

#67 2021-04-10 13:00:14

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

Odp: [PORADNIK] Automatyczna synchronizacja napisów

moszter napisał:

To nie mój program

Trochę z rozpędu to napisałem xD W domyśle chodziło mi o to, że ten co udostępniłeś.

moszter napisał:

zsynchronizować napisy do produkcji z NetFlix'a.

Sprawdziłem na wersji dragstera (jedynie wyeksportowałem sobie polskie suby przy pomocy inviska jako zewnętrzne, żeby użyć swojego skryptu) synchronizując do BD i bez problemu dało radę, może ci się coś posypało bo miałeś krzaki w nazwach odcinków.

Offline

#68 2021-06-04 01:53:37

roobalek
Użytkownik
Dołączył: 2014-04-10

Odp: [PORADNIK] Automatyczna synchronizacja napisów

Takie małe spostrzeżenie/zapytanie.
W przypadku "input/output/subs poza folderem sushi" chyba można pokusić się o:

set su="?:\ścieżka_do\sushi.exe"
su --src "wejście" --dst "wyjście" --script "subki" ?

I taka mała zagwozdka na koniec, tu podałeś skrypty:
- "Skrypt umożliwiający synchronizację całego sezonu za jednym zamachem"
- "Skrypt do synchronizacji tylko jednego odcinka umożliwiający podanie pełnej ścieżki do pliku".

1. Określenie "cały sezon", to tylko taki zabieg słownikowy? Bo przecież wcześniejsze skrypty mogły przerobić wiele plików.
2. Skrypt dla całego sezonu (wielu plików) nie potrafi przerobić jednego pliku, że potrzebny jest odrębny skrypt?

Nurtuje mnie zwłaszcza pyt.2, bo jak pomnę zabawę z makrami w Excelu, to kod wczytujący/przerabiający wiele plików nie miał problemów z jednym plikiem, a chodzi za mną przeczucie, że i tu nie powinno być problemu.
Jeszcze nie sprawdziłem działania Twoich skryptów, stąd takie "robaczywe" przemyślenia/pytania.  szalony

Ostatnio edytowany przez roobalek (2021-06-04 04:58:24)

Offline

#69 2021-06-04 05:56:48

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

Odp: [PORADNIK] Automatyczna synchronizacja napisów

roobalek napisał:

Takie małe spostrzeżenie/zapytanie.
W przypadku "input/output/subs poza folderem sushi" chyba można pokusić się o:

set su="?:\ścieżka_do\sushi.exe"
su --src "wejście" --dst "wyjście" --script "subki" ?

No w sumie można by kiedyś przerobić, jak zaczynałem to tworzyć to nie myślałem o tym szczególnie, na start było to bez opcji i tylko dla mnie.

roobalek napisał:

I taka mała zagwozdka na koniec, tu podałeś skrypty:
- "Skrypt umożliwiający synchronizację całego sezonu za jednym zamachem"
- "Skrypt do synchronizacji tylko jednego odcinka umożliwiający podanie pełnej ścieżki do pliku".

1. Określenie "cały sezon", to tylko taki zabieg słownikowy? Bo przecież wcześniejsze skrypty mogły przerobić wiele plików.
2. Skrypt dla całego sezonu (wielu plików) nie potrafi przerobić jednego pliku, że potrzebny jest odrębny skrypt?

Nurtuje mnie zwłaszcza pyt.2, bo jak pomnę zabawę z makrami w Excelu, to kod wczytujący/przerabiający wiele plików nie miał problemów z jednym plikiem, a chodzi za mną przeczucie, że i tu nie powinno być problemu.
Jeszcze nie sprawdziłem działania Twoich skryptów, stąd takie "robaczywe" przemyślenia/pytania.  szalony

1. Tak, "cały sezon" to takie zobrazowanie, można wrzucić wiele plików byle kolejność w folderach się zgadzała
2. Tak, potrafi też pojedynczy plik skryptem dla wielu, ale wtedy pliki muszą być w konkretnych folderach, drugi skrypt dla jednego odcinka umożliwia podanie ścieżki bezpośrednio do wideo i napisów, bez tworzenia dodatkowych folderów.

Ostatnio edytowany przez matiasmovie (2021-06-04 16:16:23)

Offline

#70 2021-06-04 06:14:45

roobalek
Użytkownik
Dołączył: 2014-04-10

Odp: [PORADNIK] Automatyczna synchronizacja napisów

Aligator za rozjaśnienie i potwierdzenie żem nie pobłądził, jak również za pożyteczne skrypty. smile

Offline

Stopka forum

© Animesub.info 2024