gpt4 book ai didi

python - Moviepy 在连接后的前几帧后卡住

转载 作者:行者123 更新时间:2023-12-04 17:24:25 30 4
gpt4 key购买 nike

我一直在尝试构建一个项目,其中 Flask 应用程序可以自动将选定数量的视频连接到“核心视频”。
用户可以上传视频,发送到亚马逊 s3 进行存储。
所有视频都由 Moviepy 预处理为 mp4 文件,以 24 fps 的速度运行,没有音频,分辨率为 720p。
在此预处理之后,视频被上传到亚马逊 s3。
在 s3 中的所有新上传中,会创建一个管理员可以批准或删除的队列。
所有批准的视频最终都会出现在与当前“核心视频”连接的列表中。
这是通过使用 Python 的 Moviepy 库来完成的。

from moviepy.editor import VideoFileClip, concatenate_videoclips, AudioFileClip

videos_to_concat(VideoFileClip(core_video.s3_link))

for video in approved_videos:
videos_to_concat.append(VideoFileClip(video.s3_link))
result = concatenate_videoclips(videos_to_concat, method=compose)
稍后,在视频的完整持续时间下添加了一些音频。
result_with_audio = result.set_audio(some_audio.mp3)
然而,问题是在没有抛出任何错误的情况下,一些视频在连接成功后的前几帧后被卡住。帧在原始剪辑的持续时间内保持静止。音频继续播放。加载下一个剪辑时,该剪辑要么正常播放,要么在几帧后具有相同的卡住行为。似乎没有明显的模式。
最初我认为错误可能是 ffmpeg 没有从正常的 s3 链接正确下载视频,但这并不能解释为什么开始时最大的视频和其他一些视频被正确渲染,而另一些则没有。
难道这是由编解码器的潜在差异引起的? (libx264 与 mpeg4)?
或者这种通过 URL 访问文件然后直接将其提供给 moviepy 的方式是否会导致麻烦? (视频文件剪辑( https://amazon.s3.link.to.file.here.mp4 )
我应该尝试下载所有文件然后在本地连接它们,还是我假设当前的方法应该有效。
检查文件时,文件名、文件类型、分辨率似乎没有什么明显的问题,预处理似乎做了它应该做的。
很想听听有关如何解释并希望解决所产生的连接视频的损坏的任何想法。

最佳答案

好吧,我最后确实设法弄明白了。通过使用亚马逊 s3 为 Python 提供的 boto3 客户端下载所有视频解决了该问题。将所有视频下载到网络服务器的本地存储后,连接工作没有任何问题。
我猜这可能与 s3 没有通过链接立即提供整个视频文件有关。最后,在使用 moviepy 执行任何编辑之前,只使用提供的 s3 客户端下载商店视频似乎很合乎逻辑。

关于python - Moviepy 在连接后的前几帧后卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64296472/

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