- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在学习 gstreamer,尝试编写一个应用程序,该应用程序获取多个视频文件并同步处理其中的每个帧(具体来说,我需要比较这些帧,直到转向下一个帧)。我构建了一个具有多个独立“分支”的管道:
filesrc ---> decodebin ---> videoconvert ---> appsink
filesrc ---> decodebin ---> videoconvert ---> appsink
...
filesrc ---> decodebin ---> videoconvert ---> appsink
我已经成功地处理彼此独立的帧。我的问题是:
如何同步每个应用程序接收器,以便可以将一个应用程序接收器的帧与其他应用程序接收器的帧进行比较?
我想到的就是在新示例回调函数中轮询其他应用程序接收器是否已将其缓冲区存储在某些共享内存中,然后这些回调之一开始对所有缓冲区进行工作。然而,这似乎是相当残酷和困惑的方法。你能帮我找到一个更好的吗?
最佳答案
GStreamer 中的所有接收器(继承自 GstBaseSink)都有一个属性“sync”。这意味着它将把缓冲区时间戳与时钟时间同步,并且在时间到了之前不会给你缓冲区。如果启用了此功能,则可以简单地使用缓冲区上的 GST_BUFFER_TIMESTAMP 来比较它们。
关于c - 如何同步多个appsink,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25142781/
我正在使用 gstreamer 1.0 编写一个 C 应用程序 我正在将 alsa 音频源录制到 appsink 中,以便解析数据并稍后显示图表。 create_loop() 函数在初始化 gst_i
我正在使用 gstreamer-1.0 编写一个简单的应用程序,我想接收通过管道流回我的应用程序的缓冲区。为此,我在管道末端使用了 appsink 插件。 到现在为止,一切正常,但是当我想接收缓冲区时
我正在设计一个管道,将来自 opencv 应用程序(从网络摄像头获取)的视频帧编码为视频/x-h264 格式,通过网络发送并在另一个不同类型的设备(可能是树莓派)上解码) 到适合我的项目的 RGB 流
我使用 Gstreamer 1.0 设置了一个简单的管道,如下所示。当我尝试从 appsink 创建拉样本时,代码停在 "sample = appsink.emit('pull-sample')"处。
这将是我第一次在 C 程序中使用 Gstreamer。我只使用过管道。我正在尝试编写一个程序,该程序将流存储在缓冲区中,使用 OpenCv 编辑流并使用带有 appsrc 的管道来查看流。我收到错误:
我已经为 appsrc 编写了一个代码到 appsink 并且它可以工作。我看到了实际的缓冲区。它以 H264(vpuenc=avc) 编码。现在我想把它保存在一个文件(filesink)中。我如何处
我对堆栈溢出问题比较陌生,但我会尽力彻底解释问题。 我目前正在使用 Axis IP Camera 获取 CARMA 板上的实时视频。 GStreamer 然后使用 RTSP 客户端获取这些帧,执行 R
我正在尝试使用 appsink 构建管道,但它占用了大量内存: #!/usr/bin/env python import sys import gi gi.require_version('Gst',
如果我创建一个简单的管道来将 mkv 文件读入 fakesink,它的运行速度将与机器读取和处理文件的速度一样快: $ time gst-launch-1.0 filesrc location=bar
我有一个 gstreamer 管道,它将其所有数据放入一个应用接收器中: command = g_strdup_printf ("autoaudiosrc ! audio/x-raw-int, sig
我正在使用 GStreamer 从 USB 网络摄像头 (Logitech C920) 捕获 H264 视频,并且我想在可能解码或将其流式传输到网络之前分析 h264 帧。 根据互联网上的不同来源,我
我有如下层次结构: 源流水线 GstElement 管道(有一个 videotestsrc 和 appsink) 用于推送样本的 GstAppSrc 指针数组 GstRTSP服务器 GstRTSPMe
我正在使用 GStreamer 构建我的第一个应用程序,我的任务是从互联网获取流,使用 CUDA 对其进行修改(更改像素)以并行计算帧,并输出修改后的流。 为简单起见,目前我使用MP4视频读写磁盘,不
当我在终端上运行时,以下 Gstreamer Receiver 命令工作正常。 gst-launch-1.0 -v udpsrc port=5004 !'application/x-rtp,paylo
我正在尝试使用 AppSink 接收器从中读取样本,但对象上似乎不存在任何 AppSink 方法。 import gi gi.require_version("Gst", "1.0") from gi
我是一名优秀的程序员,十分优秀!