Python kullanarak bir videoyu parçalara nasıl bölerim?

Jan 05 2021

Herhangi bir boyuttaki bir video dosyasını maksimum boyutu 75 MB'a kadar olan çeşitli parçalara bölmem gerekiyor. Bu kodu buldum ama çalışmıyor:

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)

Yanıtlar

AvenDesta Jan 05 2021 at 07:30

İşte MoviePy kullanarak oluşturduğum bir komut dosyası. Ancak bayt boyutuna bölmek yerine video uzunluğuna göre böler. Yani divide_into_count5 olarak ayarlarsanız ve 22 dakika uzunluğunda bir videonuz varsa, 5, 5, 5, 5, 2 dakika uzunluğunda videolar alırsınız.

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("-----------------###-----------------")