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?
Follow
asked Mar 16, 2016 at 18:04
1,61366 gold badges1515 silver badges2222 bronze badges
1 Answer
Sorted by:
Highest score (default) Date modified (newest first) Date created (oldest first)
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
Follow
answered Mar 16, 2016 at 18:32
31.8k22 gold badges5555 silver badges8888 bronze badges
- Thanks! Funny, I always thought the mp3 format could contain aac. Looks like that presumtion was completely wrong!
– P A N
Mar 16, 2016 at 18:35