diff options
Diffstat (limited to 'youtube_dl/postprocessor/ffmpeg.py')
| -rw-r--r-- | youtube_dl/postprocessor/ffmpeg.py | 18 | 
1 files changed, 11 insertions, 7 deletions
| diff --git a/youtube_dl/postprocessor/ffmpeg.py b/youtube_dl/postprocessor/ffmpeg.py index 1f723908b..daca5d814 100644 --- a/youtube_dl/postprocessor/ffmpeg.py +++ b/youtube_dl/postprocessor/ffmpeg.py @@ -52,7 +52,7 @@ class FFmpegPostProcessor(PostProcessor):      def _determine_executables(self):          programs = ['avprobe', 'avconv', 'ffmpeg', 'ffprobe'] -        prefer_ffmpeg = self._downloader.params.get('prefer_ffmpeg', False) +        prefer_ffmpeg = False          self.basename = None          self.probe_basename = None @@ -60,6 +60,7 @@ class FFmpegPostProcessor(PostProcessor):          self._paths = None          self._versions = None          if self._downloader: +            prefer_ffmpeg = self._downloader.params.get('prefer_ffmpeg', False)              location = self._downloader.params.get('ffmpeg_location')              if location is not None:                  if not os.path.exists(location): @@ -135,7 +136,10 @@ class FFmpegPostProcessor(PostProcessor):          files_cmd = []          for path in input_paths: -            files_cmd.extend([encodeArgument('-i'), encodeFilename(path, True)]) +            files_cmd.extend([ +                encodeArgument('-i'), +                encodeFilename(self._ffmpeg_filename_argument(path), True) +            ])          cmd = ([encodeFilename(self.executable, True), encodeArgument('-y')] +                 files_cmd +                 [encodeArgument(o) for o in opts] + @@ -155,10 +159,10 @@ class FFmpegPostProcessor(PostProcessor):          self.run_ffmpeg_multiple_files([path], out_path, opts)      def _ffmpeg_filename_argument(self, fn): -        # ffmpeg broke --, see https://ffmpeg.org/trac/ffmpeg/ticket/2127 for details -        if fn.startswith('-'): -            return './' + fn -        return fn +        # Always use 'file:' because the filename may contain ':' (ffmpeg +        # interprets that as a protocol) or can start with '-' (-- is broken in +        # ffmpeg, see https://ffmpeg.org/trac/ffmpeg/ticket/2127 for details) +        return 'file:' + fn  class FFmpegExtractAudioPP(FFmpegPostProcessor): @@ -269,7 +273,7 @@ class FFmpegExtractAudioPP(FFmpegPostProcessor):              return [], information          try: -            self._downloader.to_screen('[' + self.basename + '] Destination: ' + new_path) +            self._downloader.to_screen('[ffmpeg] Destination: ' + new_path)              self.run_ffmpeg(path, new_path, acodec, more_opts)          except AudioConversionError as e:              raise PostProcessingError( | 
