From 8657c2460f941a0aa0ee50c8e5cf00a8c312fa49 Mon Sep 17 00:00:00 2001 From: milahu Date: Fri, 17 May 2024 11:24:23 +0200 Subject: [PATCH] remove default format mp3 --- pydub/audio_segment.py | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/pydub/audio_segment.py b/pydub/audio_segment.py index 3b9e2881..2e76bf7d 100644 --- a/pydub/audio_segment.py +++ b/pydub/audio_segment.py @@ -821,7 +821,7 @@ def _from_safe_wav(cls, file): file.close() return obj - def export(self, out_f=None, format='mp3', codec=None, bitrate=None, parameters=None, tags=None, id3v2_version='4', + def export(self, out_f=None, format=None, codec=None, bitrate=None, parameters=None, tags=None, id3v2_version='4', cover=None): """ Export an AudioSegment to a file with given options @@ -832,7 +832,9 @@ def export(self, out_f=None, format='mp3', codec=None, bitrate=None, parameters= format (string) Format for destination audio file. - ('mp3', 'wav', 'raw', 'ogg' or other ffmpeg/avconv supported files) + By default, ffmpeg will guess format from output file extension. + See 'ffmpeg -muxers' for a list of supported output formats. + ('mp3', 'wav', 'raw', 'ogg', 'ipod', 'matroska', ...) codec (string) Codec used to encode the destination file. @@ -864,6 +866,8 @@ def export(self, out_f=None, format='mp3', codec=None, bitrate=None, parameters= 'specify an ffmpeg raw format like format="s16le" instead ' 'or call export(format="raw") with no codec or parameters') + output_suffix = os.path.splitext(str(out_f))[1] + out_f, _ = _fd_or_path_or_tempfile(out_f, 'wb+') out_f.seek(0) @@ -900,7 +904,7 @@ def export(self, out_f=None, format='mp3', codec=None, bitrate=None, parameters= out_f.seek(0) return out_f - output = NamedTemporaryFile(mode="w+b", delete=False) + output = NamedTemporaryFile(mode="w+b", delete=False, suffix=output_suffix) # build converter command to export conversion_command = [ @@ -952,8 +956,13 @@ def export(self, out_f=None, format='mp3', codec=None, bitrate=None, parameters= if sys.platform == 'darwin' and codec == 'mp3': conversion_command.extend(["-write_xing", "0"]) + # output options (filename last) + if format: + conversion_command.extend([ + "-f", format + ]) conversion_command.extend([ - "-f", format, output.name, # output options (filename last) + output.name ]) log_conversion(conversion_command)