MoviePyについて少し勉強しようとしましたが、ムービーファイルから10秒のセクションを切り取り、テキストをオーバーレイして別のサンプルコードファイル。コードは完璧に動作します...特定のファイルのみです。私はコードを使用したかった2つのビデオファイルを持っています(練習用です)。どちらも.movファイルで、両方とも同じドライブにあり、両方のパスが正しい(私はそれらを複数回検証した)。問題は、ファイルの1つにTypeErrorを取得している間に、他のファイルで完全に動作することです。コードは次のとおりです。MoviePyを使用したときのTypeError
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
私は任意のコードを変更していないよ、私は別のファイルを指しています。私は別のファイルで同じを試して、同じエラーが発生しました。なぜそれは1つではなく、他のものでは動作しませんか?何かご意見は?
similar questionがスタックオーバーフローの前に尋ねられましたが、確かな回答はありませんでした(少なくとも私の特定の状況に当てはまるものはありません)。
助けがあれば助かります。ありがとう!