Merge branch 'dstftw-best-fallback-on-outdated-avconv'
This commit is contained in:
commit
ff28ede2d1
2 changed files with 22 additions and 4 deletions
|
@ -1086,9 +1086,10 @@ class YoutubeDL(object):
|
||||||
if req_format is None:
|
if req_format is None:
|
||||||
req_format_list = []
|
req_format_list = []
|
||||||
if (self.params.get('outtmpl', DEFAULT_OUTTMPL) != '-' and
|
if (self.params.get('outtmpl', DEFAULT_OUTTMPL) != '-' and
|
||||||
info_dict['extractor'] in ['youtube', 'ted'] and
|
info_dict['extractor'] in ['youtube', 'ted']):
|
||||||
FFmpegMergerPP(self).available):
|
merger = FFmpegMergerPP(self)
|
||||||
req_format_list.append('bestvideo+bestaudio')
|
if merger.available and merger.can_merge():
|
||||||
|
req_format_list.append('bestvideo+bestaudio')
|
||||||
req_format_list.append('best')
|
req_format_list.append('best')
|
||||||
req_format = '/'.join(req_format_list)
|
req_format = '/'.join(req_format_list)
|
||||||
formats_to_download = []
|
formats_to_download = []
|
||||||
|
@ -1848,7 +1849,7 @@ class YoutubeDL(object):
|
||||||
thumb_ext = determine_ext(t['url'], 'jpg')
|
thumb_ext = determine_ext(t['url'], 'jpg')
|
||||||
suffix = '_%s' % t['id'] if len(thumbnails) > 1 else ''
|
suffix = '_%s' % t['id'] if len(thumbnails) > 1 else ''
|
||||||
thumb_display_id = '%s ' % t['id'] if len(thumbnails) > 1 else ''
|
thumb_display_id = '%s ' % t['id'] if len(thumbnails) > 1 else ''
|
||||||
t['filename'] = thumb_filename = os.path.splitext(filename)[0] + suffix + '.' + thumb_ext
|
thumb_filename = os.path.splitext(filename)[0] + suffix + '.' + thumb_ext
|
||||||
|
|
||||||
if self.params.get('nooverwrites', False) and os.path.exists(encodeFilename(thumb_filename)):
|
if self.params.get('nooverwrites', False) and os.path.exists(encodeFilename(thumb_filename)):
|
||||||
self.to_screen('[%s] %s: Thumbnail %sis already present' %
|
self.to_screen('[%s] %s: Thumbnail %sis already present' %
|
||||||
|
|
|
@ -591,6 +591,23 @@ class FFmpegMergerPP(FFmpegPostProcessor):
|
||||||
os.rename(encodeFilename(temp_filename), encodeFilename(filename))
|
os.rename(encodeFilename(temp_filename), encodeFilename(filename))
|
||||||
return info['__files_to_merge'], info
|
return info['__files_to_merge'], info
|
||||||
|
|
||||||
|
def can_merge(self):
|
||||||
|
# TODO: figure out merge-capable ffmpeg version
|
||||||
|
if self.basename != 'avconv':
|
||||||
|
return True
|
||||||
|
|
||||||
|
required_version = '10-0'
|
||||||
|
if is_outdated_version(
|
||||||
|
self._versions[self.basename], required_version):
|
||||||
|
warning = ('Your copy of %s is outdated and unable to properly mux separate video and audio files, '
|
||||||
|
'youtube-dl will download single file media. '
|
||||||
|
'Update %s to version %s or newer to fix this.') % (
|
||||||
|
self.basename, self.basename, required_version)
|
||||||
|
if self._downloader:
|
||||||
|
self._downloader.report_warning(warning)
|
||||||
|
return False
|
||||||
|
return True
|
||||||
|
|
||||||
|
|
||||||
class FFmpegFixupStretchedPP(FFmpegPostProcessor):
|
class FFmpegFixupStretchedPP(FFmpegPostProcessor):
|
||||||
def run(self, info):
|
def run(self, info):
|
||||||
|
|
Loading…
Reference in a new issue