OpenCV VideoCapture не может читать из потока - PullRequest
0 голосов
/ 18 декабря 2018

Я могу открыть поток в VLC, но в OpenCV я не могу захватывать кадры.(Python 2.7, бинарный дистрибутив OpenCV 3.4.3 x86, Windows 10).Я следовал этому руководству: https://medium.com/@tomgrek/hackers-guide-to-the-aws-deeplens-1b8281bc6e24, но я не могу читать со случайных потоков онлайн (не уверен, смогу ли я это сделать, я видел этот вопрос opencv videocapture не может открыть поток MJPEG о компиляции с помощью ffmpeg, но я только что скачал бинарный файл, доступный в Sourceforge).

  • Я использую AWS Deeplens, обновлен до последней версии.

  • Установлен ffmpeg, последняя версия.

Затем в /etc/ffserver.conf я добавил:

<Stream camera.h264>
File "/opt/awscam/out/ch1_out.h264"
VideoFrameRate 6
VideoSize 320x240
NoAudio
</Stream>

<Stream camera.mjpeg>
File "/opt/awscam/out/ch2_out.mjpeg"
VideoFrameRate 3
VideoSize 640x480
Format mjpeg
NoAudio
</Stream>
  • Я запускаю ffserver -f /etc/ffserver.conf
  • На моем компьютере с Windows я использую WSL и открываюSSH-туннель в AWS Deeplens ssh -L 8090:localhost:8090 aws_cam@192.168.0.10
  • На этом этапе на моей машине с Windows я могу открыть VLC и, если я укажу на http://localhost:8090/camera.mjpeg, я смогу видеть поток с камеры.

Но если я запускаю следующий код:

cam = cv2.VideoCapture("http://localhost:8090/camera.mjpeg")
success, frame = cam.read()
opened = cam.isOpened()
success, frame, opened

, я получаю:

False, None, False

Если я просматриваю http://localhost:8090/stat.html, я вижу:

Available Streams
Path    Served Conns     bytes  Format  Bit rate kbits/s    Video kbits/s   Codec   Audio kbits/s    Codec  Feed
test1.mpg   0   0   mpeg    96  64  mpeg1video  32  mp2 feed1.ffm
test.asf    0   0   asf_stream  320 256 msmpeg4 64  wmav2   feed1.ffm
stat.html   17  42150   -   -   -       -   
index.html  0   0   -   -   -       -   
camera.h264 3   6805k   h264    0   0   libx264 0       /opt/awscam/out/ch1_out.h264
camera.mjpeg    12  41073k  mjpeg   0   0   mjpeg   0       /opt/awscam/out/ch2_out.mjpeg

И каждый раз, когда я звоню VideoCapture(), я вижу, как число Served для потока camera.mjpeg увеличивается на 2 или 3, а bytes увеличивается на несколько мегабайт, но я ничего не вижу вOpenCV.Я не пробовал никакое другое видеоустройство в моей Windows 10, но я не могу читать изображения без проблем.Я также попробовал случайный поток онлайн, также открывается в VLC, но не в OpenCV, попробовал этот: http://136.176.70.200/mjpg/video.mjpg

Есть идеи?

1 Ответ

0 голосов
/ 18 декабря 2018

Похоже, мне нужно самому скомпилировать OpenCV с поддержкой ffmpeg.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...