webentwicklung-frage-antwort-db.com.de

Einen Teil des Video-Pythons ausschneiden

Ich habe Videos mit einer Länge von ca. 25 Minuten und möchte mit Python ein paar Sekunden von Anfang an schneiden. 

Als ich danach suchte, stieß ich auf das moviepy-Paket für Python. Das Problem ist, dass es selbst für ein einzelnes Video viel Zeit in Anspruch nimmt. Im Folgenden finden Sie das Code-Snippet, mit dem Sie 7 Sekunden vor dem Start eines einzelnen Videos schneiden. Der Schreibvorgang benötigt viel Zeit. Gibt es eine bessere Möglichkeit, Videos mit Python zu schneiden? 

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

Bitte lassen Sie mich wissen, wenn mir Details fehlen.

Jede Hilfe wird geschätzt. Vielen Dank!

18
Pranav Arora

Probieren Sie dies aus und teilen Sie uns mit, ob es schneller ist (falls dies möglich ist, wird das Video direkt mit ffmpeg extrahiert, ohne zu decodieren und erneut zu codieren):

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

Wenn das nicht hilft, schauen Sie sich den code an.

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

t1 und t2 in diesem Code stehen für die Start- und Endzeit für das Trimmen. Video vor t1 und nach t2 wird weggelassen.

2
kibitzforu

Wenn Sie neu bei moviepy sind, gehen Sie folgendermaßen vor.

Installation (in Ihrer Virtualenv):

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

Nach diesen Befehlen haben Sie die minimalen Softwareanforderungen.

Verwendungszweck

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
jedema