@echo off
chcp 65001>NUL
rem setlocal && cd /D "%~dp0"
REM AYTO TO SCRIPT ΔΗΜΙΟΥΡΓΕΙ 4 ΒΙΝΤΕΟ ΓΙΑ ΝΑ ΤΑ ΧΡΗΣΙΜΟΠΟΙΗΣΕΤΕ ΣΤΟ MKDOCS ΘΕΜΑ ΑΠΟ ΤΟ GAMELINK.GR
REM ΠΟΥ ΘΑ ΔΗΜΟΣΙΕΥΣΩ ΣΤΟ ΜΕΛΛΟΝ ΑΛΛΑ ΜΠΟΡΕΙΤΕ ΝΑ ΤΟ ΧΡΗΣΙΜΟΠΟΙΗΣΕΤΕ ΗΔΗ ΓΙΑ ΤΑ ΔΙΚΑ ΣΑΣ ΒΙΝΤΕΟ BANNERS
REM TO BINTEO ΠΡΕΠΕΙ ΝΑ ΕΙΝΑΙ ΤΟΥΛΑΧΙΣΤΟΝ 1080p [1920x1080] KAI 60fps ΓΙΑ ΝΑ ΤΟ ΜΕΤΑΤΡΕΨΩ ΑΦΟΥ ΕΤΣΙ ΤΟ ΕΚΑΝΑ!
REM ΚΑΙ ΦΥΣΙΚΑ ΝΑ ΜΗΝ ΕΙΝΑΙ ΚΑΘΕΤΟ ΒΙΝΤΕΟ... ΜΗΝ ΠΕΡΙΜΕΝΕΤΕ ΚΑΘΕΤΑ ΒΙΝΤΕΟ ΑΠΟ ΚΙΝΗΤΑ ΝΑ ΔΟΥΛΕΨΟΥΝ ΕΔΩ...
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

echo.
echo Μετατρέπω το "%~1" ..
echo.
echo Ελέγχω τα FPS του αρχείου
call ffprobe -v error  -select_streams v:0 -show_entries stream=avg_frame_rate -of default=noprint_wrappers=1:nokey=1 "%~1" > framesPerSecond.txt
echo Ελέγχω το Πλάτος του αρχείου
call ffprobe -v error  -select_streams v:0 -show_entries stream=width -of default=noprint_wrappers=1:nokey=1 "%~1" >> framesPerSecond.txt
echo Ελέγχω το Ύψος του αρχείου
call ffprobe -v error  -select_streams v:0 -show_entries stream=height -of default=noprint_wrappers=1:nokey=1 "%~1" >> framesPerSecond.txt

SetLocal EnableExtensions EnableDelayedExpansion
REM ψευδο-λίστα... δεν εχει array η batch. μονο έτσι lol
set N=0
for /f "usebackq tokens=*" %%a in (framesPerSecond.txt) do (
  set /a N += 1
  set "first!N!=%%a"
)
set /a "firstFPS=first1*1" 
set /a "firstWIDTH=first2*1"
set /a "firstHEIGHT=first3*1"
echo.
echo  !firstFPS! 
echo  !firstWIDTH!  
echo  !firstHEIGHT!
echo.
Set "elegxos="
if !firstFPS! lss 55 Set "elegxos=1"
set /a "megethos=1"
if !firstWIDTH! lss 1800 Set "elegxos=1"
set /a "megethos+=1"
if !firstHEIGHT! lss 900 Set "elegxos=1"
set /a "megethos+=1"
rem εβαλα αυτές τις τιμές γιατί είναι κοντά στις απαιτούμενες και το FFmpeg μεγαλώνει κιόλας τα Βίντεο!

if "%megethos%" equ "1" (
	set "perigrafi=ένα λιγότερο"
) else if "%megethos%" equ "2" (
	set "perigrafi=δύο λιγότερα"
) else (
	set "perigrafi=όλα λιγότερα"
)

if "%elegxos%" equ "1" (
	echo.
	echo                         ΑΠΟΤΕΛΕΣΜΑ
	echo.
	echo   Το Βίντεο έχει πλάτος %firstWIDTH% pixels και ύψος %firstHEIGHT% pixels στα %firstFPS%fps τα οποία είναι %perigrafi%
	echo   από 1920x1080 στα 60fps, που ήταν το αρχικό μου Βίντεο όταν έφτιαξα το Site Banner του Site!
	echo   Το αποτέλεσμα δεν το ξέρω και αμφίβολο και δεν πρόκειται να συνεχίσω την επεξεργασία του Βίντεο.
	echo   Πάτα κάποιο κουμπί για να πάω στο επόμενο Βίντεο, αν υπάρχει φυσικά άλλο..
	echo.
	pause
	
) else (
	echo.
	echo                          ΑΠΟΤΕΛΕΣΜΑ
	echo.
	echo   To Βίντεο είναι κατάλληλο για Site Banner αφού έχει πλάτος %firstWIDTH%x%firstHEIGHT%pixels και %firstFPS%fps
	echo.
	echo                          Συνεχίζω ...
	echo.
	echo.
	echo   Πρώτη Μετατροπή του Αρχείου...
	echo.
	call ffmpeg -v quiet -stats -loglevel error  -i "%~1" -s 1920x1080 -filter:v fps=60 -vcodec libx264 -crf 28 -an "%~p1%~n1-HD-60fps-muted-crf-28.%~x1"
	echo.
	echo.
	echo   Δεύτερη Μετατροπή του Αρχείου...
	echo.
	call ffmpeg -v quiet -stats -loglevel error  -i "%~p1%~n1-HD-60fps-muted-crf-28.%~x1" -s 1280x720 -crf 28 -an "%~p1%~n1-SD-60fps-muted-crf-28.%~x1"
	echo.
	echo.
	echo   Τρίτη Μετατροπή του Αρχείου...
	echo.
	call ffmpeg -v quiet -stats -loglevel error  -i "%~p1%~n1-SD-60fps-muted-crf-28.%~x1" -filter:v fps=30 -crf 28 -an "%~p1%~n1-SD-30fps-muted-crf-28.%~x1"
	echo.
	echo.
	echo   Τέταρτη Μετατροπή του Αρχείου...
	echo.
	call ffmpeg -v quiet -stats -loglevel error  -i "%~p1%~n1-SD-30fps-muted-crf-28.%~x1" -s 640x360 -crf 28 -an "%~p1%~n1-SD-30fps-muted-crf-28-HALF-SIZE.%~x1"
	echo.
	echo.
)

endlocal

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