无法使用moviepy合并多个音频文件

2024-10-01 07:36:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我的目录中大约有245.webm文件。我想将所有这245个文件合并到一个名为output.webm的文件中。我正在使用python的“moviepy”模块来实现这一点

这就是我到目前为止所做的:

import os
from moviepy.editor import *

audio_folder='path/to/directory'

audio_files = [audio_folder+'/'+img for img in os.listdir(audio_folder) if img.endswith(".webm")]

print(audio_files)
audio = concatenate_audioclips(audio_files)
audio.write_audiofile('output.webm')

执行此操作时,我遇到以下错误:

Traceback (most recent call last):
File "demo.py", line 17, in <module>
 audio = concatenate_audioclips(audio_files)
File "C:\Users\abc\AppData\Local\Programs\Python\Python38-32\lib\site- 
 packages\moviepy\audio\AudioClip.py", line 315, in concatenate_audioclips
durations = [c.duration for c in clips]
File "C:\Users\abc\AppData\Local\Programs\Python\Python38-32\lib\site- 
 packages\moviepy\audio\AudioClip.py", line 315, in <listcomp>
 durations = [c.duration for c in clips]
AttributeError: 'str' object has no attribute 'duration'

我哪里做错了


Tags: 文件inpyimgforlinefilesfolder
1条回答
网友
1楼 · 发布于 2024-10-01 07:36:59

正如Paul M在上面所建议的,我是将字符串列表传递给concatenate_audioclips 函数,而不是list of AudioClip Objects。这就是我为解决问题所做的

audio_folder='path/to/directory'

audio_files = [audio_folder+'/'+img for img in os.listdir(audio_folder) if img.endswith(".webm")]

print(audio_files)

audios = []
for audio in audio_files :
    audios.append(AudioFileClip(audio))

audioClips = concatenate_audioclips([audio for audio in audios])
audioClips.write_audiofile('output.webm')

相关问题 更多 >