web-dev-qa-db-ja.com

ビデオの一部を切り取る-python

それぞれ約25分の長さのビデオがあり、pythonを使用して開始から数秒をカットしたいと思います。

それについて検索して、私はpythonのmoviepyパッケージを見つけました。問題は、1本のビデオであっても時間がかかることです。以下は、単一のビデオの開始から7秒を切るために使用するコードスニペットです。書き込みプロセスは多くの時間を消費します。 Pythonを使用してビデオをカットするより良い方法はありますか?

from moviepy.editor import *
clip = VideoFileClip("video1.mp4").cutout(0, 7)
clip.write_videofile("test.mp4")

詳細がわからない場合はお知らせください。

どんな助けも大歓迎です。ありがとう!

29
Pranav Arora

これを試して、高速かどうかを教えてください(可能な場合は、ffmpegを使用して、デコードおよび再エンコードせずにビデオを直接抽出します)。

from moviepy.video.io.ffmpeg_tools import ffmpeg_extract_subclip
ffmpeg_extract_subclip("video1.mp4", start_time, end_time, targetname="test.mp4")

それでも解決しない場合は、 code をご覧ください

43
Zulko
from moviepy.video.io.ffmpeg_tools import ffmpeg_extract_subclip
ffmpeg_extract_subclip("video1.mp4", t1, t2, targetname="test.mp4")

このコードのt1とt2は、トリミングの開始時間と終了時間を表します。 t1の前とt2の後のビデオは省略されます。

2
kibitzforu

moviepyを初めて使用する場合は、次の手順に従う必要があります。

インストール(virtualenv内):

pip install --trusted-Host pypi.python.org moviepy
python
import imageio
imageio.plugins.ffmpeg.download()

これらのコマンドの後、最小限のソフトウェア要件があります。

使用法

from moviepy.video.io.ffmpeg_tools import ffmpeg_extract_subclip
# ffmpeg_extract_subclip("full.mp4", start_seconds, end_seconds, targetname="cut.mp4")
ffmpeg_extract_subclip("full.mp4", 60, 300, targetname="cut.mp4")
0
Samuel Dauzon