当我在OpenCV

时间:2017-03-30 10:14:32

标签: opencv video ffmpeg

我尝试实施概念验证程序:(1)从网络摄像头获取视频,(2)对其进行一些操作,(3)在网页上传输修改后的视频。

我这样做:

1)在开放式CV中:打开网络摄像头流并输出帧作为rawvideo,capture.py看起来:

  import cv2
  import sys

  cap = cv2.VideoCapture(0)
  while(cap.isOpened()):
    ret, frame = cap.read()
    if(ret):
      sys.stdout.write(frame.tostring())
    else:
      break

2)执行:python2 capture.py | ffmpeg -framerate 30 -f rawvideo -pixel_format bgr24 -video_size 640x480 -i - -f mpegts -codec:v mpeg1video -s 640x480 -b:v 2500k -bf 0 http://localhost:8081/supersecret

运行ffmpeg服务器

3)根据页面https://github.com/phoboslab/jsmpeg上的说明运行Websocket中继和http-server,以便在浏览器中流式传输视频。

我在浏览器中获取了流,但是当我在capture.py文件中的框架上应用任何更改(例如frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY))时,我获得了9个小流而不是一个。enter image description here

当我在启动ffmpeg服务器时更改视频分辨率时,会出现同样的情况。当我直接从/ dev / video0输入管道时,我得到了正确的流。

如何对视频进行某些操作并获取单个图像流?

0 个答案:

没有答案