convert audio files - flac ogg mp3 m4a
Convert files from different audio formats
Readin Baeldung and Lewis Diamond blog I have come up to this conclusion
ffmpeg
ffmpeg will parse conversion to an external interpreter.
- Best quality:
ffmpeg -i sample1.flac -q:a 0 -map a output1.mp3 - Mid quality:
ffmpeg -i sample1.flac -acodec libmp3lame -ab 320k output1.mp3 - Smallest size:
ffmpeg -i sample1.flac -acodec libmp3lame -ab 128k output1.mp3
lame
will work faster, it does not need an external converter, does it directly.
- Best quality:
lame --preset extreme sample1.flac output2.mp3 - Mid quality:
lame -b 320 sample1.flac output2.mp3 - Smallest size:
lame sample1.flac output2.mp3
batch
Using find -name "*.AUDIOFORMAT" we can parse the ressult to -exec and do audio conversion as noted before, depends on your preferences, for example:
- ffmpeg medium quallity adding
.mp3to the name preserves metadata:find -name "*.flac" -exec ffmpeg -i {} -acodec libmp3lame -ab 320k {}.mp3 \; - ffmpeg better quality adding
.mp3to the name preserves metadata:find -name "*.flac" -exec ffmpeg -i {} -q:a 0 -map a {}.mp3 \; - lame adding
.mp3to the name, does not preserve metadata:find . -name "*.flac" -exec lame --preset extreme {} {}.mp3 \;
best choice
- flac to mp3
find -name "*.flac" -exec bash -c 'ffmpeg -i "{}" -q:a 0 -map a "${0/.flac}.mp3"' {} \;
- m4a to mp3
find -name "*.m4a" -exec bash -c 'ffmpeg -i "{}" -q:a 0 -map a "${0/.m4a}.mp3"' {} \;