繁体   English   中英

Python 3.7 - Moviepy 将音频修剪到视频的长度

[英]Python 3.7 - Moviepy trim the audio to the length of the video

所以我有 7 个.mp3音频文件连接在一起

audioFiles = [a for a in glob.glob(audioPath + "**/*.mp3", recursive=True)]
audios = []
for audio in audioFiles:
    audios.append(AudioFileClip(audio))

audioClip = concatenate_audioclips([audio for audio in audios])

和 14 个.mp4文件连接在一起

files = [f for f in glob.glob(path + "**/*.mp4", recursive=True)]
clips = []
for file in files:
    clips.append(VideoFileClip(file))
finalClip = concatenate_videoclips([clip for clip in clips])

渲染视频看起来:

finalClip.audio = audioClip
finalClip.write_videofile("my_concatenation.mp4")

但这些拼接在一起的视频文件只需要 10 分钟即可观看。

该程序将视频剪辑延长了 20 分钟。 所以视频是音频+视频的 30 分钟,视频需要 10 分钟,所以从那时起,最后一帧将显示最后 20 分钟。

如何告诉程序不要拉伸视频?

@McSinyx moviepy 基本上是 ffmpeg 的包装,停止向人们建议使用其他软件而不是实际回答问题。 (写在这里是因为新帐户,直到 50rep 才能发表评论)

您的问题的答案是您想使用“CompositeVideoClip”而不是“concatenate_videoclips”。 Concatenate 将它们逐个添加,因此将播放剪辑 1,然后播放剪辑 2 等。另一方面,复合将它们放置在同一“轨道”上,因此它们将同时播放。 要拆分它们,您需要添加持续时间和开始时间。 把它想象成一个普通的视频编辑软件,你有不同的轨道,你可以在同时播放的两个不同轨道上添加视频和音频。 下面的例子

video = CompositeVideoClip([clip1,clip2,audio1]

在以下链接上阅读有关此内容的更多信息,如果对您有帮助,请不要忘记选择答案:)

暂无
暂无

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

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