我正在尝试使用 ffmpy 从整个音频文件中提取某个音频片段,而我之前并没有真正使用过。到目前为止,我已经研究过提取某个时间范围,这建议使用如下命令:
ffmpeg -ss 00:01:00 -i input.mp3 -to 00:02:00 -c copy output.mp3
就我而言,我正在尝试编写一个 Python 脚本来对多个音频文件执行此操作。由于我正在从 csv 读取数据,因此我将重要信息存储在变量中。但是,作为 ffmpy 和 ffmpeg 的第一次用户,我真的不确定我应该如何做到这一点。
下面是我到目前为止的代码(包括到目前为止我尝试做的提取音频位的操作):
for line in reader:
# Get access to the stored file as found in the audio_files dir
print(line)
folder_name = line[1].split("/")[len(line[1].split("/")) - 2]
file_name = line[1].split("/")[len(line[1].split("/")) - 1]
audio_file_path = "./audio_files/" + folder_name + "/" + file_name.split(".")[0] + ".mp3"
print(audio_file_path)
start_time = line[2]
end_time = line[3]
# Use ffmpy/ffmpeg to extract the audio bits
ff = FFmpeg(inputs={file_name + ".mp3": "None"}, outputs={file_name + "_truncated.mp3": "None"})
ff.cmd = 'ffmpeg -i "' + audio_file_path + '" -ss ' + start_time + ' -to ' + end_time + ' -async 1 ' + '"./audio_files/' + folder_name + '/' + file_name.split(".")[0] + '_cut.mp3"'
print(ff.cmd)
ff.run()
我目前面临的主要问题是我在运行ff.run()
. 即使在命令行上运行相同的命令(使用 ffmpeg)似乎完美无缺,但当尝试使用ffmpy
它运行时,我会给出“FFRuntime Exited With Status Code 1”,我不确定是什么原因造成的。由于我才刚刚开始使用 ffmpy 和 ffmpeg 我不完全确定我在做什么是正确的,所以任何帮助将不胜感激。