<p>You're trying to store an AAC stream in a MP3 container, would be my guess.</p>

<p>Either store the result as <code>"${i%.mp3}-ENCODED.aac"</code> or switch <code>-c:a aac</code> to <code>-c:a libmp3lame</code></p>

CC BY-SA 3.0
2016-03-16T18:35:03.213Z
Thanks! Funny, I always thought the mp3 format could contain aac. Looks like that presumtion was completely wrong!
P A N
CC BY-SA 3.0
2016-03-16T18:32:51.433Z
2016-03-16T18:32:51.433Z
Gyan
<p>I am trying to adapt this FFmpeg script that encodes all video files in a directory, to instead convert mp3 files present in that directory with similar preferences.</p>

<h2>The original script:</h2>

<p><em>This works for .MOV -> .MOV encoding.</em></p>

<pre><code>cd /Convert; for i in *.MOV; do ffmpeg -i "$i" -c:v libx265 -preset veryslow -crf 23 -af "volume=25dB, highpass=f=180, lowpass=f=15000, equalizer=f=50:width_type=h:width=100:g=-15" -c:a aac -strict experimental -b:a 192k "${i%.MOV}-ENCODED.MOV"; done
</code></pre>

<h2>Adapted for mp3 re-encoding:</h2>

<pre><code>cd /Convert; for i in *.mp3; do ffmpeg -i "$i" -af "volume=25dB, highpass=f=180, lowpass=f=15000, equalizer=f=50:width_type=h:width=100:g=-15" -c:a aac -strict experimental -b:a 192k "${i%.mp3}-ENCODED.mp3"; done
</code></pre>

<p><em>Throws errors:</em></p>

<pre><code>Invalid audio stream. Exactly one MP3 audio stream is required.
Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument.
</code></pre>

<p>What is wrong with the script?</p>

<ffmpeg>
FFMpeg: "Invalid audio stream. Exactly one MP3 audio stream is required"
P A N
# FFMpeg: "Invalid audio stream. Exactly one MP3 audio stream is required"

(Asked by: username_0 on 2016-03-16)

I am trying to adapt this FFmpeg script that encodes all video files in a directory, to instead convert mp3 files present in that directory with similar preferences.
The original script:
This works for .MOV -> .MOV encoding.
cd /Convert; for i in *.MOV; do ffmpeg -i "$i" -c:v libx265 -preset veryslow -crf 23 -af "volume=25dB, highpass=f=180, lowpass=f=15000, equalizer=f=50:width_type=h:width=100:g=-15" -c:a aac -strict experimental -b:a 192k "${i%.MOV}-ENCODED.MOV"; done

Adapted for mp3 re-encoding:
cd /Convert; for i in *.mp3; do ffmpeg -i "$i" -af "volume=25dB, highpass=f=180, lowpass=f=15000, equalizer=f=50:width_type=h:width=100:g=-15" -c:a aac -strict experimental -b:a 192k "${i%.mp3}-ENCODED.mp3"; done

Throws errors:
Invalid audio stream. Exactly one MP3 audio stream is required.
Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument.

What is wrong with the script?

**Tags:** ffmpeg


---

## 1 answers

### Answer by username_1 on 2016-03-16. Score: 20 | Accepted answer

You're trying to store an AAC stream in a MP3 container, would be my guess.

Either store the result as `"${i%.mp3}-ENCODED.aac"` or switch `-c:a aac` to `-c:a libmp3lame`

> **Comments:**
> **username_0**: Thanks! Funny, I always thought the mp3 format could contain aac. Looks like that presumtion was completely wrong!  

---

