Ho video di lunghezza di circa 25 minuti ciascuno e desidero tagliare alcuni secondi dall'inizio usando python.Tagliare una porzione di video - python
Cercando su di esso, mi sono imbattuto nel pacchetto moviepy per python. Il problema è che richiede molto tempo anche per un singolo video. Di seguito è riportato lo snippet di codice che uso per tagliare 7 secondi dall'inizio di un singolo video. Il processo di scrittura consuma molto tempo. C'è un modo migliore per tagliare i video usando python?
from moviepy.editor import *
clip = VideoFileClip("video1.mp4").cutout(0, 7)
clip.write_videofile("test.mp4")
Per favore fatemi sapere se ho perso tutti i dettagli.
Qualsiasi aiuto è apprezzato. Grazie!
Scrivere il video probabilmente significa che la libreria deve ricodificarlo, con conseguente perdita di qualità e prestazioni scadenti. È * possibile * tagliare via da un flusso video MP4 senza ricodificarlo, ma non è così semplice come sembra che tu pensi che sia, e non puoi tagliare punti arbitrari (solo prima dei fotogrammi chiave). Inoltre, non so se Moviepy può farlo. – cemper93
Sono d'accordo con @ cemper93. MoviePy decodifica sempre i tuoi frame (su array Numpy) e li ricodifica al momento della scrittura, che richiede tempo. Il modo più semplice per tagliare senza ricodifica è usare FFMPEG per estrarre il segmento giusto dal mp4. Puoi farlo direttamente dalla riga di comando, o da Python, usando la libreria dei sottoprocessi per chiamare ffmpeg. – Zulko
@ Zulko: Puoi scriverlo come risposta e aggiungere qualche spiegazione in più? Non ho idea di FFMPEG e della libreria di sottoprocesso di cui stai parlando. :/ –