我正在使用以下代码打开视频流:
import cv2
video = cv2.VideoCapture()
video.open("some_m3u8_link")
success, image = video.read()
但是,即使代码在本地按预期运行,在 Heroku 上 success
始终为 false。
我将 cedar-14 堆栈与以下构建包一起使用:
heroku/python
https://github.com/jonathanong/heroku-buildpack-ffmpeg-latest.git
(我为 ffmpeg 尝试了几个构建包选项)
在 heroku 实例上运行 ffmpeg --version
将返回 ffmpeg version 4.0-static https://johnvansickle.com/ffmpeg/
我是否遗漏了任何设置/配置以使其在部署时起作用?谢谢!
稍后编辑:我尝试了几个“some_m3u8_link”链接,包括来自 twitch 和其他流媒体服务(包括流量流媒体 li 复制示例:
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)
最佳答案
- 您可以将 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)
关于python - Opencv VideoCapture 在 Heroku 上总是返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50114993/