fix_mp4_lumia.cmd 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. @echo off
  2. chcp 65001
  3. ::cls
  4. ::color A
  5. setlocal EnableExtensions
  6. setlocal ENABLEDELAYEDEXPANSION
  7. set SRC=%~1
  8. if not defined SRC call :PRINT_USAGE
  9. set SRCNAME=%~n1
  10. set SRCDP=%~dp1
  11. set DST=%~2
  12. if not defined DST set DST=%SRCDP%%SRCNAME%.fixed.mp4
  13. set TMPPATH=%~3
  14. if not defined TMPPATH set TMPPATH=%TMP%\
  15. rem echo:
  16. rem echo %DST%
  17. set ffmpeg=ffmpeg.exe -hide_banner -y
  18. %ffmpeg% -i "%SRC%" -vcodec copy -an -bsf:v h264_mp4toannexb "%TMPPATH%%SRCNAME%.raw.h264"
  19. %ffmpeg% -framerate 30 -i "%TMPPATH%%SRCNAME%.raw.h264" -c copy "%TMPPATH%%SRCNAME%.framerate.fixed.mp4"
  20. %ffmpeg% -i "%SRC%" -c:a aac -b:a 160k "%TMPPATH%%SRCNAME%.aac"
  21. rem %ffmpeg% -hwaccel_device 0 -hwaccel cuvid -i "%TMPPATH%%SRCNAME%.framerate.fixed.mp4" -i "%TMPPATH%%SRCNAME%.aac" -vf "hwupload_cuda,scale_npp=w=1280:h=720:format=yuvj420p:interp_algo=lanczos,hwdownload,format=yuv420p" -c:v h264_nvenc -preset:v llhq -profile:v main -level:v 4.1 -rc:v ll_2pass_quality -rc-lookahead:v 32 -temporal-aq:v 1 -weighted_pred:v 1 -coder:v cabac -c:a copy -pix_fmt yuv420p -movflags +faststart -shortest "%DST%"
  22. %ffmpeg% "%TMPPATH%%SRCNAME%.framerate.fixed.mp4" -i "%TMPPATH%%SRCNAME%.aac" -c:v libx265 -preset ultrafast -x265-params crf=22:qcomp=0.8:aq-mode=1:aq_strength=1.0:qg-size=16:psy-rd=0.7:psy-rdoq=5.0:rdoq-level=1:merange=44 -c:a copy -movflags +faststart -shortest "%DST%"
  23. if exist "%TMPPATH%%SRCNAME%.raw.h264" ( del /q /s "%TMPPATH%%SRCNAME%.raw.h264" 2>NUL )
  24. if exist "%TMPPATH%%SRCNAME%.framerate.fixed.mp4" ( del /q /s "%TMPPATH%%SRCNAME%.framerate.fixed.mp4" 2>NUL )
  25. if exist "%TMPPATH%%SRCNAME%.aac" ( del /q /s "%TMPPATH%%SRCNAME%.aac" 2>NUL )
  26. echo.&pause&goto:eof
  27. :PRINT_USAGE
  28. echo:
  29. echo USAGE:
  30. echo %~n0 ^<source^> [destination] [temp_dir]
  31. exit /b !ERRORLEVEL!