Advertisement
slyfox1186

ffmpeg_convert_video_to_x265_hevc_encoding.bat

Aug 25th, 2020 (edited)
475
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Batch 2.95 KB | None | 0 0
  1. @ECHO OFF
  2. SETLOCAL ENABLEEXTENSIONS
  3. COLOR 0A
  4.  
  5. :----------------------------------------------------------------------------------
  6.  
  7. REM Created by: SlyFox1186
  8. REM https://pastebin.com/u/slyfox1186
  9.  
  10. REM IT IS [ HIGHLY RECOMMENDED ] TO RUN THIS IN A TEST FOLDER >>
  11. REM BEFORE USING ON YOUR PERSONAL LIBRARY
  12.  
  13. REM THIS SCRIPT WILL USE [ FFmpeg.exe ] TO RECURSIVELY SEARCH >>
  14. REM FOR A SINGLE MP4 FILE WITH SYNTAX [ <Name>.mp4 ] AND CONVERT IT TO HEVC x265
  15. REM IT WILL SKIP OVER ANY FILENAME WITH SYNTAX [ <Name>(x265).mp4 ]
  16.  
  17. REM INFILE WILL [ NOT ] BE AFFECTED
  18. REM OUTFILE [ WILL ] BE AFFECTED [ <Name>(x265).mp4 ]
  19.  
  20. REM IT WILL STORE THE FULL COMMAND IN TEMP FILE [ convert.bat ] >>
  21. REM UNCOMMENT [ DEL COMMAND ] ON LINES 50-54 TO AUTO-DELETE TEMP FILE
  22.  
  23. REM USING [ -a:c aac ] CAUSES ERROR MESSAGES TO FLOOD CMD WINDOW , USE [ a:c copy ] INSTEAD
  24.  
  25. REM THIS SCRIPT [ DOES ] PASS FILE PATHS THAT HAVE AN "!" IN THEM
  26.  
  27. REM CHANGE VARIABLES INSIDE [ < > SYMBOLS ] AS NEEDED BELOW, DO NOT INCLUDE [ < > SYMBOLS ]
  28.  
  29. :----------------------------------------------------------------------------------
  30.  
  31. REM SET FFMPEG PATH AND OPTIONS
  32. SET FF=<"ffmpeg.exe FULL PATH">
  33. SET mp4Path=<WORKING DIRECTORY FOR MP4 FILE>
  34. SET VIDEO=<libx265>
  35. SET AUDIO=<copy>
  36. SET PRESET=<medium>
  37. SET CRF=<18>
  38.  
  39. PUSHD "%mp4Path%"
  40.  
  41. :----------------------------------------------------------------------------------
  42.  
  43. REM CREATE EMPTY CONVERT FILE
  44. COPY NUL "convert.bat" >NUL 2>&1
  45.  
  46. REM ADD ECHO OFF
  47. ECHO @ECHO OFF >>"convert.bat"
  48.  
  49. FOR /R %%G IN (*.mp4) DO (
  50.     SET "fname=%%~dpnG"
  51.     SETLOCAL ENABLEDELAYEDEXPANSION
  52.  
  53. :----------------------------------------------------------------------------------
  54.  
  55. REM IF NOT [ <Name>(x265).mp4 ] THEN PROCEED
  56. IF "!fname!"=="!fname:*(x265)=!" (
  57.     CALL :RunFFmpeg fname
  58. REM THE TEMP FILE "convert.bat" CAN GET STUCK ON SEQUENTIAL RUNS SO RENAME AND DELETE IT AS A WORK AROUND
  59.     REM IF EXIST "convert.bat" (
  60.     REM MOVE "convert.bat" "convert1.bat" >NUL 2>&1
  61.     REM DEL /Q "convert1.bat" >NUL 2>&1
  62.     REM )
  63.     GOTO END
  64.  
  65. REM ADD LINE BREAK SPACE
  66. ECHO( >>"convert.bat"
  67.  
  68.     ) ELSE ENDLOCAL && GOTO ERROR
  69. )
  70.  
  71.     :RunFFmpeg
  72.     REM SKIP IF THE PARAMETER IS EMPTY
  73.     IF "%~1"=="" GOTO END
  74. )
  75.  
  76. :----------------------------------------------------------------------------------
  77.  
  78. REM CONVERT VIDEO WITH FFMPEG
  79. TITLE FFMPEG H.265: ^>^> "!%1!.mp4"
  80. ECHO %FF% -hide_banner -y -i "!%1!.mp4" ^
  81. -c:v %VIDEO% -preset %PRESET% -crf %CRF% -c:a %AUDIO% -threads 0 "!%~1!(x265).mp4">>"convert.bat" ^
  82. && %FF% | %FF% -hide_banner -y -i "!%1!.mp4" ^
  83. -c:v %VIDEO% -preset %PRESET% -crf %CRF% -c:a %AUDIO% -threads 0 "!%~1!(x265).mp4"
  84. EXIT /B
  85.  
  86. :----------------------------------------------------------------------------------
  87.  
  88. :ERROR
  89. ECHO=
  90. ECHO THE INPUT FILE FOUND "(x265)" IN THE NAME & ECHO=
  91. ECHO OR WAS NOT FOUND AT ALL & ECHO=
  92. PAUSE
  93. GOTO :EOF
  94.  
  95. :----------------------------------------------------------------------------------
  96.  
  97. :END
  98. ECHO.
  99. ECHO FFMPEG FINISHED & ECHO=
  100. PAUSE
  101. EXIT
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement