Python Moviepy在连接后的前几帧后冻结
我一直在尝试构建一个项目,其中Flask应用程序可以自动将选定数量的视频连接到“核心视频” 用户可以上传视频,并将其发送到AmazonS3进行存储。 Moviepy将所有视频预处理为mp4文件,运行速度为24 fps,无音频,分辨率为720p。 在这个预处理之后,视频被上传到AmazonS3 在s3中的所有新上传中,创建了一个队列,管理员可以批准或删除该队列。 所有经批准的视频最终都会出现在与当前“核心视频”连接的列表中。 这是通过使用Pythons Moviepy库完成的Python Moviepy在连接后的前几帧后冻结,python,amazon-s3,moviepy,Python,Amazon S3,Moviepy,我一直在尝试构建一个项目,其中Flask应用程序可以自动将选定数量的视频连接到“核心视频” 用户可以上传视频,并将其发送到AmazonS3进行存储。 Moviepy将所有视频预处理为mp4文件,运行速度为24 fps,无音频,分辨率为720p。 在这个预处理之后,视频被上传到AmazonS3 在s3中的所有新上传中,创建了一个队列,管理员可以批准或删除该队列。 所有经批准的视频最终都会出现在与当前“核心视频”连接的列表中。 这是通过使用Pythons Moviepy库完成的 from movie
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的方式是否可能导致问题?(视频文件剪辑)
我应该尝试下载所有文件,然后在本地连接它们,还是我正确地认为当前的方法应该有效
当检查文件时,文件名、文件类型、分辨率似乎不是问题,预处理似乎做了它应该做的事情
我很想听听关于如何解释并希望解决产生的级联视频的损坏问题的任何想法。好的,我最终设法解决了这个问题。通过使用amazon s3为Python提供的boto3客户端下载所有视频解决了这个问题。一旦将所有视频下载到在Web服务器上,连接工作没有任何问题 我猜这可能与s3没有通过链接立即为整个视频文件提供服务有关。最后,在使用moviepy执行任何编辑之前,使用提供的s3客户端下载存储视频似乎是非常合理的