如何使用带有 GStreamer 后端的 OpenCV Python 创建 x264 RTSP 服务器

How to create x264 RTSP server with OpenCV Python with GStreamer backend

我的目标是使用 OpenCV Python 使用 GStreamer 后端创建一个 RTSP 服务器。 我将 RGB 图像存储为 OpenCV Mat,我想创建一个可以写入 RTSP 接收器的 VideoWriter。输出视频必须是 x264 编码的。

我相信这可以使用 GStreamer 管道轻松实现,并将管道参数提供给 VideoWriter 构造函数,然后将帧推送到 VideoWriter,但问题是我没有使用 GStreamer 的经验,并且我觉得很混乱。

我在 SO 上找到的答案不完整,使用了特定的硬件解码器(例如 NVIDIA Jetson),或者过于复杂。我想找到一个适用于 CPU.

的更通用的解决方案

我前段时间创建了一个与您的要求相关的项目。这可能是一个 kickstarter,并根据您的需要对其进行自定义。我在下面附加了我的 github 存储库 link。

OpenCV RTSP Server

任何与项目相关的问题都可以在github本身提出,疑惑可以在这里解决。

查看精彩的 VidGear 图书馆。 link.

中有一个 RTSP 示例

https://github.com/abhiTronix/vidgear/issues/228#issuecomment-1024904157

编辑:VidGear 不会创建 RTSP 服务器,但可以让您轻松流式传输。

SimpleRTSPServer,Python中没有,但运行和使用起来非常简单。在另一个终端启动服务器并将输出写入那里。服务器也易于配置。您可以从另一个 Python 脚本或 VLC 轻松捕获读取帧。