commit: da273188f33ace3b48290a8cf35d36033a6fa960
parent 1bd9258272dd4884b5c159ae77e20ae75176e8d1
Author: Ricardo Garcia <sarbalap+freshmeat@gmail.com>
Date: Fri, 25 Feb 2011 21:53:26 +0100
Catch possible exceptions when running ffprobe
Diffstat:
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/youtube-dl b/youtube-dl
@@ -2619,10 +2619,13 @@ class FFmpegExtractAudioPP(PostProcessor):
@staticmethod
def get_audio_codec(path):
- handle = subprocess.Popen(['ffprobe', '-show_streams', path],
- stderr=file(os.path.devnull, 'w'), stdout=subprocess.PIPE)
- output = handle.communicate()[0]
- if handle.wait() != 0:
+ try:
+ handle = subprocess.Popen(['ffprobe', '-show_streams', path],
+ stderr=file(os.path.devnull, 'w'), stdout=subprocess.PIPE)
+ output = handle.communicate()[0]
+ if handle.wait() != 0:
+ return None
+ except (IOError, OSError):
return None
audio_codec = None
for line in output.split('\n'):
@@ -2646,7 +2649,7 @@ class FFmpegExtractAudioPP(PostProcessor):
filecodec = self.get_audio_codec(path)
if filecodec is None:
- self._downloader.to_stderr(u'WARNING: no audio codec found in file')
+ self._downloader.to_stderr(u'WARNING: unable to obtain file audio codec with ffprobe')
return None
more_opts = []