使用 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')
输入样本:
输出样本:
我制作屏幕录制视频,然后使用视频编辑软件将 (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')
输入样本:
输出样本: