annotate god.bat @ 104:2e115eb60be8

god.bat: does the file even exist? committer: GitHub <noreply@github.com>
author Paper <37962225+mrpapersonic@users.noreply.github.com>
date Thu, 22 Sep 2022 08:33:37 -0400
parents 1cc4f545a260
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