I'm not really skilled in coding, but I'm trying to simplify the process of decoding a non-compatible surround audio file into a .wav file using the Dolby Reference Player. I've found this command:
drp "input file path" --ac4dec-dmx-mode hp --ac4dec-drc-enabled false --ac4dec-out-ref-level 0 --ac4dec-limiter-enabled false --ac4dec-pres-index 1 --audio-out-file 'input file name'.wav
Can anyone help me put together a script that allows me to just input the .ac4 file and have it decode automatically? I really appreciate it! Sorry for any formatting issues, I'm posting from my phone.
2 Answers
If you're just converting one file, you can run this command:
```
ffmpeg -i 'input.ac4' 'output.wav'
```
Just replace 'input.ac4' and 'output.wav' with your actual file paths.
If you want to convert all .ac4 files in the current folder, try this:
```
find . -type f -name '*.ac4' -exec bash -c 'echo "$1"; ffmpeg -i "$1" "${1%.ac4}.wav"' _ {} ';'
```
Assuming ChatGPT gave you a decent code snippet, here's a step-by-step:
1. Create a file named `ac4-to-wav`.
2. Inside that file, add:
```
#! /bin/sh
for file; do
out=${file%.*}.wav # Changing suffix for output
if [ -e "$out" ]; then
echo >&2 "'$out' already exists, skipping"
continue
fi
drp "$file" --ac4dec-dmx-mode hp --ac4dec-drc-enabled false --ac4dec-out-ref-level 0 --ac4dec-limiter-enabled false --ac4dec-pres-index 1 --audio-out-file "$out"
done
```
3. Make it executable: `chmod +x ac4-to-wav`.
4. From the directory where the script is, run: `./ac4-to-wav /path/to/your/*.ac4`.
If you want to run it from anywhere, you can move it to `~/.local/bin` which is usually in your PATH.
What's looping over in that `for file; do`? What exactly is `file` used for? I mean, it works, but I'm kinda curious!
Not gonna lie, that looks more like converting from .wav to .ac4, which is the opposite of what I need, but thanks for giving me a solid reference to start with.