All arguments for subprocess.check_call() must be list of strings.
flac2ogg
Flac2ogg is an automated Audio file converter.
At the beginning, aim of flac2ogg was to produce high quality ogg Vorbis files out of (preferably) lossless formats like FLAC/WAVE/WavePack. Over time it evolved of ability to produce small-sized mp3 files and ogg Opus which become the default encoder.
Of course there is no constraints on what source files would be and what output format will be, so there is a possibility to create ogg from low quality mp3 files, nevertheless it doesn't make any sense :) This script automate conversion between different type of audio formats.
Requirements
python 3
mutagen python library for tag read/write
vorbis tools for ogg files encode/decode
opus tools for opus files encode/decode
lame for mp3 files encode/decode
flac for flac files decode
mac for Monkey audio codecs/ape files decode
wavpack for wavpack files decode
mplayer for m4a files decode
Supported formats
Conversion can be performed from the following formats:
FLAC
MP3
MP4
WAVE
WavePack
Ape
Ogg Vorbis
Ogg Opus
Currently supported encoders:
Ogg Vorbis
Ogg Opus
MP3 (lame)
There is an option to set the quality for the encoders - for Vorbis files there would be used an -q option for oggenc command, for the mp3 format -V option would be used for lame command and --bitrate for opusenc for the Opus files. Consult corresponding encoder man pages for details.
Usage
Given that there are couple of music files, simplest usage is as follows:
$ flac2ogg.py directory_of_music_files/*
All files from that directory will be encoded to opus by default. If there are already some opus files, new files would have _encoded_ added into the filename. Note, that output files will be placed next to the original files.
License
This work is licensed on 3-clause BSD license. See LICENSE file for details.