|
|
@ -3572,7 +3572,7 @@ def parse_codecs(codecs_str):
|
|
|
|
hdr = 'HDR10'
|
|
|
|
hdr = 'HDR10'
|
|
|
|
elif parts[:2] == ['vp9', '2']:
|
|
|
|
elif parts[:2] == ['vp9', '2']:
|
|
|
|
hdr = 'HDR10'
|
|
|
|
hdr = 'HDR10'
|
|
|
|
elif parts[0] in ('flac', 'mp4a', 'opus', 'vorbis', 'mp3', 'aac',
|
|
|
|
elif parts[0] in ('flac', 'mp4a', 'opus', 'vorbis', 'mp3', 'aac', 'ac-4',
|
|
|
|
'ac-3', 'ec-3', 'eac3', 'dtsc', 'dtse', 'dtsh', 'dtsl'):
|
|
|
|
'ac-3', 'ec-3', 'eac3', 'dtsc', 'dtse', 'dtsh', 'dtsl'):
|
|
|
|
acodec = acodec or full_codec
|
|
|
|
acodec = acodec or full_codec
|
|
|
|
elif parts[0] in ('stpp', 'wvtt'):
|
|
|
|
elif parts[0] in ('stpp', 'wvtt'):
|
|
|
@ -3605,7 +3605,7 @@ def get_compatible_ext(*, vcodecs, acodecs, vexts, aexts, preferences=None):
|
|
|
|
# TODO: All codecs supported by parse_codecs isn't handled here
|
|
|
|
# TODO: All codecs supported by parse_codecs isn't handled here
|
|
|
|
COMPATIBLE_CODECS = {
|
|
|
|
COMPATIBLE_CODECS = {
|
|
|
|
'mp4': {
|
|
|
|
'mp4': {
|
|
|
|
'av1', 'hevc', 'avc1', 'mp4a', # fourcc (m3u8, mpd)
|
|
|
|
'av1', 'hevc', 'avc1', 'mp4a', 'ac-4', # fourcc (m3u8, mpd)
|
|
|
|
'h264', 'aacl', 'ec-3', # Set in ISM
|
|
|
|
'h264', 'aacl', 'ec-3', # Set in ISM
|
|
|
|
},
|
|
|
|
},
|
|
|
|
'webm': {
|
|
|
|
'webm': {
|
|
|
@ -6048,7 +6048,7 @@ class FormatSorter:
|
|
|
|
'vcodec': {'type': 'ordered', 'regex': True,
|
|
|
|
'vcodec': {'type': 'ordered', 'regex': True,
|
|
|
|
'order': ['av0?1', 'vp0?9.2', 'vp0?9', '[hx]265|he?vc?', '[hx]264|avc', 'vp0?8', 'mp4v|h263', 'theora', '', None, 'none']},
|
|
|
|
'order': ['av0?1', 'vp0?9.2', 'vp0?9', '[hx]265|he?vc?', '[hx]264|avc', 'vp0?8', 'mp4v|h263', 'theora', '', None, 'none']},
|
|
|
|
'acodec': {'type': 'ordered', 'regex': True,
|
|
|
|
'acodec': {'type': 'ordered', 'regex': True,
|
|
|
|
'order': ['[af]lac', 'wav|aiff', 'opus', 'vorbis|ogg', 'aac', 'mp?4a?', 'mp3', 'e-?a?c-?3', 'ac-?3', 'dts', '', None, 'none']},
|
|
|
|
'order': ['[af]lac', 'wav|aiff', 'opus', 'vorbis|ogg', 'aac', 'mp?4a?', 'mp3', 'ac-?4', 'e-?a?c-?3', 'ac-?3', 'dts', '', None, 'none']},
|
|
|
|
'hdr': {'type': 'ordered', 'regex': True, 'field': 'dynamic_range',
|
|
|
|
'hdr': {'type': 'ordered', 'regex': True, 'field': 'dynamic_range',
|
|
|
|
'order': ['dv', '(hdr)?12', r'(hdr)?10\+', '(hdr)?10', 'hlg', '', 'sdr', None]},
|
|
|
|
'order': ['dv', '(hdr)?12', r'(hdr)?10\+', '(hdr)?10', 'hlg', '', 'sdr', None]},
|
|
|
|
'proto': {'type': 'ordered', 'regex': True, 'field': 'protocol',
|
|
|
|
'proto': {'type': 'ordered', 'regex': True, 'field': 'protocol',
|
|
|
|