diff options
| author | Sergey M․ <dstftw@gmail.com> | 2015-05-14 15:19:14 +0600 | 
|---|---|---|
| committer | Sergey M․ <dstftw@gmail.com> | 2015-05-14 15:19:14 +0600 | 
| commit | ff28ede2d1e98f67cb6a68cffde57b0a1f47f85d (patch) | |
| tree | cf48e43095537498b263ab76c3ab61f9429c3ff7 | |
| parent | 88f9d8748c19d1ee6a06e95eb5ed4dc31052e9ad (diff) | |
| parent | 98b8ec8616611194dee77dc6ad88303bae72ce6d (diff) | |
Merge branch 'dstftw-best-fallback-on-outdated-avconv'
| -rwxr-xr-x | youtube_dl/YoutubeDL.py | 9 | ||||
| -rw-r--r-- | youtube_dl/postprocessor/ffmpeg.py | 17 | 
2 files changed, 22 insertions, 4 deletions
diff --git a/youtube_dl/YoutubeDL.py b/youtube_dl/YoutubeDL.py index 0fbfe9642..4c8196d08 100755 --- a/youtube_dl/YoutubeDL.py +++ b/youtube_dl/YoutubeDL.py @@ -1086,9 +1086,10 @@ class YoutubeDL(object):          if req_format is None:              req_format_list = []              if (self.params.get('outtmpl', DEFAULT_OUTTMPL) != '-' and -                    info_dict['extractor'] in ['youtube', 'ted'] and -                    FFmpegMergerPP(self).available): -                req_format_list.append('bestvideo+bestaudio') +                    info_dict['extractor'] in ['youtube', 'ted']): +                merger = FFmpegMergerPP(self) +                if merger.available and merger.can_merge(): +                    req_format_list.append('bestvideo+bestaudio')              req_format_list.append('best')              req_format = '/'.join(req_format_list)          formats_to_download = [] @@ -1848,7 +1849,7 @@ class YoutubeDL(object):              thumb_ext = determine_ext(t['url'], 'jpg')              suffix = '_%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)):                  self.to_screen('[%s] %s: Thumbnail %sis already present' % diff --git a/youtube_dl/postprocessor/ffmpeg.py b/youtube_dl/postprocessor/ffmpeg.py index 214de39f9..cc65b34e7 100644 --- a/youtube_dl/postprocessor/ffmpeg.py +++ b/youtube_dl/postprocessor/ffmpeg.py @@ -591,6 +591,23 @@ class FFmpegMergerPP(FFmpegPostProcessor):          os.rename(encodeFilename(temp_filename), encodeFilename(filename))          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):      def run(self, info):  | 
