Wie teile ich ein Video mit Python in Teile?
Jan 05 2021
Ich muss eine Videodatei beliebiger Größe in verschiedene Teile mit einer maximalen Größe von bis zu 75 MB aufteilen. Ich habe diesen Code gefunden, aber er funktioniert nicht:
import cv
capture = cv.CaptureFromFile(filename)
while Condition1:
# Need a frame to get the output video dimensions
frame = cv.RetrieveFrame(capture) # Will return None if there are no frames
# New video file
video_out = cv.CreateVideoWriter(output_filenameX, CV_FOURCC('M','J','P','G'), capture.fps, frame.size(), 1)
# Write the frames
cv.WriteFrame(video_out, frame)
while Condition2:
frame = cv.RetrieveFrame(capture) # Will return None if there are no frames
cv.WriteFrame(video_out, frame)
Antworten
AvenDesta Jan 05 2021 at 07:30
Hier ist ein Skript, das ich gerade mit MoviePy erstellt habe. Aber anstatt durch die Bytegröße zu teilen, wird es durch die Videolänge geteilt. Wenn Sie also divide_into_count
5 einstellen und ein Video mit einer Länge von 22 Minuten haben, erhalten Sie Videos mit einer Länge von 5, 5, 5, 5, 2 Minuten.
from moviepy.editor import VideoFileClip
from time import sleep
full_video = "full.mp4"
current_duration = VideoFileClip(full_video).duration
divide_into_count = 5
single_duration = current_duration/divide_into_count
current_video = f"{current_duration}.mp4"
while current_duration > single_duration:
clip = VideoFileClip(full_video).subclip(current_duration-single_duration, current_duration)
current_duration -= single_duration
current_video = f"{current_duration}.mp4"
clip.to_videofile(current_video, codec="libx264", temp_audiofile='temp-audio.m4a', remove_temp=True, audio_codec='aac')
print("-----------------###-----------------")