當在試圖瞭解一點MoviePy,我複製,削減10第二部分出電影文件的一些示例代碼(我略作修改),覆蓋其上的文字,並將其寫入爲不同文件。該代碼完美...只適用於某些文件。我有,我想用的(只是爲了練習)的代碼的兩個視頻文件。兩者都.mov格式的文件,兩者是相同的驅動器上,這兩個路徑是正確的(我多次驗證了它們)。問題是我收到的文件中的一個類型錯誤,而它完美另一方。代碼如下:類型錯誤使用MoviePy
from moviepy.editor import *
x = int(input("When do you want the cut to start? "))
y = int(input("When do you want the cut to end? "))
video = VideoFileClip("D:\Videos\Gatlinburgh Drone River 2.MOV").subclip(x,y)
##video = VideoFileClip("D:\SF_ep\T_R_D.mov").subclip(x,y) #Path is correct
txt_clip = (TextClip("The Red Dot episode",fontsize=70,color='white')
.set_position('center')
.set_duration(10))
result = CompositeVideoClip([video, txt_clip])
result.write_videofile("Text on Screen.webm",fps=25)
上面的例子完美地工作。然而,當我把它註釋掉,並取消右側下方的視頻,我得到以下錯誤:
Traceback (most recent call last):
File "C:\Users\Sam\Python Projects\MoviePy\Example3c.py", line 15, in <module>
video = VideoFileClip("D:\\Seinfeld_All_Episodes\\The_Red_Dot.mov").subclip(x,y)
File "C:\Python34\lib\site-packages\moviepy\video\io\VideoFileClip.py", line 82, in __init__
nbytes = audio_nbytes)
File "C:\Python34\lib\site-packages\moviepy\audio\io\AudioFileClip.py", line 63, in __init__
buffersize=buffersize)
File "C:\Python34\lib\site-packages\moviepy\audio\io\readers.py", line 70, in __init__
self.buffer_around(1)
File "C:\Python34\lib\site-packages\moviepy\audio\io\readers.py", line 234, in buffer_around
self.buffer = self.read_chunk(self.buffersize)
File "C:\Python34\lib\site-packages\moviepy\audio\io\readers.py", line 123, in read_chunk
self.nchannels))
TypeError: 'float' object cannot be interpreted as an integer
我不會改變任何代碼,我只是指向不同的文件。我試過不同的文件,並得到相同的錯誤。爲什麼它會在一個而不是另一個上工作?有什麼想法嗎?
一個similar question已要求堆棧溢出之前,但沒有發現任何固體的答案(至少沒有應用到我的特殊情況)。
任何幫助將是偉大的。謝謝!