OpenCV VideoCapture всегда возвращает false на Heroku - PullRequest
0 голосов
/ 01 мая 2018

Я использую следующий код для открытия видеопотока:

import cv2
video = cv2.VideoCapture()
video.open("some_m3u8_link")
success, image = video.read()

Однако, даже если код работает как задумано локально, на Heroku success всегда ложно.

Я использую стек cedar-14 со следующими сборками:

Heroku / питон

https://github.com/jonathanong/heroku-buildpack-ffmpeg-latest.git

(я пробовал несколько вариантов buildpack для ffmpeg)

Запуск ffmpeg --version на экземпляре heroku вернет ffmpeg version 4.0-static https://johnvansickle.com/ffmpeg/

Есть ли какие-либо настройки / конфигурации, которые я пропустил, чтобы они работали при развертывании? Спасибо!

Позднее редактирование: я попробовал несколько ссылок для "some_m3u8_link", в том числе из twitch и других потоковых сервисов (включая потоковую передачу Пример для воспроизведения:

python -c "import cv2; video=cv2.VideoCapture(); video.open('https://hddn01.skylinewebcams.com/live.m3u8?a=5tm6kfqrhqbpblan9j5d4bmua4'); success, image = video.read(); print(success)"

Возвращает True на локальной машине и False на Heroku.

(ссылка взята с здесь )

Ответы [ 2 ]

0 голосов
/ 10 мая 2018
  • Вы можете использовать модуль Pafy с cv2

- попробуйте opencv3, если он не работает с cv2

    import cv2, pafy
    url = "Some url to stream"
    video = pafy.new(url)
    best = video.getbest(preftype="webm")
    video=cv2.VideoCapture(best.url)
0 голосов
/ 10 мая 2018

Вы можете попробовать это:

import cv2
video = cv2.VideoCapture("some_m3u8_link")
success, image = video.read()
...