python - 在python中裁剪视频

标签 python opencv video-processing video-capture moviepy

我想创建一个可以在特定帧中裁剪视频并将其保存在我的磁盘上的功能
(OpenCV、moviepy 或类似的东西)
我使用参数指定我的函数作为框架的尺寸以及源和目标名称(位置)

def vid_crop(src,dest,l,t,r,b):
  # something
  # goes
  # here

left = 1    #any number (pixels)
top = 2     # ''''
right = 3   # ''''
bottom = 4  # ''''

vid_crop('myvideo.mp4','myvideo_edit.mp4',left,top,right,bottom)
任何建议和想法都非常有帮助

最佳答案

好的,我想你想要这个,

import numpy as np
import cv2

# Open the video
cap = cv2.VideoCapture('vid.mp4')

# Initialize frame counter
cnt = 0

# Some characteristics from the original video
w_frame, h_frame = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)), int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
fps, frames = cap.get(cv2.CAP_PROP_FPS), cap.get(cv2.CAP_PROP_FRAME_COUNT)

# Here you can define your croping values
x,y,h,w = 0,0,100,100

# output
fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter('result.avi', fourcc, fps, (w, h))


# Now we start
while(cap.isOpened()):
    ret, frame = cap.read()

    cnt += 1 # Counting frames

    # Avoid problems when video finish
    if ret==True:
        # Croping the frame
        crop_frame = frame[y:y+h, x:x+w]

        # Percentage
        xx = cnt *100/frames
        print(int(xx),'%')

        # Saving from the desired frames
        #if 15 <= cnt <= 90:
        #    out.write(crop_frame)

        # I see the answer now. Here you save all the video
        out.write(crop_frame)

        # Just to see the video in real time          
        cv2.imshow('frame',frame)
        cv2.imshow('croped',crop_frame)

        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
    else:
        break


cap.release()
out.release()
cv2.destroyAllWindows()

关于python - 在python中裁剪视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61723675/

相关文章:

python - 在 Jupyter 中, '/home/jovyan' 在哪里?

python - 从字典的字典创建 python 数组

OpenCV 加载和显示视频产生不准确的颜色

python - 性能分析仪

c++ - 为什么 detectMultiScale 不返回面孔?

python - Python:如果JSON响应为空,则无法使用

video - 使用 FFmpeg 计算光流大小

javascript - editly - 创建视频后在哪里可以获得返回值?

javascript - 前进和后退功能不适用于 html 5 视频标签中的长视频

python - scipy optimization 中的自定义收敛标准