我已经建立了一个SRT流从树莓Pi到我的电脑。一切都很好。我也可以用VLC观看流。现在我想用Python捕捉流。
使用RTMP和HTTP命令
cap = cv2.VideoCapture("srt://IP:PORT")
frame = cap.read()没有任何问题。
但是使用SRT,OpenCV甚至不试图捕获流。
我能做什么?
编辑:
关于我的项目的更多信息:我有一个USB摄像头连接我的覆盆子Pi和流这个现场视频通过SRT。我从Haivision安装了SRT,并使用以下命令创建了流:
./srt-live-transmit udp://:1234 srt://:4201 -v UDP路径是USB摄像头的输入。要想在树莓上本地观看溪流,请点击“跳过”作品。正如我之前说过的,在我的电脑上消费视频也是有效的。在OBS中,直到现在,我还没能启动这条流。
发布于 2022-03-12 16:18:19
有三种方式:
1.使用RTSP而不是SRT
我找不到在python中如何解码SRT的任何数据,而且在他们的GitHub回购的Haivision中只有C的官方库和示例代码,所以最简单的方法是更改RPI的视频流协议。
对于如何从RPI摄像机在RTSP中传输视频有很好的示例说明。。
优点:容易做到。
缺点:如果是要求的话,不是SRT。
2.使用SRT,而不是Python
这里有创建SRT客户端脚本的有文档记录的代码示例,但是它们在C中,我没有找到任何关于python库或SRT示例代码的数据。但是在C中有一个很好的例子:来自Git Haivision的例子
另一方面,OpenCV也是一个基于C的库.因此,您可以开始学习C语言。
优点:海维的OpenCV和SRT是基于C的,所以使用C更好。
缺点:C很难学。
3.为Python开发C包装器
如果您有一个可以用C开发的朋友,那么为python创建一个客户端库,甚至客户机API。
优点:这对你来说更容易。
缺点:这对你的朋友来说并不容易。
https://stackoverflow.com/questions/71329280
复制相似问题