当前位置: 首页 > news >正文

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

文章目录

      • VideoPipe简介
        • VideoPipe-Samples
        • VideoPipe-nodes
        • vp_rtsp_src_node
      • 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时需要添加转码的参数。

相关文章:

  • 核函数简述
  • RagFlow+Ollama 构建RAG私有化知识库
  • python进阶篇-面向对象
  • 梁文锋亲自挂名DeepSeek发布新论文
  • 将jar安装到Maven本地仓库中
  • 用STC-ISP写延时函数
  • vue从入门到精通(十):绑定样式
  • 从零开始构建一个小型字符级语言模型的详细教程(基于Transformer架构)之一数据准备
  • 6.【线性代数】—— 列空间和零空间
  • spring cloud 微服务部署(2025年)第三章:Nacos、LoadBalancer、GateWay、Ribbon集成之网关Gateway部署
  • 【Java】逻辑运算符详解:、|| 与、 | 的区别及应用
  • 解锁D3.js与PlantUML的交互奥秘:探索知识图谱数据可视化新领域
  • AI工具篇:利用DeepSeek+Kimi 辅助生成综述汇报PPT
  • Spring Boot 自动装配原理深度剖析
  • 网络分析仪E5071C的回波损耗测量
  • Java:数组的定义与使用
  • ES8中 async 和await的用法详细的总结
  • SpringAI系列 - RAG篇(三) - ETL
  • 【Linux网络编程】应用层协议HTTP(请求方法,状态码,重定向,cookie,session)
  • “闻声“自动化测试报告
  • 安赛乐米塔尔深化在华战略布局,VAMA总经理:做中国汽车板竞争力前三
  • 《蓦然回首》:现代动画的践行与寓言
  • 五一假期上海虹桥边检站出入境近4.7万人次,韩国入境旅客同比增118%
  • 马克思主义理论研究教学名师系列访谈|石书臣:思政课是落实立德树人的关键
  • 演员扎堆音乐节,是丰富了舞台还是流量自嗨?
  • 巴菲特股东大会精华版:批评拿贸易当武器,宣布年底交班