Browse Source

FFmpegPostProcessor: decode stderr first and then get the last line (closes #837)

Jaime Marquínez Ferrándiz 12 years ago
parent
commit
fb2f83360c
1 changed files with 2 additions and 1 deletions
  1. 2 1
      youtube_dl/PostProcessor.py

+ 2 - 1
youtube_dl/PostProcessor.py

@@ -85,8 +85,9 @@ class FFmpegPostProcessor(PostProcessor):
         p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
         p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
         stdout,stderr = p.communicate()
         stdout,stderr = p.communicate()
         if p.returncode != 0:
         if p.returncode != 0:
+            stderr = stderr.decode('utf-8', 'replace')
             msg = stderr.strip().split('\n')[-1]
             msg = stderr.strip().split('\n')[-1]
-            raise FFmpegPostProcessorError(msg.decode('utf-8', 'replace'))
+            raise FFmpegPostProcessorError(msg)
 
 
     def _ffmpeg_filename_argument(self, fn):
     def _ffmpeg_filename_argument(self, fn):
         # ffmpeg broke --, see https://ffmpeg.org/trac/ffmpeg/ticket/2127 for details
         # ffmpeg broke --, see https://ffmpeg.org/trac/ffmpeg/ticket/2127 for details