@echo off
chcp 65001>NUL
rem setlocal && cd /D "%~dp0"
rem setlocal enabledelayedexpansion
REM AYTO TO SCRIPT ΠΡΟΣΘΕΤΕΙ ΣΕ ENA H ΠΕΡΙΣΣΟΤΕΡΑ ARXEIA ΒΙΝΤΕΟ ΥΠΟΤΙΤΛΟΥΣ ΠΟΥ ΕΝΕΡΓΟΠΟΙΟΥΝΤΑΙ. ΔΕΣ ΤΑ ΛΙΝΚ ΓΙΑ 
REM ΕΠΙΠΛΕΟΝ ΒΟΗΘΕΙΑ. ΤΟ ΚΟΜΜΑΤΙ ΤΩΝ ΥΠΟΤΙΤΛΩΝ ΜΕ ΔΥΣΚΟΛΕΨΕ ΠΟΛΥ ΓΙΑΤΙ ΔΕΝ ΕΙΧΑ ΑΣΧΟΛΗΘΕΙ ΠΟΤΕ ΜΑΖΙ ΤΟΥ.
REM KAI ΦΥΣΙΚΑ ΤΑ ΟΝΟΜΑΤΑ ΤΩΝ ΥΠΟΤΙΤΛΩΝ ΠΡΕΠΕΙ ΝΑ ΕΙΝΑΙ ΙΔΙΑ ΜΕ ΤΟ ή ΤΑ ΑΡΧΕΙΟ ΠΟΥ ΘΕΛΕΤΕ ΝΑ ΠΡΟΣΤΕΘΟΥΝ
REM ΤΑ SCRIPT ΕΙΝΑΙ ΜΕΡΟΣ ΤΟΥ gamelink.gr-ffmpeg-scripts.zip ΑΠΟ ΤΟ EL.GAMELINK.GR
REM Ακολουθεί το Url για να μάθετε περισσότερα ή να το κατεβάσετε. Καλά video editing!
REM 
REM https://el.gamelink.gr/blog/Pws-Mporeite-Na-Mikrynete-ta-Video-gia-tis-MkDocs-Selides-sas-me-to-ffmpeg/ 
REM 

echo.
set StartSubs="srt"
set /p StartSubs=Γράψε το Extension του Υπότιτλου που θες να προστεθεί στο Βίντεο, π.χ. sub, αλλιώς Enter για default srt:
rem μονο με srt εκανα δοκιμες. αν σας βγαλει errors χρησιμοποιήστε κανέναν sub editor, διαβαστε τα λινκς απο κατω για να καταλαβετε

echo.
echo Bρέστε το Encoding του sub αρχείου εύκολα online:
echo https://www.freeformatter.com/convert-file-encoding.html
echo.
set StartEnc="UTF-8"
set /p StartEnc=Γράψτε το Encoding του αρχείου του Υπότιτλου, π.χ. ISO-8859-7 ή WINDOWS-1253, αλλιώς Enter για default UTF-8:
rem  ISO-8859-7 WINDOWS-1253


rem EXTRA HELP...
rem καταρχήν ο player που εχει enable / disable subs και δοκιμασα τα script των subs ειναι ο VLC και ειναι free 
rem https://en.wikibooks.org/wiki/FFMPEG_An_Intermediate_Guide/subtitle_options
rem language codes: https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes
rem https://trac.ffmpeg.org/attachment/ticket/2431/sub_charenc_parameters.txt
rem https://web.archive.org/web/20200511024225/https://ffmpeg.zeranoe.com/forum/viewtopic.php?f=7&t=2554
rem https://trac.ffmpeg.org/wiki/HowToBurnSubtitlesIntoVideo
rem https://stackoverflow.com/questions/8672809/use-ffmpeg-to-add-text-subtitles
rem https://superuser.com/questions/723299/is-there-a-way-to-soft-embed-subtitles-into-an-mp4-file-without-re-encoding
rem file encodings για προχωρημενους
rem https://stackoverflow.com/questions/3710374/get-encoding-of-a-file-in-windows


rem echo.
rem set StartLang="el"
rem set /p StartLang=Γράψε ΟΤΙΔΗΠΟΤΕ ώστε να σημανθεί η γλώσσα του Υπότιτλου, π.χ. grc για Αρχαία, αλλιώς Enter για Ελληνικά el:
rem language codes: https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes
rem ακυρον... για ελληνες μονο . το ξεχασα :p


:FF

if exist "%~p1%~n1.%StartSubs%" (

	echo.
	echo Προσθέτω υπότιτλο στο "%~1" ..
	echo.

	if "%~x1" == ".mp4" (
		call ffmpeg -v quiet -stats -loglevel error -i "%~1" -sub_charenc "%StartEnc%" -f srt -i "%~p1%~n1.%StartSubs%" -map 0:v -map 0:a -c copy -map 1 -c:s:0 mov_text -metadata:s:s:0 language=el "%~p1%~n1-el-sub.mp4"		
	) else if "%~x1" == ".mkv"  (
		call ffmpeg -v quiet -stats -loglevel error -i "%~1" -sub_charenc "%StartEnc%" -f srt -i "%~p1%~n1.%StartSubs%" -map 0:v -map 0:a -c copy -map 1 -c:s:0 srt -metadata:s:s:0 language=el "%~p1%~n1-el-sub.%~x1"		
	) else (
		rem call ffmpeg -v quiet -stats -loglevel error -i "%~1" -i "%~p1%~n1.%StartSubs%" -c:v libx264 -crf 24 -pix_fmt yuv420p -tune film -c:a copy -c:s mov_text -speed fastest "%~p1%~n1-added-el-sub.mp4"
		call ffmpeg -v quiet -stats -loglevel error -i "%~1" -sub_charenc "%StartEnc%" -f srt -i "%~p1%~n1.%StartSubs%" -map 0:v -map 0:a -c copy -map 1 -c:s:0 mov_text -metadata:s:s:0 language=el  -c:v libx264 -c:a copy -crf 24 -pix_fmt yuv420p -tune film -speed fastest "%~p1%~n1-el-sub.mp4"
	)

	if %ERRORLEVEL% NEQ 0 (
		call vidCodeError.bat %errorlevel%
		shift
	) else (
		call vidCodeError.bat 0
		shift		
	)
) else (
 
 echo.
 echo Δεν υπάρχει αρχείο Υπότιτλου με ίδιο όνομα στον Κατάλογο που είναι το Βίντεο!
 echo.
 shift

)

if "%~1" == "" goto End
goto FF

rem endlocal 


:End 
call vid0ends.bat
exit /b 0