[core] merge formats by codecs
This commit is contained in:
parent
a0986f874d
commit
923069eb48
|
@ -1947,8 +1947,32 @@ class HaruhiDL(object):
|
||||||
|
|
||||||
def compatible_formats(formats):
|
def compatible_formats(formats):
|
||||||
video, audio = formats
|
video, audio = formats
|
||||||
# Check extension
|
# Check extensions and codecs
|
||||||
video_ext, audio_ext = video.get('ext'), audio.get('ext')
|
video_ext, audio_ext = video.get('ext'), audio.get('ext')
|
||||||
|
video_codec, audio_codec = video.get('vcodec'), audio.get('acodec')
|
||||||
|
|
||||||
|
if video_codec and audio_codec:
|
||||||
|
COMPATIBLE_CODECS = {
|
||||||
|
'mp4': (
|
||||||
|
# fourcc (m3u8, mpd)
|
||||||
|
'av01', 'hevc', 'avc1', 'mp4a',
|
||||||
|
# whatever the ism does
|
||||||
|
'h264', 'aacl',
|
||||||
|
),
|
||||||
|
'webm': (
|
||||||
|
'av01', 'vp9', 'vp8', 'opus', 'vrbs',
|
||||||
|
# these are in the webm spec, so putting it here to be sure
|
||||||
|
'vp9x', 'vp8x',
|
||||||
|
),
|
||||||
|
}
|
||||||
|
video_codec = video_codec[:4].lower()
|
||||||
|
audio_codec = audio_codec[:4].lower()
|
||||||
|
for ext in COMPATIBLE_CODECS:
|
||||||
|
if all(codec in COMPATIBLE_CODECS[ext]
|
||||||
|
for codec in (video_codec, audio_codec)):
|
||||||
|
info_dict['ext'] = ext
|
||||||
|
return True
|
||||||
|
|
||||||
if video_ext and audio_ext:
|
if video_ext and audio_ext:
|
||||||
COMPATIBLE_EXTS = (
|
COMPATIBLE_EXTS = (
|
||||||
('mp3', 'mp4', 'm4a', 'm4p', 'm4b', 'm4r', 'm4v', 'ismv', 'isma'),
|
('mp3', 'mp4', 'm4a', 'm4p', 'm4b', 'm4r', 'm4v', 'ismv', 'isma'),
|
||||||
|
@ -1957,7 +1981,6 @@ class HaruhiDL(object):
|
||||||
for exts in COMPATIBLE_EXTS:
|
for exts in COMPATIBLE_EXTS:
|
||||||
if video_ext in exts and audio_ext in exts:
|
if video_ext in exts and audio_ext in exts:
|
||||||
return True
|
return True
|
||||||
# TODO: Check acodec/vcodec
|
|
||||||
return False
|
return False
|
||||||
|
|
||||||
filename_real_ext = os.path.splitext(filename)[1][1:]
|
filename_real_ext = os.path.splitext(filename)[1][1:]
|
||||||
|
|
Loading…
Reference in a new issue