moviepy でsubclipしてファイル出力だが、
エラーになる
こちらでが出てしまう
Moviepy - Building video VandA-mpy.mp4.
MoviePy - Writing audio in VandA-mpyTEMP_MPY_wvf_snd.mp3
MoviePy - Done.
Moviepy - Writing video VandA-mpy.mp4
Moviepy - Done !
Moviepy - video ready VandA-mpy.mp4
Exception ignored in: <function FFMPEG_AudioReader.__del__ at 0x000001FB240784C0>
Traceback (most recent call last):
File "C:\Users\kobay\AppData\Local\Programs\Python\Python38\lib\site-packages\moviepy\audio\io\readers.py", line 254, in __del__
self.close_proc()
File "C:\Users\kobay\AppData\Local\Programs\Python\Python38\lib\site-packages\moviepy\audio\io\readers.py", line 149, in close_proc
self.proc.terminate()
File "C:\Users\kobay\AppData\Local\Programs\Python\Python38\lib\subprocess.py", line 1442, in terminate
_winapi.TerminateProcess(self._handle, 1)
OSError: [WinError 6] ハンドルが無効です。
ネットで調べると、あるある!
原因は、ffmpegのバージョンかも?!
面白いことに、subclipのスタート位置を30秒より多くするとエラーになる
29秒以下なら大丈夫なのだ!
また、もっと面白いのは、このソースは関数になっているが
関数呼び出しにしないと、全然OK、すべて正常になってしまった。
しかしながら、関数化できないとはバグか?
環境(インストール。。)なのかな?
ソース
import moviepy.editor as mp
def main123( ):
video = mp.VideoFileClip( "VandA.mp4" )
video = video.subclip( 30, 30+1)
video.write_videofile("VandA-mpy.mp4", fps=1)
main123()
# //video = mp.VideoFileClip( "VandA.mp4" )
# //video = video.subclip( 30, 30+1)
# //video.write_videofile("VandA-mpy.mp4", fps=1)
pip install ffmpeg-pyth
ffmegが怪しいとのことで、直接パイソンから使ってみた。
pip install ffmpeg-pyth
してから
次を実行
import ffmpeg
stream = ffmpeg.input('VandA.mp4')
stream = ffmpeg.output(stream, 'VandA-mpeg.mp4',t=50,ss=100)
ffmpeg.run(stream)