#1 2020-04-06 00:00:31

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

[Skrypt] Tworzenie mkv z softsubem (masowo)

skrypt usuwa napisy i załączniki z pliku video, a następnie dodaje napisy oraz fonty, przydatny przy robieniu mkv z napisami dla całych sezonów.
do działania potrzebny jest mkvmerge.exe

Pokaż spoiler

@echo off
chcp 1250
TITLE Merge
SETLOCAL ENABLEDELAYEDEXPANSION
Color 80
cls

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

IF "%sciezka%"=="0" (
SET /P sf="Ścieżka Fonts : "
SET /P si="Ścieżka Input : "
SET /P so="Ścieżka Output : "
SET /P ss="Ścieżka Subs : "
cls
) ELSE IF "%sciezka%"=="1" (
set si=input
set so=output
set ss=subs
set sf=fonts
) 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 ("%si%\*") do (

        set output[!o!]=%%~nxb
    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


set f=0
for %%d in ("%sf%\*") do (

        set font[!f!]=%%d
    set /a f=f+1
   
)

set /a ile_font=%f%-1
for /l %%k in (0,1,%ile_font%) do (
set komenda_new=!komenda! --attach-file "!font[%%k]!"
set komenda=!komenda_new!
)

:Wyb
echo Wybierz opcję wpisując cyfrę
echo [0] Tryb Zaawansowany
echo [1] Tryb Szybki

SET /P Sync="Wybór : "

IF "%Sync%"=="0" (
echo Wpisz skrót języka napisów [pol, eng, jpn,...]
Set /P jezyk="Wybór : "

echo Wpisz nazwę napisów
Set /P nazwa="Wybór : "

echo Wybierz numery ścieżki audio, które mają zostać pozostawione
Set /P audio="Wybór : "

)
cls


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

for /l %%j in (0,1,%ile%) do (
mkvmerge.exe -o "%so%\!output[%%j]!" --no-subtitles --no-attachments -a %audio% "!input[%%j]!" --language 0:%jezyk% --track-name 0:%nazwa% "!sub[%%j]!" !komenda!
echo mkvmerge.exe -o "%so%\!output[%%j]!" --no-subtitles --no-attachments -a %audio% "!input[%%j]!" --language 0:%jezyk% --track-name 0:%nazwa% "!sub[%%j]!" !komenda!>>komendy.txt
)

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

for /l %%j in (0,1,%ile%) do (
mkvmerge.exe -o "%so%\!output[%%j]!" --no-subtitles --no-attachments "!input[%%j]!" --language 0:pol --track-name 0:Polish "!sub[%%j]!" !komenda!
echo mkvmerge.exe -o "%so%\!output[%%j]!" --no-subtitles --no-attachments "!input[%%j]!" --language 0:pol --track-name 0:Polish "!sub[%%j]!" !komenda!>>komendy.txt
)

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

do folderu input wrzucami pliki video
do folderu subs wrzucamy polskie napisy
do folderu fonts wrzucamy wszystkie fonty, które mają zostać załączone do mkv

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

kolejność plików w input i subs musi być identyczna, nie muszą mieć identycznych nazw.

Tryb Szybki
napisy dostają automatycznie oznaczenie języka POL i nazwę Polish
ścieżki video i audio zostają nietknięte, dlatego jeżeli w input są pliki z dual audio to w output też się pojawią z dual audio.

Tryb Zaawansowany
możliwość wyboru języka dla napisów oraz nazwy
możliwość wyboru ścieżek audio, które pozostaną (numery ścieżek oddzielane przecinkiem)

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.
Skrypty mogą mieć problemy z różnymi znakami specjalnymi w folderach lub plikach pokroju !%',;#

Gotowa paczka do użycia dostępna tutaj.

Ostatnio edytowany przez matiasmovie (2020-04-10 11:15:13)


eMvend1.png

Offline

#2 2020-04-10 11:06:46

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

Odp: [Skrypt] Tworzenie mkv z softsubem (masowo)

Dodałem tryb zaawansowany


eMvend1.png

Offline

#3 2020-04-10 14:55:03

OtsukareSama
Użytkownik
Skąd: Nippon
Dołączył: 2016-04-12

Odp: [Skrypt] Tworzenie mkv z softsubem (masowo)

Przydatne narzędzie, dzięki.


【「能ある鷹爪隠す」  &「A skilled hawk hides its talons」】

Offline

Stopka forum

© Animesub.info 2020