Opencv VideoCapture总是在Heroku上返回false

时间:2018-05-01 10:33:21

标签: python opencv heroku ffmpeg video-processing

我使用以下代码打开视频流:

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

但是,即使代码在本地工作,但在Heroku上success总是假的。

我使用cedar-14堆栈和以下buildpacks:

  

的Heroku /蟒

     

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

(我为ffmpeg尝试了几个buildpack选项)

在heroku实例上运行ffmpeg --version将返回ffmpeg version 4.0-static https://johnvansickle.com/ffmpeg/

我是否遗漏了任何设置/配置以使其在部署中运行?谢谢!

稍后编辑:我尝试了几个链接" some_m3u8_link"包括来自抽搐和其他流媒体服务(包括流量传输) 再现的一个例子:

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

在本地计算机上返回True,在Heroku上返回False。

(该链接取自here

2 个答案:

答案 0 :(得分:0)

你可以试试这个:

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

答案 1 :(得分:0)

  • 您可以将pafy模块与cv2
  • 一起使用

-try opencv3如果它不能与cv2一起使用

    import cv2, pafy
    url = "Some url to stream"
    video = pafy.new(url)
    best = video.getbest(preftype="webm")
    video=cv2.VideoCapture(best.url)