mirror of
				https://github.com/ytdl-org/youtube-dl.git
				synced 2025-10-29 09:26:20 -07:00 
			
		
		
		
	[ffmpeg] Correct argument encoding on Windows with Python 2.x
Fixes #2924
This commit is contained in:
		| @@ -9,6 +9,7 @@ from .common import AudioConversionError, PostProcessor | |||||||
| from ..utils import ( | from ..utils import ( | ||||||
|     check_executable, |     check_executable, | ||||||
|     compat_subprocess_get_DEVNULL, |     compat_subprocess_get_DEVNULL, | ||||||
|  |     encodeArgument, | ||||||
|     encodeFilename, |     encodeFilename, | ||||||
|     PostProcessingError, |     PostProcessingError, | ||||||
|     prepend_extension, |     prepend_extension, | ||||||
| @@ -48,7 +49,7 @@ class FFmpegPostProcessor(PostProcessor): | |||||||
|         for path in input_paths: |         for path in input_paths: | ||||||
|             files_cmd.extend(['-i', encodeFilename(path, True)]) |             files_cmd.extend(['-i', encodeFilename(path, True)]) | ||||||
|         cmd = ([self._get_executable(), '-y'] + files_cmd |         cmd = ([self._get_executable(), '-y'] + files_cmd | ||||||
|                + opts + |                + [encodeArgument(o) for o in opts] + | ||||||
|                [encodeFilename(self._ffmpeg_filename_argument(out_path), True)]) |                [encodeFilename(self._ffmpeg_filename_argument(out_path), True)]) | ||||||
|  |  | ||||||
|         if self._downloader.params.get('verbose', False): |         if self._downloader.params.get('verbose', False): | ||||||
|   | |||||||
| @@ -540,6 +540,16 @@ def encodeFilename(s, for_subprocess=False): | |||||||
|         encoding = 'utf-8' |         encoding = 'utf-8' | ||||||
|     return s.encode(encoding, 'ignore') |     return s.encode(encoding, 'ignore') | ||||||
|  |  | ||||||
|  |  | ||||||
|  | def encodeArgument(s): | ||||||
|  |     if not isinstance(s, compat_str): | ||||||
|  |         # Legacy code that uses byte strings | ||||||
|  |         # Uncomment the following line after fixing all post processors | ||||||
|  |         #assert False, 'Internal error: %r should be of type %r, is %r' % (s, compat_str, type(s)) | ||||||
|  |         s = s.decode('ascii') | ||||||
|  |     return encodeFilename(s, True) | ||||||
|  |  | ||||||
|  |  | ||||||
| def decodeOption(optval): | def decodeOption(optval): | ||||||
|     if optval is None: |     if optval is None: | ||||||
|         return optval |         return optval | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user