Python 处理视频文件
利用 OpenCV 库。
程序效果是,读取视频文件,设定保存的帧速率和帧大小(即视频宽高),控制保存的视频时间节点,由 i
转换为帧数来进行控制。
中间还使用了 resize
函数,来进行图像的缩放。若想放大视频,直接更改 resize
函数中 (1280,720)
参数即可。同时,可以选择图像扩大时所采用的插值方式。本程序中,仅写出了放大的函数,并未进行视频图像的放大。
import cv2
cap = cv2.VideoCapture('test.MOV')
fps_Origin = 30 # 原视频的帧率
fps = 30 # 需要保存视频的帧率
size_Origin = (1280,720) # 原视频的大小
size = (1280,650) # 需要保存视频的大小
videoWriter =cv2.VideoWriter('videoOut.avi',cv2.VideoWriter_fourcc('X','V','I','D'),fps,size)
i = 0 # 控制保存的帧数(时间*帧速率)
while True:
success,frame = cap.read()
if success:
i += 1
print('i = ',i)
if(i>=2711 and i <= 8887):
frame = cv2.resize(frame,(1280,720),interpolation=cv2.INTER_CUBIC)
frame = frame[0:size[1], 0:size[0]] # frame[Height, Width] 宽高不一致,所以需要交换位置
videoWriter.write(frame)
else:
print('end')
break
cap.release()
videoWriter.release()
cv2.destroyAllWindows()