diff options
author | Jaime Marquínez Ferrándiz <[email protected]> | 2015-02-13 22:25:34 +0100 |
---|---|---|
committer | Jaime Marquínez Ferrándiz <[email protected]> | 2015-02-13 22:25:34 +0100 |
commit | cffcbc02de504d84e1c2677bb525c00b03e04f53 (patch) | |
tree | 1fc4c384f77c412470d66e595e1eb8cb00f47467 | |
parent | 9347fddbfc81114f85fecc72e8452813ef130fdb (diff) | |
download | youtube-dl-cffcbc02de504d84e1c2677bb525c00b03e04f53.tar.gz youtube-dl-cffcbc02de504d84e1c2677bb525c00b03e04f53.zip |
[postprocessor/ffmpeg] Don't let ffmpeg read from stdin (fixes #4945)
If you run 'while read aurl ; do youtube-dl --extract-audio "${aurl}"; done < path_to_batch_file' (batch_file contains one url per line) each call to youtube-dl consumed some characters and 'read' would assing to 'aurl' a non valid url, something like 'tube.com/watch?v=<id>'.
-rw-r--r-- | youtube_dl/postprocessor/ffmpeg.py | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/youtube_dl/postprocessor/ffmpeg.py b/youtube_dl/postprocessor/ffmpeg.py index 01d25f760..5238ce534 100644 --- a/youtube_dl/postprocessor/ffmpeg.py +++ b/youtube_dl/postprocessor/ffmpeg.py @@ -95,7 +95,7 @@ class FFmpegPostProcessor(PostProcessor): if self._downloader.params.get('verbose', False): self._downloader.to_screen('[debug] ffmpeg command line: %s' % shell_quote(cmd)) - p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE) stdout, stderr = p.communicate() if p.returncode != 0: stderr = stderr.decode('utf-8', 'replace') @@ -134,7 +134,7 @@ class FFmpegExtractAudioPP(FFmpegPostProcessor): encodeFilename(self._probe_executable, True), encodeArgument('-show_streams'), encodeFilename(self._ffmpeg_filename_argument(path), True)] - handle = subprocess.Popen(cmd, stderr=compat_subprocess_get_DEVNULL(), stdout=subprocess.PIPE) + handle = subprocess.Popen(cmd, stderr=compat_subprocess_get_DEVNULL(), stdout=subprocess.PIPE, stdin=subprocess.PIPE) output = handle.communicate()[0] if handle.wait() != 0: return None |