视频帧大小crop
视频拼接的时候为了保证每帧图像有相同大小,先对视频保持横纵比进行缩放,使大小刚好大于指定大小,然后对视频进行crop:
import os
import time
import cv2
from moviepy.editor import *
def crop_video(video_clip, dst_size=(1920, 1080)):
"""
默认中心crop
:param video_clip:
:param dst_size:
:return:
"""
print("initial size: ", video_clip.size)
src_size = video_clip.size
src_ratio = src_size[0] / float(src_size[1])
dst_ratio = dst_size[0] / float(dst_size[1])
if src_ratio >= dst_ratio: # src视频是矮胖型
ratio = dst_size[1] / src_size[1]
width = src_size[0] * ratio
height = src_size[1] * ratio
else: # src视频是瘦高型
ratio = dst_size[0] / src_size[0]