python+opencv截取指定帧的视频段,同时转换分辨率

      在网上看了好久一直没解决问题,好多都是复制粘贴别人的东西,耽误时间,小编在多次尝试和修改后终于成功了,废话不多说,直接上代码:

import cv2

videoCapture = cv2.VideoCapture('K:/test/00000.mov')

fps = 30  # 保存视频的帧率
size = (350, 256)  # 保存视频的大小

videoWriter = cv2.VideoWriter('K:/test/0000_test.avi', cv2.VideoWriter_fourcc('X', 'V', 'I', 'D'), fps, size)
i = 0

while True:
    success, frame = videoCapture.read()
    if success:
        i += 1
        print('i = ', i)
        if (i >= 1000 and i <= 2000):
            frame=cv2.resize(frame,(350,256))
            videoWriter.write(frame)

        if(i>2000):
            break
    else:
        print('end')
        break

其中原视频格式应该转换成 .mov(小编只在这种情况获得成功,其他可以自行测试),如果需要调整分辨率的话,必须有:

frame=cv2.resize(frame,(350,256))

这一过程,否则视频帧将无法写入,视频输出大小为0。

 

    有不足的地方希望指出,希望能帮到你!

你可能感兴趣的:(格式)