@echo off
chcp 65001>NUL
rem setlocal && cd /D "%~dp0"
REM AYTO TO SCRIPT ΜΕΤΑΤΡΕΠΕΙ ΕΝΑ ΒΙΝΤΕΟ ΣΕ GIF EIKONA.
REM ΠΡΟΣΟΧΗ ΜΕΓΑΛΗ ΜΕ ΤΗΝ ΔΙΑΡΚΕΙΑ ΤΟΥ ΒΙΝΤΕΟ ΠΟΥ ΘΑ ΕΠΙΛΕΞΕΤΕ
REM ΕΠΕΙΔΗ ΤΟ ΑΡΧΕΙΟ ΤΟ ΕΦΤΙΑΞΑ ΓΙΑ ΝΑ ΣΥΝΔΡΑΜΕΙ ΤΟ OBS ΕΒΑΛΑ TA 4 FORMAT ΠΟΥ ΧΡΗΣΙΜΟΠΟΙΕΙ ΤΟ OBS
REM ΑΝ ΘΕΛΕΤΕ ΚΑΙ ΑΛΛΟΥΣ ΤΥΠΟΥΣ ΒΙΝΤΕΟ ΑΠΛΑ ΤΟΥΣ ΠΡΟΣΘΕΤΕ ΜΕΣΑ ΣΤΗΝ ΠΑΡΕΝΘΕΣΗ. π.χ. *.wmv *.avi 
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 


:FF

set "GIF_DIR=%~1-GIF"
if not exist "%GIF_DIR%" (
	 mkdir "%GIF_DIR%"
	 if not ERRORLEVEL 0 (
	 	echo Περίεργο πρόβλημα..
	 	call vidCodeError.bat %errorlevel%
	 )
) 

echo.
set "fpsss=15"
set /p fpsss=Γράψε τον Αριθμό των Frame Per Second (fps από 1 έως 30, default 15), π.χ. 10, αλλιώς Enter για default:
echo.


echo.
set "scales=-1"
set /p scales=Γράψε τον Αριθμό του πλάτους της εικόνας που θες να γίνει (aspect ratio scale. default -1), π.χ. 320, αλλιώς Enter για default:
echo.


echo.
set "colores=256"
set /p colores=Γράψε τον Αριθμό των χρωμάτων της Παλέτας (default 256 κατεβαίνει μέχρι 3), π.χ. 128, αλλιώς Enter για default:
echo.

REM Ότι λάθος τιμή βάλετε την διορθώνει το FFmpeg γιαυτο δεν χρειάζεται errorhandler αφου έχει εξαρχής τιμή με την set 

echo.
echo Μετατρέπω το "%~1" ..
ping 127.0.0.1 -n 1 > NUL
echo.
PUSHD "%arxiki%"
echo Εξάγω την εικόνα με την παλέτα χρωμάτων απο το Βίντεο "%~1" ...
ping 127.0.0.1 -n 1 > NUL
set palette=%GIF_DIR%\%~n1-screenshot.png
set filename=%GIF_DIR%\%~n1-%scales%-%colores%.gif
set filters=fps=%fpsss%,scale=%scales%:-1:flags=lanczos
ffmpeg -v error -i "%~1" -vf "%filters%,palettegen=max_colors=%colores%" -y "%palette%"

if not exist "%palette%" (
	echo Πρόβλημα στην δημιουργία της εικόνας με την παλέτα χρωμάτων...
)

echo Ξεκινάω την μετατροπή του Βίντεο σε GIF...
ping 127.0.0.1 -n 1 > NUL
call ffmpeg -v error -i "%~1" -i "%palette%" -lavfi "%filters% [x]; [x][1:v] paletteuse=dither=sierra2_4a" "%filename%"

if not exist "%filename%" (
	echo Η Δημιουργία του GIF αρχείου απέτυχε!
)

echo Το "%filename%" Gif αρχείο δημιουργήθηκε!
POPD

if %ERRORLEVEL% NEQ 0 (
		call vidCodeError.bat %errorlevel%
		shift
	) else (
		call vidCodeError.bat 0
		shift		
)
if "%~1" == "" goto End
goto FF

rem endlocal 

:End 
call vid0ends.bat
exit /b 0