diff options
| -rw-r--r-- | youtube_dl/downloader/hls.py | 2 | ||||
| -rw-r--r-- | youtube_dl/postprocessor/ffmpeg.py | 13 | 
2 files changed, 9 insertions, 6 deletions
| diff --git a/youtube_dl/downloader/hls.py b/youtube_dl/downloader/hls.py index b2436e732..7743e176a 100644 --- a/youtube_dl/downloader/hls.py +++ b/youtube_dl/downloader/hls.py @@ -31,7 +31,7 @@ class HlsFD(FileDownloader):          args = [              encodeArgument(opt)              for opt in (ffpp.executable, '-y', '-i', url, '-f', 'mp4', '-c', 'copy', '-bsf:a', 'aac_adtstoasc')] -        args.append(encodeFilename(tmpfilename, True)) +        args.append(encodeFilename(ffpp._ffmpeg_filename_argument(tmpfilename), True))          self._debug_cmd(args) diff --git a/youtube_dl/postprocessor/ffmpeg.py b/youtube_dl/postprocessor/ffmpeg.py index 1f723908b..4f320e124 100644 --- a/youtube_dl/postprocessor/ffmpeg.py +++ b/youtube_dl/postprocessor/ffmpeg.py @@ -135,7 +135,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 +158,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): | 
