Raspberry Pi 4 中的 mp4 编解码器:不将帧写入视频
Posted
技术标签:
【中文标题】Raspberry Pi 4 中的 mp4 编解码器:不将帧写入视频【英文标题】:mp4 codec in Raspberry Pi 4: not writing frames to video 【发布时间】:2020-10-04 08:26:56 【问题描述】:我无法在 Rpi4 上使用 cv2 编写 mp4 视频文件。 我得到的所有反馈都是 VIDIOC_DQBUF: Invalid argument
writer = cv2.VideoWriter('test.mp4', cv2.VideoWriter_fourcc(*'mp4v'), fps, (640, 480), True)
stream = cv2.VideoCapture(0)
ret, frame = stream.read()
while ret:
writer.write(frame)
cv2.imshow('Video', frame)
ret, frame = stream.read()
if cv2.waitKey(1) & 0xFF==27:
break
stream.release()
writer.release()
cv2.destroyAllWindows()
视频正在使用 cv2.imshow(frame) 显示,并且文件被输出,但实际上并没有任何帧写入其中,因此视频文件似乎已损坏。
我假设这是一个编解码器错误。我尝试在 VideoWriter() 中使用fourcc=-1 显示编解码器,尽管我尝试过的其他fourcc 也不起作用。有没有人成功使用opencv在rpi4上写视频?
【问题讨论】:
1- fps 此处未定义我希望您在实际代码中定义。 2-您的操作系统中有 gstreamers 吗?如果不安装它们 【参考方案1】:我已经测试了您的代码,它在我的 Raspberry Pi 4 上运行良好。我使用的是最新的 Raspberry Pi OS 和 OpenCV 4.3.0。我也可以使用 avi 编解码器:
out = cv2.VideoWriter('output.avi', cv2.VideoWriter_fourcc(*'XVID'), 30.0, (640,480))
如果您不能同时使用它们,请尝试为您的 rpi4 进行一些更新。
【讨论】:
以上是关于Raspberry Pi 4 中的 mp4 编解码器:不将帧写入视频的主要内容,如果未能解决你的问题,请参考以下文章
使用 Raspberry Pi 将图像发送到 Python 中的 QL-800 打印机时如何解码此错误?
如何从 Raspberry Pi 上的动作中获取 .mp4 视频?