【问题标题】:mp4 codec in Raspberry Pi 4: not writing frames to videoRaspberry Pi 4 中的 mp4 编解码器:不将帧写入视频
【发布时间】: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 吗?如果不安装它们

标签: opencv raspberry-pi opencv3.1 opencv-python raspberry-pi4


【解决方案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 进行一些更新。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-07
    • 2020-03-15
    • 2017-10-11
    • 1970-01-01
    • 2017-01-04
    • 1970-01-01
    • 2020-12-31
    • 1970-01-01
    相关资源
    最近更新 更多