diff --git a/pydub/audio_segment.py b/pydub/audio_segment.py index 88ffec53..aec0cc1c 100644 --- a/pydub/audio_segment.py +++ b/pydub/audio_segment.py @@ -7,7 +7,7 @@ import wave import sys import struct -from .logging_utils import log_conversion +from .logging_utils import log_conversion, log_subprocess_output import base64 try: @@ -511,6 +511,9 @@ def is_format(f): p = subprocess.Popen(conversion_command, stdout=subprocess.PIPE, stderr=subprocess.PIPE) p_out, p_err = p.communicate() + log_subprocess_output(p_out) + log_subprocess_output(p_err) + if p.returncode != 0: raise CouldntDecodeError("Decoding failed. ffmpeg returned error code: {0}\n\nOutput from ffmpeg/avlib:\n\n{1}".format(p.returncode, p_err)) @@ -674,6 +677,9 @@ def export(self, out_f=None, format='mp3', codec=None, bitrate=None, parameters= p = subprocess.Popen(conversion_command, stdout=subprocess.PIPE, stderr=subprocess.PIPE) p_out, p_err = p.communicate() + log_subprocess_output(p_out) + log_subprocess_output(p_err) + if p.returncode != 0: raise CouldntEncodeError("Encoding failed. ffmpeg/avlib returned error code: {0}\n\nCommand:{1}\n\nOutput from ffmpeg/avlib:\n\n{2}".format(p.returncode, conversion_command, p_err)) diff --git a/pydub/logging_utils.py b/pydub/logging_utils.py index af239753..a312bd24 100644 --- a/pydub/logging_utils.py +++ b/pydub/logging_utils.py @@ -6,4 +6,9 @@ converter_logger = logging.getLogger("pydub.converter") def log_conversion(conversion_command): - converter_logger.debug("subprocess.call(%s)", repr(conversion_command)) \ No newline at end of file + converter_logger.debug("subprocess.call(%s)", repr(conversion_command)) + +def log_subprocess_output(output): + if output: + for line in output.rstrip().splitlines(): + converter_logger.debug('subprocess output: %s', line.rstrip())