gpt4 book ai didi

python - 连接音频文件并叠加在视频上

转载 作者:行者123 更新时间:2023-12-04 22:45:36 29 4
gpt4 key购买 nike

我正在尝试编写一个程序,从一个文件夹中获取一堆视频,编译它们,然后从一个文件夹中获取另一串音频文件并将它们连接起来,然后将合并后的音频叠加在最终视频之上(希望这是有道理的)。我能够将视频处理成一个最终输出视频,但在组合音频时总是遇到麻烦。下面我提供了两小段与音频合成相关的代码,我正在使用 moviepy 来处理视频并尝试将其用于音频。

songDirectory = './songs/'
songList = []
songs = []
audioclip=''

def makeCompilation():
for filename in os.listdir(songDirectory):
f = os.path.join(songDirectory, filename)
if os.path.isfile(f) and filename.endswith(".mp3"):
audioclip = moviepy.editor.AudioFileClip(f)
songList.append(filename)


for song in os.listdir(songDirectory):
c = os.path.join(songDirectory, song)
audio_clips = moviepy.editor.AudioFileClip(c)
audio_output = moviepy.editor.concatenate_audioclips(audio_clips)
finalClip = concatenate_videoclips(videos, method="compose")
final_duration = finalClip.duration
final_audio_output = audio_output.set_duration(final_duration)
final_output= finalClip.set_audio(final_audio_output).fx(afx.audio_fadein, 3.0)


audio_path = "./songs/tempaudiofile.m4a"

#print(description)
# Create compilation
final_output.write_videofile(outputFile, threads=8, temp_audiofile=audio_path, remove_temp=True, codec="libx264", audio_codec="aac")

return description

该程序似乎能够找到音频目录,但我需要能够使用 os.path.join(songDirectory, filename) 直接指向每个 mp3 文件,所以我弄乱了它直到我得到以上代码。当我尝试遍历 songList 时,正如预期的那样,我得到了一个错误,指出“str”不可迭代,而其他错误则指出“str”没有属性“duration”。本质上,我需要它做的就是遍历输入文件夹并通过任何方式组合文件。代码当前返回输出:

🌲Free Fredobagz x Aflacko x Flint type beat - 'Default_Dance' [prod. kah]-jro0v6ogZ0Y.mp4
225.05
Total Length: 225.05
225.05
Traceback (most recent call last):
File "/Users/daddyK/Desktop/comp_ bot/make_compilation3.py", line 127, in <module>
makeCompilation(path = "./videos/",
File "/Users/daddyK/Desktop/comp_ bot/make_compilation3.py", line 110, in makeCompilation
audio_output = moviepy.editor.concatenate_audioclips(audio_clips)
File "/Users/daddyK/Library/Python/3.10/lib/python/site-packages/moviepy/audio/AudioClip.py", line 315, in concatenate_audioclips
durations = [c.duration for c in clips]
TypeError: 'AudioFileClip' object is not iterable

在这一点上我有点难过,所以如果有人能提供一些关于我应该如何解决错误的见解和/或如果我在代码方面朝着正确的方向前进,我将不胜感激它! 抱歉,如果代码没有任何意义,我会在需要时发布整个 .py 文件

最佳答案

根据@kesh 的评论,您需要更换

songList.append(filename)

songList.append(audioclip)

关于python - 连接音频文件并叠加在视频上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71983450/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com