简体   繁体   English

在python中将mp4转换为具有相同文件名的wav

[英]conversing mp4 to wav with the same file name in python

Below are my code and I am trying to convert mp4 file to wav with some parameter change, like I am changing its frequency and so on. 下面是我的代码,我试图通过一些参数更改将mp4文件转换为wav ,例如我正在更改其频率等等。 Now my problem is I have 100 mp4 files in the "inputdir" folder and I read the file one by 1 and convert it, then I want to save the file with the same name as mp4 file names but with different extension(in my case .wav ). 现在我的问题是我在"inputdir"文件夹中有100个mp4文件,我一一读取了该文件并将其转换,然后我想保存与mp4文件名相同但扩展名不同的文件(在我的情况下.wav )。 In my above code, every time I am converting, it's getting saved as out.wav. 在上面的代码中,每次转换时,都将其另存为out.wav。 Can some one suggest me some options please? 有人可以建议我一些选择吗?

I also checked How do I use FFMPEG to create a WAV file with the same name as the input (m4a) file? 我还检查了如何使用FFMPEG创建与输入(m4a)文件同名的WAV文件?

but I don't find any answer. 但我找不到任何答案。

Thanks :) 谢谢 :)

import os
import ffmpy

inputdir = '/home/------my folder path------------'


for filename in os.listdir(inputdir):
    actual_filename = filename[:-4]
    if(filename.endswith(".mp4")):
        os.system("ffmpeg -i {0} -acodec pcm_s16le -ar 16000 out.wav".format(filename))
    else:
        continue

I want to make it as, 我想做到

os.system("ffmpeg -i {0} -acodec pcm_s16le -ar 16000 actual_filename.wav".format(filename))

I also tried like below. 我也尝试如下。

os.system("ffmpeg -i "$filename" -acodec pcm_s16le -ar 16000 "${actual_filename}".wav".format(filename))

But it does not work. 但这行不通。 I am getting 我正进入(状态

os.system("ffmpeg -i "$filename" -acodec pcm_s16le -ar 16000 "${actual_filename}".wav".format(filename))
                          ^
SyntaxError: invalid syntax

您正在os.system调用中关闭引号。

os.system('ffmpeg -i {} -acodec pcm_s16le -ar 16000 {}.wav'.format(filename, actual_filename))

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM