使用OpenCV Python保存的视频打不开

初学者学习OpenCV Python的时候肯定会调用摄像头保存视频,有不少初学者会遇到使用OpenCV Python保存的视频使用播放器打不开,而且保存下来的视频很小往往只有几百个字节。

# -*- coding:utf-8 -*-
import cv2

if __name__ == '__main__':
    # 设置编码方式
    fourcc = cv2.VideoWriter_fourcc(*'avc1')

    # 采用摄像头获取图像
    video = cv2.VideoCapture(0)

    # width = int(video.get(cv2.CAP_PROP_FRAME_WIDTH))
    # height = int(video.get(cv2.CAP_PROP_FRAME_HEIGHT))
    result = cv2.VideoWriter('./video/save_vidoe.mp4', fourcc, 30, (800, 400))

    # 判断是否成功创建视频流q
    while video.isOpened():
        ret, frame = video.read()
        if ret is True:
            # 将每帧图像进行水平翻转
            frame = cv2.flip(frame, 1)
            # 将每一帧写入视频
            result.write(frame)
            cv2.imshow('Video', frame)
            cv2.waitKey(25)
            if cv2.waitKey(1) & 0xFF == ord('q'):
                break
        else:
            break

    video.release()
    result.release()
    cv2.destroyAllWindows()

 这个BUG很可能是保存的视频宽高与摄像头捕获的视频宽高不一致所导致,我们只需在cv2.VideoWriter函数中把保存视频的宽高设置我们摄像头捕获视频的宽高。在上述代码中修改以下两句即可。

width = int(video.get(cv2.CAP_PROP_FRAME_WIDTH))
height = int(video.get(cv2.CAP_PROP_FRAME_HEIGHT))
result = cv2.VideoWriter('./video/save_vidoe.mp4', fourcc, 30, (width, height))

我们再次运行代码,发现所保存的视频能够正常打开。BUG成功解决!

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值