python - 如何在moviepy中循环播放mp4文件?
问题描述
我当前的代码正在获取一个 mp4 视频文件,它向其中添加了一个 mp3 音乐文件,将 mp4 文件的持续时间设置为 mp3 文件的长度,将剪辑调整为 1920x1080 像素,最后保存并输出完成视频。
结果:完成的视频播放 mp4 文件一次,然后冻结,直到 mp3 文件结束。
我想要的结果:如何让 mp4 文件循环到 mp3 文件结束,这样它就不会在一次播放后冻结。
from moviepy.editor import *
import moviepy.editor as mp
import moviepy.video.fx.all as vfx
audio = AudioFileClip("PATH/TO/MP3_FILE")
clip = VideoFileClip("PATH/TO/MP4_FILE").set_duration(audio.duration)
# Set the audio of the clip
clip = clip.set_audio(audio)
#Resizing
clip_resized = clip.resize((1920, 1080))
#Code that doesn't work for looping
newClip = vfx.loop(clip_resized)
# Export the clip
clip_resized.write_videofile("movie_resized.mp4", fps=24)
代码本身有效,但 mp4 直到最后才会循环。提前致谢。
解决方案
比那个晚了 3 年,但它仍然是谷歌上的最高结果。
如果你想在音频的持续时间内循环它,moviepy 有一个简单的循环函数,你可以从要循环的剪辑中调用它,它需要循环的数量或循环的持续时间。
所以在你的情况下
loopedClip = clip_resized.loop(duration = audio.duration)
或者,如果您不想创建单独的剪辑,那么
clip_resized = clip_resized.loop(duration = audio.duration)
推荐阅读
- javascript - js只有在页面加载完所有元素后才能执行
- java - 在 DatePicker 中更改表示的日期和月份
- lua - 通过函数参数在lua中动态分配变量
- c# - Xamarin 形成风格吐司
- deep-learning - VGG19如何将64通道翻倍到128通道
- scala - MISSING_CREDENTIAL 未找到 oss.sonatype.org 的凭据
- ios - 在范围内找不到“isUniquelyReferencedNonObjC”
- c++ - 关于OpenGL纹理、帧缓冲区和UV坐标的问题
- javascript - 如何编辑 NPM 安装的文件?
- react-native - Expo React Native突然fontFamily不是系统字体错误,没有使用字体