OpenCV 报错:FFMPEG: tag 0x34363258/‘X264‘ is not supported with codec id 27 and format ‘mp4 / MP4‘

在使用OpenCV的VideoWriter保存视频时遇到了编码不支持的错误,具体为X264编码器无法用于mp4格式。解决方案是将编码器参数改为mp4v,这使得VideoWriter能够成功初始化并解决问题。
摘要由CSDN通过智能技术生成

首先说一下报错的地方,是在使用VideoWriter保存视频时:

'''
opencv读取摄像头视频流,并且显示
'''

import cv2
import numpy as np

#调用摄像头
cap = cv2.VideoCapture(0)

#DIVX,X264
fourcc = cv2.VideoWriter_fourcc(*'X264')
fps = 20
#获取图像的高宽
width  = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))

writer = cv2.VideoWriter('video.mp4',fourcc,fps,(width,height))

while True:
    #读取视频帧
    rec, frame = cap.read()

    #镜像
    frame = cv2.flip(frame,1)
    #灰度图片
    gray = cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)

    #保存视频
    writer.write(frame)

    #显示图片
    cv2.imshow('demo',frame)

    #退出条件
    if cv2.waitKey(10) & 0xFF == ord('q'):
        break

cap.release()
writer.release()
cv2.destroyAllWindows()

出现如下错误:

OpenCV: FFMPEG: tag 0x34363258/'X264' is not supported with codec id 27 and format 'mp4 / MP4 (MPEG-4 Part 14)'
OpenCV: FFMPEG: fallback to use tag 0x31637661/'avc1'
[ERROR:0@0.234] global cap_ffmpeg_impl.hpp:2991 open Could not find encoder for codec_id=27, error: Encoder not found
[ERROR:0@0.234] global cap_ffmpeg_impl.hpp:3066 open VIDEOIO/FFMPEG: Failed to initialize VideoWriter

经过查找网上资料,发现是cv2.VideoWriter_fourcc()参数存在问题,

解决方法:

fourcc = cv2.VideoWriter_fourcc(*'X264')

修改为:

fourcc = cv2.VideoWriter_fourcc(*'mp4v')

即可完美解决问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值