1. Introduces option --script=<script to run instead of muxing>.
2. On Windows <script to run instead of muxing> should be a "bat"-file otherwise a shell script, e.g.
root@root-pc MINGW32 ~/bs1770gain
# cat script.bat
@echo off
ffmpeg -hide_banner -loglevel panic -i %BS1770GAIN_SOURCE% -filter:a "volume=%BS1770GAIN_INTEGRATED_RELATIVE%dB" -y %BS1770GAIN_TARGET%
root@root-pc MINGW32 ~/bs1770gain
# cat script.sh
ffmpeg -hide_banner -loglevel panic -i ${BS1770GAIN_SOURCE} -filter:a "volume=${BS1770GAIN_INTEGRATED_RELATIVE}dB" -y ${BS1770GAIN_TARGET}
root@root-pc MINGW32 ~/bs1770gain
Please note that using "ffmpeg" is not mandatory. Here it serves as a mere example.
3. On Windows it is assumed that there is a command interpreter at "C:\Windows\system32\cmd.exe" otherwise a shell
interpreter at "/bin/sh".
4. The following environment variables are provided (as long as their calculation is required due to parameterization):
* BS1770GAIN_SOURCE,
* BS1770GAIN_TARGET,
* BS1770GAIN_LU,
* BS1770GAIN_LRA,
* BS1770GAIN_OVERWRITE,
* BS1770GAIN_NORM,
* BS1770GAIN_TRACK_INTEGRATED aka BS1770GAIN_INTEGRATED,
* BS1770GAIN_TRACK_INTEGRATED_RELATIVE aka BS1770GAIN_INTEGRATED_RELATIVE,
* BS1770GAIN_TRACK_MOMENTARY_MEAN aka BS1770GAIN_MOMENTARY_MEAN,
* BS1770GAIN_TRACK_MOMENTARY_MEAN_RELATIVE aka BS1770GAIN_MOMENTARY_MEAN_RELATIVE,
* BS1770GAIN_TRACK_MOMENTARY_MAXIMUM aka BS1770GAIN_MOMENTARY_MAXIMUM,
* BS1770GAIN_TRACK_MOMENTARY_MAXIMUM_RELATIVE aka BS1770GAIN_MOMENTARY_MAXIMUM_RELATIVE,
* BS1770GAIN_TRACK_MOMENTARY_RANGE aka BS1770GAIN_MOMENTARY_RANGE,
* BS1770GAIN_TRACK_SHORTTERM aka BS1770GAIN_SHORTTERM,
* BS1770GAIN_TRACK_SHORTTERM_RELATIVE aka BS1770GAIN_SHORTTERM_RELATIVE,
* BS1770GAIN_TRACK_SHORTTERM_MEAN aka BS1770GAIN_SHORTTERM_MEAN,
* BS1770GAIN_TRACK_SHORTTERM_MEAN_RELATIVE aka BS1770GAIN_SHORTTERM_MEAN_RELATIVE,
* BS1770GAIN_TRACK_SHORTTERM_MAXIMUM aka BS1770GAIN_SHORTTERM_MAXIMUM,
* BS1770GAIN_TRACK_SHORTTERM_MAXIMUM_RELATIVE aka BS1770GAIN_SHORTTERM_MAXIMUM_RELATIVE,
* BS1770GAIN_TRACK_SHORTTERM_RANGE aka BS1770GAIN_SHORTTERM_RANGE,
* BS1770GAIN_TRACK_SAMPLEPEAK_ABSOLUTE aka BS1770GAIN_SAMPLEPEAK_ABSOLUTE,
* BS1770GAIN_TRACK_SAMPLEPEAK_RELATIVE aka BS1770GAIN_SAMPLEPEAK_RELATIVE,
* BS1770GAIN_TRACK_TRUEPEAK_ABSOLUTE aka BS1770GAIN_TRUEPEAK_ABSOLUTE,
* BS1770GAIN_TRACK_TRUEPEAK_RELATIVE aka BS1770GAIN_TRUEPEAK_RELATIVE,
* BS1770GAIN_ALBUM_INTEGRATED,
* BS1770GAIN_ALBUM_INTEGRATED_RELATIVE,
* BS1770GAIN_ALBUM_MOMENTARY_MEAN,
* BS1770GAIN_ALBUM_MOMENTARY_MEAN_RELATIVE,
* BS1770GAIN_ALBUM_MOMENTARY_MAXIMUM,
* BS1770GAIN_ALBUM_MOMENTARY_MAXIMUM_RELATIVE,
* BS1770GAIN_ALBUM_MOMENTARY_RANGE,
* BS1770GAIN_ALBUM_SHORTTERM,
* BS1770GAIN_ALBUM_SHORTTERM_RELATIVE,
* BS1770GAIN_ALBUM_SHORTTERM_MEAN,
* BS1770GAIN_ALBUM_SHORTTERM_MEAN_RELATIVE,
* BS1770GAIN_ALBUM_SHORTTERM_MAXIMUM,
* BS1770GAIN_ALBUM_SHORTTERM_MAXIMUM_RELATIVE,
* BS1770GAIN_ALBUM_SHORTTERM_RANGE,
* BS1770GAIN_ALBUM_SAMPLEPEAK_ABSOLUTE,
* BS1770GAIN_ALBUM_SAMPLEPEAK_RELATIVE,
* BS1770GAIN_ALBUM_TRUEPEAK_ABSOLUTE, and
* BS1770GAIN_ALBUM_TRUEPEAK_RELATIVE.
5. Option --script might be combined with option --threads, i.e. executing the script in parallel should be possible.
6. Introduces option --shell=<path to interpreter>. The interpreter is assumed to provide an option "-c" for
executing scripts and to require POSIX path conventions.
7. Option --shell might come in handy especially when you're on Windows, using "msys2" and not very comfortable with
the capabilties of "bat"-files and their syntax. Then you might prefer e.g.
bs1770gain <path to input> -o <path to output directory> --script=./script.sh --shell=/bin/sh.exe
or respectively from the Windows "cmd"-box
bs1770gain <path to input> -o <path to output directory> --script=%cd%\script.sh --shell=<path to msys2 installation>\usr\bin\sh.exe
Please note that a full path to the script as well as to the shell is required.