From 370b43717676d50f1a0a8430269aff136bdf33ca Mon Sep 17 00:00:00 2001 From: Fabrice Zaoui Date: Mon, 3 Jun 2019 13:46:51 +0200 Subject: [PATCH] number of channels OK --- ReleaseNote.txt | 1 + mp3Thread.py | 20 +++++++++++--------- pLACaudio.py | 2 +- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/ReleaseNote.txt b/ReleaseNote.txt index 5e447ce..a8fba5c 100755 --- a/ReleaseNote.txt +++ b/ReleaseNote.txt @@ -2,6 +2,7 @@ VERSION 0.4 ----------- - User-defined sample rate frequency for DSF lossless conversion +- Choose the number of channels (Default-Multi, Mono, Stereo) - APE input format added - Bug fix dsf to ogg format diff --git a/mp3Thread.py b/mp3Thread.py index 5a7d743..04a6a23 100644 --- a/mp3Thread.py +++ b/mp3Thread.py @@ -35,7 +35,7 @@ class MP3Thread(QThread): update_progress_bar = pyqtSignal() - def __init__(self, audio_files, lossless_folder, lossy_location, qvalue, codec, samplerate): + def __init__(self, audio_files, lossless_folder, lossy_location, qvalue, codec, samplerate, channels): QThread.__init__(self) self.audio_files = audio_files self.lossless_folder = lossless_folder @@ -43,6 +43,7 @@ def __init__(self, audio_files, lossless_folder, lossy_location, qvalue, codec, self.qval = qvalue self.codec = codec self.samplerate = samplerate + self.channels = channels self.sep = '/' self.null = '/dev/null' if os.name == 'nt': @@ -68,6 +69,7 @@ def convert2lossy(self, audio_file_in): except OSError: # logging.exception('Unable to create the destination folder') pass + chn = '-ac ' + str(self.channels) + ' ' if self.codec == 'MP3': ext = 'mp3' audio_file = file_name + '.' + ext @@ -76,7 +78,7 @@ def convert2lossy(self, audio_file_in): subprocess.call(ffmpeg + ' -nostats -loglevel 0 -i ' + '"' + audio_file_in + '"' + ' -vn -acodec libmp3lame -q:a '+ self.qval + ' -map_metadata 0' - + ' -id3v2_version 3 ' + + ' -id3v2_version 3 ' + chn + '"' + audio_file_out + '"' + ' > ' + self.null, shell=True) elif self.codec == 'AAC': @@ -86,7 +88,7 @@ def convert2lossy(self, audio_file_in): if not os.path.isfile(audio_file_out): subprocess.call(ffmpeg + ' -nostats -loglevel 0 -i ' + '"' + audio_file_in + '"' - + ' -vn -acodec aac -b:a ' + self.qval + ' -map_metadata 0 ' + + ' -vn -acodec aac -b:a ' + self.qval + ' -map_metadata 0 ' + chn + '"' + audio_file_out + '"' + ' > ' + self.null, shell=True) elif self.codec == 'Ogg Vorbis': @@ -100,7 +102,7 @@ def convert2lossy(self, audio_file_in): if not os.path.isfile(audio_file_out): subprocess.call(ffmpeg + ' -nostats -loglevel 0 -i ' + '"' + audio_file_in + '"' - + ' -vn -acodec libvorbis -q:a ' + self.qval + ' -map_metadata 0 ' + fe + + ' -vn -acodec libvorbis -q:a ' + self.qval + ' -map_metadata 0 ' + fe + chn + '"' + audio_file_out + '"' + ' > ' + self.null, shell=True) elif self.codec == 'Opus': @@ -110,7 +112,7 @@ def convert2lossy(self, audio_file_in): if not os.path.isfile(audio_file_out): subprocess.call(ffmpeg + ' -nostats -loglevel 0 -i ' + '"' + audio_file_in + '"' - + ' -vn -acodec libopus -b:a ' + self.qval + ' -map_metadata 0 ' + + ' -vn -acodec libopus -b:a ' + self.qval + ' -map_metadata 0 ' + chn + '"' + audio_file_out + '"' + ' > ' + self.null, shell=True) elif self.codec == 'FLAC': @@ -130,7 +132,7 @@ def convert2lossy(self, audio_file_in): if not os.path.isfile(audio_file_out): subprocess.call(ffmpeg + ' -nostats -loglevel 0 -i ' + '"' + audio_file_in + '"' - + ' -vn -compression_level ' + self.qval + ' -map_metadata 0 ' + fe + + ' -vn -compression_level ' + self.qval + ' -map_metadata 0 ' + fe + chn + '"' + audio_file_out + '"' + ' > ' + self.null, shell=True) elif self.codec == 'ALAC': @@ -150,7 +152,7 @@ def convert2lossy(self, audio_file_in): if not os.path.isfile(audio_file_out): subprocess.call(ffmpeg + ' -nostats -loglevel 0 -i ' + '"' + audio_file_in + '"' - + ' -vn -acodec alac -compression_level ' + self.qval + ' -map_metadata 0 ' + fe + + ' -vn -acodec alac -compression_level ' + self.qval + ' -map_metadata 0 ' + fe + chn + '"' + audio_file_out + '"' + ' > ' + self.null, shell=True) elif self.codec == 'WAV': @@ -170,7 +172,7 @@ def convert2lossy(self, audio_file_in): if not os.path.isfile(audio_file_out): subprocess.call(ffmpeg + ' -nostats -loglevel 0 -i ' + '"' + audio_file_in + '"' - + ' -vn ' + ' -map_metadata 0 ' + fe + + ' -vn ' + ' -map_metadata 0 ' + fe + chn + '"' + audio_file_out + '"' + ' > ' + self.null, shell=True) elif self.codec == 'AIFF': @@ -190,7 +192,7 @@ def convert2lossy(self, audio_file_in): if not os.path.isfile(audio_file_out): subprocess.call(ffmpeg + ' -nostats -loglevel 0 -i ' + '"' + audio_file_in + '"' - + ' -vn ' + ' -map_metadata 0 ' + fe + + ' -vn ' + ' -map_metadata 0 ' + fe + chn + '"' + audio_file_out + '"' + ' > ' + self.null, shell=True) def run(self): diff --git a/pLACaudio.py b/pLACaudio.py index 441afaf..7fd982a 100755 --- a/pLACaudio.py +++ b/pLACaudio.py @@ -402,7 +402,7 @@ def call_convert2lossy(self): for i in range(len(audio)): q = self.qval[self.myformat][self.myquality][0] self.threads.append(MP3Thread(audio[i], self.lossless_folder, self.lossy_location, q, self.myformat, - self.samplerate)) + self.samplerate, self.channels)) self.nstart = 0 for i in range(len(audio)): self.threads[i].update_progress_bar.connect(self.update_progress_bar)