3

因为我的目标是:

  1. 使用 LibVLC 从 IP 摄像机流式传输视频
  2. 使用 OpenCV 处理视频
  3. 然后使用 LibVLC 通过网络重新传输处理后的视频/图像,以便其他连接的客户端可以实时看到处理后的视频/图像(不先将视频/图像存储到磁盘)。

我已经成功完成了前两个任务,但是现在我想通过网络从内存缓冲区作为源流处理过的视频/图像,内存缓冲区是一个 iplimage 变量,它可以是 Mat 变量。所以,如果有人知道如何使用 libvlc 流式传输这样的原始数据,那么请帮忙,或者指出正确的方向或示例代码或链接。将不胜感激..!

4

1 回答 1

4

试试imem,然后你可以使用内存输入作为流源。通过实现模块的 get-release 回调,您可以指向缓冲区的位置并设置解码演示时间戳的值。以下是获取和发布的原型:

    int imemGetCallback(void *userdata, const char* cookie, int64_t *dts, int64_t *pts, unsigned *flags, size_t *bufferSize, void **buffer);
    int imemReleaseCallback(void *data, const char *cookie, size_t bufferSize, void *buffer);
于 2013-04-04T11:34:01.217 回答