星瞳实验室APP,快速收到回复
  • 我们只解决官方正版的OpenMV的问题(STM32),其他的分支有很多兼容问题,我们无法解决。
  • 如果有产品硬件故障问题,比如无法开机,论坛很难解决。可以直接找售后维修
  • 发帖子之前,请确认看过所有的视频教程,https://singtown.com/learn/ 和所有的上手教程http://book.openmv.cc/
  • 每一个新的提问,单独发一个新帖子
  • 帖子需要目的,你要做什么?
  • 如果涉及代码,需要报错提示全部代码文本,请注意不要贴代码图片
  • 必看:玩转星瞳论坛了解一下图片上传,代码格式等问题。
  • 我想要录制一段视频,运行这段代码时一旦打断录制,电脑直接卡死,这是为什么呢,可以帮忙解答一下吗?



    • import sensor, image, time, mjpeg, pyb
      
      sensor.reset() # Initialize the camera sensor.
      sensor.set_pixformat(sensor.GRAYSCALE) # or sensor.RGB565
      sensor.set_framesize(sensor.QQVGA) # or sensor.QQVGA (or others)
      sensor.skip_frames(10) # Let new settings take affect.
      clock = time.clock() # Tracks FPS.跟踪fps
      
      sensor.skip_frames(30) # Give the user time to get ready.
      
      m = mjpeg.Mjpeg("example.mjpeg")#创建一个名为example的mjpeg文件   将其赋值给m
      #mjpeg.Mjpeg(filename, width=Auto, height=Auto)创建一个mjpeg对象,
      #filename为保存mjpeg动图的文件路径
      
      for i in range(2000):#rang创建一个列表  range(start, stop[, step])
               #从start开始(默认从0开始),到stop结束,但不包括stop,步长为step(默认为1),
          clock.tick()#计算帧率,单位Hz,越大越连贯
          m.add_frame(sensor.snapshot())#向m中添加图片
          #mjpeg.add_frame(image, quality=50),向mjpeg视频中中添加图片,
          #quality为视频压缩质量。
          print(clock.fps())#打印出fps,fps是运算的帧率
      
      m.close(clock.fps())#关闭录像
      


    • 应该不是电脑卡死了吧。是不是ide卡死了?然后等你重新连接摄像头的时候,会发现,原本的录制文件变成0字节。



    • 对,是您说的这种情况,请问您有解决的办法吗?谢谢



    • @omhn 这个貌似没办法解决。
      我的理解是这样的。mjpeg是压缩文件,文件应该有两部分组成,一部分是文件头,记录文件大小,日期,有多少帧数据,每一帧数据的指针之类的,另一部分就是每一帧的数据,当然这些数据是被压缩过的。
      add_frame添加一帧图像进入mjpeg文件,这个操作不仅将图像矩阵中的像素压缩后加入文件的数据部分,还要把文件头一并修改。你在文件头修改完成前(m.close()前)强行终止程序,那么文件头的数据肯定是错误的。所以一直显示零字节。



    • 好的,理解了,谢谢您