nixfiles/musicutil/transcode_levels.py
2022-02-04 17:01:59 +00:00

48 lines
1.2 KiB
Python

def add_to_arr(arr: list[str], items: list[str]) -> list[str]:
for item in items:
arr.append(item)
# does not include copy
transcode_levels = []
# mp3 v0 -> v9
add_to_arr(transcode_levels, [
f"mp3-v{quality}" for quality in range(0, 10)
])
# mp3 bitrates
mp3_bitrates = [8, 16, 24, 32, 40, 48, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320]
add_to_arr(transcode_levels, [
f"mp3-{bitrate}k" for bitrate in mp3_bitrates
])
opus_bitrates = ["16", "24", "32", "64", "96", "128", "256"]
add_to_arr(transcode_levels, [
f"opus-{bitrate}k" for bitrate in opus_bitrates
])
add_to_arr(transcode_levels, [
f"vorbis-q{quality}" for quality in range(-2, 11)
])
add_to_arr(transcode_levels, [
f"speex-q{quality}" for quality in range(0, 11)
])
# Extra Default Mappings
preset_transcode_levels = {
"mp3-low": "mp3-v4",
"mp3-medium": "mp3-v2",
"mp3-high": "mp3-v0",
"opus-low": "opus-32k",
"opus-medium": "opus-64k",
"opus-high": "opus-96k",
"opus-higher": "opus-128k",
"opus-extreme": "opus-256k"
}
add_to_arr(transcode_levels, preset_transcode_levels.keys())
#transcode_levels.sort()
#import json
#print(json.dumps(transcode_levels,indent=2))
#exit()