VideoPipe-使用VLC构建RTSP串流显示

VideoPipe简介

VideoPipe是一个用 C++ 编写的视频分析和结构化框架。它具有最小的依赖性并且易于使用。它的运行方式类似于管道,其中每个节点都是独立的,可以以各种方式组合。VideoPipe可用于构建不同类型的视频分析应用程序,适用于视频结构化、图像搜索、人脸识别和交通/安全领域的行为分析(例如交通事件检测)等场景。

项目地址:sherlockchou86/VideoPipe

VideoPipe-Samples

VideoPipe 提供了大量丰富、开源的测试样例供用户把玩尝试,对新手十分友好,包括人脸识别、换脸,车流量统计、越线检测计数、停车检测(基于Yolov3-tiny/Yolov8x)、目标追踪等案例(这里也向开源作者致敬!感谢分享,Respect!!!)
在这里插入图片描述

VideoPipe-nodes

VideoPipe通过将功能封装成节点的方式,将大量常用、实用的视频结构化开发工具集成到nodes目录中,方便用户构建Pipeline时可以像搭积木一样调用;此外,VideoPipe还支持各种算力架构的加速节点支持,包括CUDA、Tensorrt(实测大大降低显存、CPU占用率,具有超高推理性能),用户也可以自己创建推理结点编写自定义样例(欢迎基础样例源码开源共享、教程分享!)

vp_rtsp_src_node

以nodes目录下的vp_rtsp_src_node.cpp/.h为例,作者已经提供了通过rtsp串流输入视频的节点,具体调用参数含义如下:

#include "vp_rtsp_src_node.h"

int main() {
    // 创建一个 vp_rtsp_src_node 实例
    std::string node_name = "rtsp_node";
    int channel_index = 0;
    std::string rtsp_url = "rtsp://admin:admin12345@192.168.77.110:554/";
    float resize_ratio = 0.5; // 可选参数,调整帧大小的比例
    std::string gst_decoder_name = "avdec_h264"; // 可选参数,指定解码器
    int skip_interval = 2; // 可选参数,跳过帧的间隔

    auto rtsp_node = std::make_shared<vp_nodes::vp_rtsp_src_node>(
        node_name, 
        channel_index, 
        rtsp_url, 
        resize_ratio,
        gst_decoder_name,
        skip_interval
    );

    // 启动节点处理线程
    rtsp_node->start();

    // 其他处理逻辑...

    // 停止节点处理线程
    rtsp_node->stop();

    return 0;
}

所以在构建Pipeline时可以通过像rtsp_sample中的读取本地视频的方式一样声明:
在这里插入图片描述
这样就可以通过rtsp串流作为视频信号输入:
在这里插入图片描述
同理也可以尝试使用vp_rtsp_des_node进行串流输出。

VLC搭建本地RTSP串流服务器测试

参考教程:
使用VLC 搭建 RTSP 服务器

需要注意的地方:教程里没有勾选转码,这里我们需要改为勾选转码,否则声明vp_rtsp_src_node时需要添加转码的参数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wayne_Fine

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值