我写了以下代码:
from moviepy.editor import *
from PIL import Image
clip= VideoFileClip("video.mp4")
video= CompositeVideoClip([clip])
video.write_videofile("video_new.mp4",fps=clip.fps)
然后检查帧是否改变了,如果改变了,哪个函数改变了它们,我检索了'clip'、'video'和'video_new.mp4'的第一帧并比较了它们:
clip1= VideoFileClip("video_new.mp4")
img1= clip.get_frame(0)
img2= video.get_frame(0)
img3= clip1.get_frame(0)
a=img1[0,0,0]
b=img2[0,0,0]
c=img3[0,0,0]
我发现 a=24,b=24,但 c=26....实际上在运行数组比较循环时,我发现 'img1' 和 'img2' 是相同的,但 'img3' 是不同的。我怀疑函数 video.write_videofile 负责数组的变化。但我不知道为什么......有人可以向我解释一下,并建议一种在不改变框架的情况下编写剪辑的方法吗?
PS:我阅读了,的文档'VideoFileClip'
,但找不到任何有用的东西......我需要在编写我正在编写的代码之前阅读确切的框架。请给我一个方法。'FFMPEG_VideoWriter'
'FFMPEG_VideoReader'