#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 (opcjonalnie można też wrzucić obrazek cover.png, wtedy pliki zamiast miniatur będą miały ten obrazek)

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-05-29 21:27:35)

Offline

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

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

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 2024