mirror of
				https://github.com/ytdl-org/youtube-dl.git
				synced 2025-10-29 09:26:20 -07:00 
			
		
		
		
	[postprocessor/ffmpeg] Always use the 'file:' protocol for filenames (fixes #6874)
If the filename contains ':' it is interpreted as a protocol. It also handles filenames starting with '-'.
This commit is contained in:
		| @@ -31,7 +31,7 @@ class HlsFD(FileDownloader): | |||||||
|         args = [ |         args = [ | ||||||
|             encodeArgument(opt) |             encodeArgument(opt) | ||||||
|             for opt in (ffpp.executable, '-y', '-i', url, '-f', 'mp4', '-c', 'copy', '-bsf:a', 'aac_adtstoasc')] |             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) |         self._debug_cmd(args) | ||||||
|  |  | ||||||
|   | |||||||
| @@ -135,7 +135,10 @@ class FFmpegPostProcessor(PostProcessor): | |||||||
|  |  | ||||||
|         files_cmd = [] |         files_cmd = [] | ||||||
|         for path in input_paths: |         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')] + |         cmd = ([encodeFilename(self.executable, True), encodeArgument('-y')] + | ||||||
|                files_cmd + |                files_cmd + | ||||||
|                [encodeArgument(o) for o in opts] + |                [encodeArgument(o) for o in opts] + | ||||||
| @@ -155,10 +158,10 @@ class FFmpegPostProcessor(PostProcessor): | |||||||
|         self.run_ffmpeg_multiple_files([path], out_path, opts) |         self.run_ffmpeg_multiple_files([path], out_path, opts) | ||||||
|  |  | ||||||
|     def _ffmpeg_filename_argument(self, fn): |     def _ffmpeg_filename_argument(self, fn): | ||||||
|         # ffmpeg broke --, see https://ffmpeg.org/trac/ffmpeg/ticket/2127 for details |         # Always use 'file:' because the filename may contain ':' (ffmpeg | ||||||
|         if fn.startswith('-'): |         # interprets that as a protocol) or can start with '-' (-- is broken in | ||||||
|             return './' + fn |         # ffmpeg, see https://ffmpeg.org/trac/ffmpeg/ticket/2127 for details) | ||||||
|         return fn |         return 'file:' + fn | ||||||
|  |  | ||||||
|  |  | ||||||
| class FFmpegExtractAudioPP(FFmpegPostProcessor): | class FFmpegExtractAudioPP(FFmpegPostProcessor): | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user