使用python3实现——视频画面切割工具

在工作中遇到一个实现问题,将视频画面切割成自己需要的那部分

【比如要将1920*1080的视频取出起点是(0,0),分辨率为456*123的一部分视频画面】

在找了很多案例以后自己写出这个最简单的可用demo,在此记录分享给大家。

#! /usr/bin/env python  
#coding=utf-8
import cv2  
import numpy as np  
import cv2
import tkinter

def videoJDK(cx,cy,vw,vh,url_1,url_2):

    videoCapture = cv2.VideoCapture(url_1) # 从文件读取视频
    # 判断视频是否打开
    if (videoCapture.isOpened()):
        print(Open)
    else:
        print(Fail to open!)

    fps = videoCapture.get(cv2.CAP_PROP_FPS)  #获取原视频的帧率

    size = (int(vw), int(vh))#自定义需要截取的画面的大小
    videoWriter = cv2.VideoWriter(url_2, cv2.VideoWriter_fourcc(M, J, P, G), fps, size)
    success, frame = videoCapture.read()#读取第一帧

    ints = int(fps)
    while success:
        print(frame)
        frame = frame[cx:cx+vw,cy:cy+vh]#截取画面

        # cv2.imshow("Oto Video", frame) #显示
        # cv2.waitKey(int(1000/ints)) #延迟

        videoWriter.write(frame) #写视频帧
        success, frame = videoCapture.read() #获取下一帧
    videoCapture.release()


cx = 0; #起点x
cy = 0; #起点y
vw = 540; #宽
vh = 540; #高

url_1 = "F://123.avi"  # 源视频
url_2 = "F://12334.avi"   # 转换后视频


videoJDK(cx,cy,vw,vh,url_1,url_2)
经验分享 程序员 微信小程序 职场和发展