annotate 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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
103
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
1 @echo off
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
2
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
3 REM Welp, this was pointless.
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
4 REM
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
5 REM There's really no way to put raw PCM audio
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
6 REM in an MP4 container. MP4 is already a really
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
7 REM shitty format for a number of other reasons
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
8 REM (no real subtitle support, VERY limited codec
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
9 REM options, etc.), which is why I prefer using
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
10 REM Matroska for literally anything outside of
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
11 REM Vegas.
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
12 REM
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
13 REM However, I learned how to make an arguments
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
14 REM parser in fucking Batch out of all things,
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
15 REM so maybe there was a purpose for this after
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
16 REM all.
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
17 REM
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
18 REM TL;DR: I didn't even come close to solving the
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
19 REM problem this was meant to fix, and MP4 is a
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
20 REM godawful container. :D
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
21
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
22 setlocal EnableDelayedExpansion
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
23 call :argparser %*
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
24 if %count% LSS 3 goto usage
104
2e115eb60be8 god.bat: does the file even exist?
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents: 103
diff changeset
25 if not exist "%inputmp4%" (
2e115eb60be8 god.bat: does the file even exist?
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents: 103
diff changeset
26 call :error "Input MP4 file doesn't exist!"
2e115eb60be8 god.bat: does the file even exist?
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents: 103
diff changeset
27 goto usage
2e115eb60be8 god.bat: does the file even exist?
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents: 103
diff changeset
28 )
2e115eb60be8 god.bat: does the file even exist?
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents: 103
diff changeset
29 if not exist "%inputwav%" (
2e115eb60be8 god.bat: does the file even exist?
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents: 103
diff changeset
30 call :error "Input WAV file doesn't exist!"
2e115eb60be8 god.bat: does the file even exist?
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents: 103
diff changeset
31 goto usage
2e115eb60be8 god.bat: does the file even exist?
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents: 103
diff changeset
32 )
2e115eb60be8 god.bat: does the file even exist?
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents: 103
diff changeset
33 if exist "%outputmp4%" call :warning "Output MP4 file already exists!"
103
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
34 REM mp4 barely supports flac, matroska ftw
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
35 REM
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
36 REM vegas pro sucks and has barely any support
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
37 REM for different codecs in MP4s (see: yuv 4:4:4),
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
38 REM and really *only* supports AAC. this sucks,
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
39 REM cause AAC can be a bitch at times
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
40 if not defined acodec set "acodec=flac"
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
41
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
42 ffmpeg -y -i "!inputmp4!" -i "!inputwav!" -c:v copy -c:a !acodec! ^
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
43 -strict -2 -loglevel quiet -stats "!outputmp4!"
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
44 goto cleanup
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
45
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
46 :usage
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
47 echo.Usage:
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
48 echo. %~n0.bat ^<input.mp4^> ^<input.wav^> ^<output.mp4^> [--acodec ^<codec^>]
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
49 echo. [--debug]
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
50 echo.
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
51 echo.Arguments:
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
52 echo. ^<input.mp4^>: input mp4 with at least 1 video stream
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
53 echo. ^<input.wav^>: input wav (or flac)
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
54 echo. ^<output.mp4^>: output mp4
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
55 echo. [--acodec ^<codec^>]: (optional) audio codec to use
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
56 echo. [--debug]: prints all commands to the terminal
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
57 echo.
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
58 REM we don't know if the user is running from a terminal or not...
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
59 echo.Press any key to exit...
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
60 pause 1>NUL 2>&1
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
61
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
62 :cleanup
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
63 REM this MIGHT fuck up someone's environment variables
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
64 REM i don't care :). deal with it
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
65 set "inputmp4="
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
66 set "inputwav="
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
67 set "outputmp4="
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
68 set "acodec="
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
69 set "count="
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
70 exit /b 0
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
71
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
72 REM -------------- Functions --------------
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
73
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
74 :argparser
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
75 set "count=0"
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
76 :argparser_loop
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
77 if not "x%~1x" == "xx" (
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
78 set "var=%~1"
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
79 if "!var:~0,2!"=="--" (
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
80 if "!var!"=="--acodec" (
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
81 shift
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
82 set "acodec=%~2"
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
83 goto :argparser_end
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
84 )
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
85 if "!var!"=="--debug" (
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
86 @echo on
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
87 goto :argparser_end
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
88 )
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
89 ) else (
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
90 if %count% EQU 0 set "inputmp4=%~1"
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
91 if %count% EQU 1 set "inputwav=%~1"
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
92 if %count% EQU 2 set "outputmp4=%~1"
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
93 set /a "count+=1"
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
94 )
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
95 :argparser_end
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
96 shift
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
97 goto :argparser_loop
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
98 )
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
99 set "var="
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
100 exit /b 0
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
101
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
102 :error
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
103 echo [ERROR]: %~1
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
104 exit /b 0
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
105
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
106 :warning
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
107 echo [WARNING]: %~1
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
108 exit /b 0
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
109
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
110 :info
1cc4f545a260 Add files via upload
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents:
diff changeset
111 echo [INFO]: %~1
104
2e115eb60be8 god.bat: does the file even exist?
Paper <37962225+mrpapersonic@users.noreply.github.com>
parents: 103
diff changeset
112 exit /b 0