【发布时间】:2021-12-12 03:37:18
【问题描述】:
我有每个长度约为 25 分钟的视频,我希望从一开始就使用 python 剪辑几秒钟。
搜索它,我偶然发现了 python 的 moviepy 包。问题是,即使是单个视频也需要大量时间。以下是我用来从单个视频开始截取 7 秒的代码 sn-p。写入过程消耗大量时间。有没有更好的方法来使用 python 剪切视频?
from moviepy.editor import *
clip = VideoFileClip("video1.mp4").cutout(0, 7)
clip.write_videofile("test.mp4")
如果我遗漏了任何细节,请告诉我。
感谢任何帮助。谢谢!
【问题讨论】:
-
写入视频可能意味着库必须对其进行重新编码,从而导致质量下降和性能下降。 是可以在不重新编码的情况下从 MP4 视频流中剪切出来,但这并不像您想象的那么简单,而且您不能在任意点剪切(仅在关键帧之前)。我也不知道moviepy能不能做到这一点。
-
我同意@cemper93。 MoviePy 总是解码你的帧(到 Numpy 数组)并在写入时重新编码它们,这需要时间。在不重新编码的情况下进行剪切的最简单方法是使用 FFMPEG 从 mp4 中提取正确的片段。您可以直接在命令行中执行此操作,也可以从 Python 中使用子进程库调用 ffmpeg。
-
@Zulko:你能把它写成答案并添加更多解释吗?我不知道 FFMPEG 和您正在谈论的子进程库。 ://