首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >保存OpenCV输出的运动JPEG格式。不支持获得“MJPG”的编解码id 7错误

保存OpenCV输出的运动JPEG格式。不支持获得“MJPG”的编解码id 7错误
EN

Stack Overflow用户
提问于 2022-11-23 21:16:29
回答 1查看 36关注 0票数 0

我想保存运动JPEG (MJPG)格式的摄像机输出。下面的代码,

代码语言:javascript
复制
import cv2
import numpy as np

cap = cv2.VideoCapture(0)
if (cap.isOpened() == False): 
print("Unable to read camera feed")
frame_width = int(cap.get(3))
frame_height = int(cap.get(4))
frame_per_sec = int('10')

out = cv2.VideoWriter('output.mjpeg',cv2.VideoWriter_fourcc('M','J','P','G'),         (frame_per_sec), (frame_width,frame_height))
while(True):
ret, frame = cap.read()
if ret == True:      
# Write the frame into the file 'output.mjpeg'
out.write(frame) 
# Display the resulting frame    
cv2.imshow('frame',frame)
# Press Q on keyboard to stop recording
if cv2.waitKey(1) & 0xFF == ord('q'):
  break
else:
break 
cap.release()
out.release()
cv2.destroyAllWindows()

当它运行时,我将得到以下错误:

代码语言:javascript
复制
[ WARN:0] OpenCV | GStreamer warning: Cannot query video position: status=0, value=-1, duration=-1
OpenCV: FFMPEG: tag 0x67706a6d/'mjpg' is not supported with codec id 7 and format 'mjpeg / raw MJPEG video'

我能做什么来解决这些问题?我试过改变情况(“M”、“J”、“P”、“G”到“m”、“j”、“p”、“g”),但没有成功。感谢有关解决上述问题以及GStreamer问题的任何建议。提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2022-11-23 22:14:51

.mjpeg不是任何已知容器格式的有效后缀。

我相信您并不打算在没有容器的情况下编写一个原始的MJPG流。这是非常很少有用的,并需要专家知识。

你有两个选择:

  1. .avi容器中使用MJPG,因为这是内置在OpenCV中的,甚至不需要ffmpeg
  2. 使用任何ffmpeg理解的(即.mpg容器)、.mov.mkv或其他任何

G 210

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74553092

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档