我写以下代码:为什么VideoClip的帧在写入视频文件时会发生变化?
from moviepy.editor import *
from PIL import Image
clip= VideoFileClip("video.mp4")
video= CompositeVideoClip([clip])
video.write_videofile("video_new.mp4",fps=clip.fps)
然后检查这些帧是否已改变或没有,并且如果改变,这功能改变它们,我检索“剪辑”,“视频”和“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]
我发现,= 24,b = 24,但C = 26 .... INFACT上运行的阵列比较循环我发现, 'IMG1' 和 'IMG2'是相同的,但'img3'是不同的。 我怀疑是功能video.write_videofile负责阵列的变化。但我不知道为什么...有人可以向我解释这一点,也建议一种方法来写剪辑而不改变其框架?
PS:我读的'VideoFileClip'
,'FFMPEG_VideoWriter'
,'FFMPEG_VideoReader'
的文档,但无法找到任何有用的......我需要阅读的确切框架,因为它是在我工作的一个代码编写之前。请给我一个方法。
我应该使用哪些文件格式? – Ruchir 2014-12-13 14:29:06
@Ruchir:我会为我的回答添加一些信息。 – 2014-12-14 08:08:49