Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @echo off
- set _input="___.mkv"
- set _subs="___.ass"
- set _begin=18:00.000
- set _end=18:09.500
- call :hardsub_encode %_input% %_subs% %_begin% %_end%
- ::call :hardsub_encode %_input% "" %_begin% %_end%
- pause & exit /b
- :hardsub_encode
- set input="%~1"
- set output="%~n1.cut.mp4"
- set subs=%~2
- set begin=%~3
- set end=%~4
- if "%subs%" neq "" (
- :: для обновления subs внутри блока
- setlocal enabledelayedexpansion
- :: экранирование для ffmpeg filtergraph
- set subs=!subs:\=\\\\!
- set subs=!subs:[=\[!
- set subs=!subs:]=\]!
- set subs=!subs::=\\:!
- set vf_hardsub=subtitles=!subs!,
- ) else (
- set vf_hardsub=
- )
- :: масштабирование до 480p с сохранением отношения сторон и mod2
- set vf_scale=scale=-2:480
- set vf_params="%vf_hardsub%%vf_scale%"
- ffmpeg ^
- ^%=== параметры, порядок которых не важен =%
- -y ^%= перезаписывать выходной файл не спрашивая =%
- -copyts ^%= для синхронизации сабов из -vf subtitles с видео =%
- ^%=== входные параметры (до -i) =%
- -ss %begin% ^
- -to %end% ^
- -i %input% ^
- ^%=== выходные параметры (после -i) =%
- -ss %begin% ^%= сброс timestamp в выходном файле после -copyts, =%
- ^%= copyts ss i ss - см. stackoverflow.com/a/59576487 =%
- -map 0:v:0 ^%= оставить только видеодорожку (1-ю из 1-го файла) =%
- -pix_fmt yuv420p ^%= force 8 bit; на случай, если исходник 10-12 бит =%
- -movflags +faststart ^%= для контейнера mp4, полезно при онлайн-просмотре =%
- -vf %vf_params% ^%= опционально хардсаб плюс масштабирование =%
- ^
- -c:v libx264 ^
- -profile:v main ^
- -preset:v veryslow ^
- -crf 23 ^
- ^
- %output%
- exit /b
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement