0

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?

4

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

  • Thanks! Funny, I always thought the mp3 format could contain aac. Looks like that presumtion was completely wrong! – Winterflags Mar 16 '16 at 18:35

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.