Mercurial > codedump
view god.bat @ 133:0d8eabdd12ab default tip
create: write H:MM:SS timestamps, add option to fill with gaussian-blur instead of black
many albums are longer than one hour so writing H:MM:SS is a
necessity. if anything there will just be verbose info that
isn't important for my use-case.
however the gaussian-blur is simply broken. It works, and it plays
locally just fine, but YouTube in particular elongates the video
to fit the full width. I'm not entirely sure why it does this, but
it makes it useless and ugly.
| author | Paper <paper@tflc.us> |
|---|---|
| date | Sat, 03 Jan 2026 20:25:38 -0500 |
| parents | 2e115eb60be8 |
| children |
line wrap: on
line source
@echo off REM Welp, this was pointless. REM REM There's really no way to put raw PCM audio REM in an MP4 container. MP4 is already a really REM shitty format for a number of other reasons REM (no real subtitle support, VERY limited codec REM options, etc.), which is why I prefer using REM Matroska for literally anything outside of REM Vegas. REM REM However, I learned how to make an arguments REM parser in fucking Batch out of all things, REM so maybe there was a purpose for this after REM all. REM REM TL;DR: I didn't even come close to solving the REM problem this was meant to fix, and MP4 is a REM godawful container. :D setlocal EnableDelayedExpansion call :argparser %* if %count% LSS 3 goto usage if not exist "%inputmp4%" ( call :error "Input MP4 file doesn't exist!" goto usage ) if not exist "%inputwav%" ( call :error "Input WAV file doesn't exist!" goto usage ) if exist "%outputmp4%" call :warning "Output MP4 file already exists!" REM mp4 barely supports flac, matroska ftw REM REM vegas pro sucks and has barely any support REM for different codecs in MP4s (see: yuv 4:4:4), REM and really *only* supports AAC. this sucks, REM cause AAC can be a bitch at times if not defined acodec set "acodec=flac" ffmpeg -y -i "!inputmp4!" -i "!inputwav!" -c:v copy -c:a !acodec! ^ -strict -2 -loglevel quiet -stats "!outputmp4!" goto cleanup :usage echo.Usage: echo. %~n0.bat ^<input.mp4^> ^<input.wav^> ^<output.mp4^> [--acodec ^<codec^>] echo. [--debug] echo. echo.Arguments: echo. ^<input.mp4^>: input mp4 with at least 1 video stream echo. ^<input.wav^>: input wav (or flac) echo. ^<output.mp4^>: output mp4 echo. [--acodec ^<codec^>]: (optional) audio codec to use echo. [--debug]: prints all commands to the terminal echo. REM we don't know if the user is running from a terminal or not... echo.Press any key to exit... pause 1>NUL 2>&1 :cleanup REM this MIGHT fuck up someone's environment variables REM i don't care :). deal with it set "inputmp4=" set "inputwav=" set "outputmp4=" set "acodec=" set "count=" exit /b 0 REM -------------- Functions -------------- :argparser set "count=0" :argparser_loop if not "x%~1x" == "xx" ( set "var=%~1" if "!var:~0,2!"=="--" ( if "!var!"=="--acodec" ( shift set "acodec=%~2" goto :argparser_end ) if "!var!"=="--debug" ( @echo on goto :argparser_end ) ) else ( if %count% EQU 0 set "inputmp4=%~1" if %count% EQU 1 set "inputwav=%~1" if %count% EQU 2 set "outputmp4=%~1" set /a "count+=1" ) :argparser_end shift goto :argparser_loop ) set "var=" exit /b 0 :error echo [ERROR]: %~1 exit /b 0 :warning echo [WARNING]: %~1 exit /b 0 :info echo [INFO]: %~1 exit /b 0
