Add --hls-prefer-ffmpeg

This commit is contained in:
Sergey M․ 2016-04-21 23:02:17 +06:00
parent 88296ac326
commit bf09af3acb
No known key found for this signature in database
GPG key ID: 2C393E0F18A9236D
3 changed files with 12 additions and 3 deletions

View file

@ -260,7 +260,9 @@ class YoutubeDL(object):
The following options determine which downloader is picked: The following options determine which downloader is picked:
external_downloader: Executable of the external downloader to call. external_downloader: Executable of the external downloader to call.
None or unset for standard (built-in) downloader. None or unset for standard (built-in) downloader.
hls_prefer_native: Use the native HLS downloader instead of ffmpeg/avconv. hls_prefer_native: Use the native HLS downloader instead of ffmpeg/avconv
if True, otherwise use ffmpeg/avconv if False, otherwise
use downloader suggested by extractor if None.
The following parameters are not used by YoutubeDL itself, they are used by The following parameters are not used by YoutubeDL itself, they are used by
the downloader (see youtube_dl/downloader/common.py): the downloader (see youtube_dl/downloader/common.py):

View file

@ -41,9 +41,12 @@ def get_suitable_downloader(info_dict, params={}):
if ed.can_download(info_dict): if ed.can_download(info_dict):
return ed return ed
if protocol == 'm3u8' and params.get('hls_prefer_native'): if protocol == 'm3u8' and params.get('hls_prefer_native') is True:
return HlsFD return HlsFD
if protocol == 'm3u8_native' and params.get('hls_prefer_native') is False:
return FFmpegFD
return PROTOCOL_MAP.get(protocol, HttpFD) return PROTOCOL_MAP.get(protocol, HttpFD)

View file

@ -425,8 +425,12 @@ def parseOpts(overrideArguments=None):
help='Set file xattribute ytdl.filesize with expected filesize (experimental)') help='Set file xattribute ytdl.filesize with expected filesize (experimental)')
downloader.add_option( downloader.add_option(
'--hls-prefer-native', '--hls-prefer-native',
dest='hls_prefer_native', action='store_true', dest='hls_prefer_native', action='store_true', default=None,
help='Use the native HLS downloader instead of ffmpeg') help='Use the native HLS downloader instead of ffmpeg')
downloader.add_option(
'--hls-prefer-ffmpeg',
dest='hls_prefer_native', action='store_false', default=None,
help='Use ffmpeg instead of the native HLS downloader')
downloader.add_option( downloader.add_option(
'--hls-use-mpegts', '--hls-use-mpegts',
dest='hls_use_mpegts', action='store_true', dest='hls_use_mpegts', action='store_true',