DLStreamer_GST 开源项目教程

DLStreamer_GST 开源项目教程

dlstreamerThis repository is a home to Intel® Deep Learning Streamer (Intel® DL Streamer) Pipeline Framework. Pipeline Framework is a streaming media analytics framework, based on GStreamer* multimedia framework, for creating complex media analytics pipelines.项目地址:https://gitcode.com/gh_mirrors/dl/dlstreamer_gst

1. 项目的目录结构及介绍

DLStreamer_GST 项目的目录结构如下:

dlstreamer_gst/
├── docs/
├── examples/
├── gst/
├── python/
├── scripts/
├── tests/
├── CMakeLists.txt
├── LICENSE
├── README.md
└── setup.py
  • docs/: 包含项目的文档文件,如用户指南、API 文档等。
  • examples/: 包含示例代码,展示如何使用 DLStreamer_GST 进行视频分析。
  • gst/: 包含 GStreamer 插件和元素的源代码。
  • python/: 包含 Python 绑定和示例脚本。
  • scripts/: 包含用于构建和安装的脚本。
  • tests/: 包含测试脚本和测试数据。
  • CMakeLists.txt: CMake 配置文件,用于项目的构建。
  • LICENSE: 项目的许可证文件。
  • README.md: 项目的介绍和使用说明。
  • setup.py: Python 包的安装脚本。

2. 项目的启动文件介绍

项目的启动文件通常位于 examples/ 目录下,例如 example_video_analytics.py。这个文件展示了如何使用 DLStreamer_GST 进行视频分析。

# example_video_analytics.py
import sys
from gst import Gst
from gst import GstVideo

def main():
    Gst.init(sys.argv)
    pipeline = Gst.parse_launch("filesrc location=example.mp4 ! decodebin ! videoconvert ! gvadetect model=face-detection-adas-0001.xml ! gvaclassify model=emotions-recognition-retail-0003.xml ! gvawatermark ! autovideosink")
    pipeline.set_state(Gst.State.PLAYING)
    bus = pipeline.get_bus()
    msg = bus.timed_pop_filtered(Gst.CLOCK_TIME_NONE, Gst.MessageType.EOS)
    pipeline.set_state(Gst.State.NULL)

if __name__ == "__main__":
    main()

3. 项目的配置文件介绍

项目的配置文件通常位于 gst/ 目录下,例如 gst/gva/gva_detect.cpp。这个文件包含了 GStreamer 插件的配置和实现。

// gst/gva/gva_detect.cpp
#include "gva_detect.hpp"

GST_DEBUG_CATEGORY_STATIC(gva_detect_debug);
#define GST_CAT_DEFAULT gva_detect_debug

static GstStaticPadTemplate sink_factory = GST_STATIC_PAD_TEMPLATE("sink",
    GST_PAD_SINK,
    GST_PAD_ALWAYS,
    GST_STATIC_CAPS_ANY);

static GstStaticPadTemplate src_factory = GST_STATIC_PAD_TEMPLATE("src",
    GST_PAD_SRC,
    GST_PAD_ALWAYS,
    GST_STATIC_CAPS_ANY);

G_DEFINE_TYPE(GvaDetect, gva_detect, GST_TYPE_VIDEO_FILTER);

static void gva_detect_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) {
    GvaDetect *filter = GVA_DETECT(object);
    switch (prop_id) {
    case PROP_MODEL:
        g_free(filter->model);
        filter->model = g_value_dup_string(value);
        break;
    default:
        G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
        break;
    }
}

static void gva_detect_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) {
    GvaDetect *filter = GVA_DETECT(object);
    switch (prop_id) {
    case PROP_MODEL:
        g_value_set_string(value, filter->model);
        break;
    default:
        G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id

dlstreamerThis repository is a home to Intel® Deep Learning Streamer (Intel® DL Streamer) Pipeline Framework. Pipeline Framework is a streaming media analytics framework, based on GStreamer* multimedia framework, for creating complex media analytics pipelines.项目地址:https://gitcode.com/gh_mirrors/dl/dlstreamer_gst

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

郁音允Zoe

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

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

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

打赏作者

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

抵扣说明:

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

余额充值