使用 Python 将一个视频分成多个子视频

Divide a video into multiple child videos using Python

我制作屏幕录制视频,然后使用视频编辑软件将 (screen-record.mp4) 分成三个不同的视频。

ex: (screen-record.mp4 => blue-area1.mp4 & blue-area2.mp4 & blue-area3.mp4).

然而,手动完成确实需要大量的精力和时间,

有没有办法使用 python 或其他方法自动执行此过程,我是 python 的新手。

您可以使用 cv2 库裁剪视频:

import cv2


def crop_video(file, coordinates, output):
    """ Crop video """
    cap = cv2.VideoCapture(file)
    fps, frames = cap.get(cv2.CAP_PROP_FPS), cap.get(cv2.CAP_PROP_FRAME_COUNT)
    x, y, w, h = coordinates
    fourcc = cv2.VideoWriter_fourcc(*'mp4v')
    out = cv2.VideoWriter(output, fourcc, fps, (w, h))
    while cap.isOpened():
        ret, frame = cap.read()
        if ret:
            crop_frame = frame[y:y + h, x:x + w]
            out.write(crop_frame)
        else:
            break
    cap.release()
    out.release()
    cv2.destroyAllWindows()


if __name__ == '__main__':
    for i, coord in enumerate([(0, 0, 960, 540), (960, 0, 959, 539), (960, 540, 959, 539)]):
        crop_video('video.mp4', coord, f'output{i+1}.mp4')

输入样本:

输出样本: