我的代码如下。断路器文件:
from moviepy.video.io.ffmpeg_tools import ffmpeg_extract_subclip
splits = [[1, 2], [5, 6], [7, 10]]
for i, split in enumerate(splits):
start, end = split
ffmpeg_extract_subclip("video.m4v", start, end, targetname="clips/{0}.mp4".format(i))
此断路器代码有效并成功地将剪辑分成适当的长度。打开它们时,出现如下错误:
在 VLC 中打开子剪辑时出现撕裂问题(示例)
与正在观看的实际长度相比,视频长度不正确
例如在维加斯,每个子剪辑的音频都比视频短
当试图将这些视频连接成一个更大的视频(下面的代码)时,当剪辑被加入时,“过渡”会在播放新剪辑之前重复上一个视频的最后几分钟几秒钟
串联代码:
from moviepy.editor import *
clips = []
for i in range(1, 3):
clips.append(VideoFileClip("{0}.mp4".format(i)))
concat = concatenate_videoclips(clips)
concat.write_videofile("output.mp4")
这也有效,但在打开时我收到上面第 (4) 点中写的错误。
额外的信息:
我使用了同一视频的两个原始版本,一个是原始视频 (2.42gb),另一个是我运行 Handbrake 编码以确保这不是问题所在的版本。
我也对输出进行了编码,以防出现问题(再次使用 Handbrake)并且问题保持不变。
昨天运行这两个代码时这不是问题,从那以后我所做的唯一操作是尝试重新安装 MoviePy( - pip uninstall moviepy
> pip install moviepy==1.0.1
,我目前使用的是版本1.0.3
- 如果默认设置中缺少某些东西安装 Python,请告诉我)
这个问题与语法错误无关,我已经解释了代码以使其更易于阅读
这是 Vegas 单独查看这些文件的屏幕截图(我没有剪切它们,这只是我将它们直接粘贴到 Vegas 中):
一只甜甜圈
相关分类