我寫以下代碼:爲什麼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