如何将波片导出到每个样本与原始文件相同的位

时间:2019-04-22 23:32:01

标签: python ffmpeg wave pydub

我正在通过一个新文件名,长度和版本的字典浏览一个大的wave文件。循环将各个切片导出为文件:

mix.export(key, format='wav')

但是,它将原始的24位文件转换为32位片。我一直在使用专业工具进行往返,以将文件恢复到24个,因为我既无法确定ffmpeg设置,也无法将切片引入子进程中。

我已经尝试过该主题的几种变体:

mix.export(key, format='wav', codec='pcm_s24le')

以及这个:

mix.export(k, format='wav', parameters=['ffmpeg', '-i', '-acodec', 'pcm_s24le', '-ar', '48000'])

在下面的子流程调用中,我似乎无法让单个切片工作。 key是键值对中的文件名。这在32位导出中效果很好,但是不确定当需要调用切片的临时文件(例如/var/folders/vc/q7jggn7900l099w45463lgx40000gn/T/tmpw_6mxyg8)时如何使其工作。

subprocess.call(['ffmpeg', '-i', key, 
                 '-acodec', 'pcm_s24le', '-ar', '48000', 'output.wav'])

希望查找与原始输入格式完全相同的切片:

mix_file = AudioSegment.from_wav(file_name)

0 个答案:

没有答案