gstreamer:如何改变从文件中获取的一个流的渲染时间

2024-02-06

我有两个媒体文件(例如“file0”和“file1”) 我想将它们合并成一个具有“画中画”效果的单个 - “file0”中的内容要显示在整个窗口上, 并且“file1”中的内容将显示在左上角 较小的盒子。

还有一点是“file1”中的内容应该被渲染 从基准时间晚一些时间,在标记为“X1”的点 如下图。

换句话说,如果我将“videotestsrc”作为视频源输入, 我会得到以下示例管道,它说明了我需要什么 作为此任务的结果:

gst-launch-1.0 -ev \
 videotestsrc pattern="snow" num_buffers=100 ! queue ! videoscale ! capsfilter caps="video/x-raw,width=320,height=240,framerate=15/1" ! videoconvert ! videomixer.sink_0 \
 videotestsrc pattern=5 timestamp-offset=3000000000 num_buffers=30 ! queue ! videoscale ! capsfilter caps="video/x-raw,width=120,height=80,framerate=15/1" ! videoconvert ! videomixer.sink_1  \
 videomixer name="videomixer" ! autovideosink 

(您将看到雪白的 320x240 窗口,并出现小绿色框 从开始三秒后两秒)

所以,问题是 - 改变渲染时间的最佳方法是什么 file1 的内容? (通过 gstreamer 插件,在管道中指定参数,或者通过执行 API 调用)


最后答案:可以通过调用GST 垫设置偏移 https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#gst-pad-set-offset适用于视频混音器和音频混音器元件的特定水槽垫。因此,在上面的示例中,您将获得视频和音频混合器的接收器_1 pad,并通过调用“gst-pad-set-offset”指定偏移量。奇迹般有效。

特别感谢 Sebastian Dröge 的回答非常好类似的问题 http://gstreamer-devel.966125.n4.nabble.com/gst-launcher-1-0-setting-pad-offset-tp4672162p4672168.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

gstreamer:如何改变从文件中获取的一个流的渲染时间 的相关文章

  • CLOCKS_PER_SEC 与 std::clock() 的结果不匹配

    我正在使用以下短程序来测试std clock include
  • 在c#中获取没有时间的日期

    我的表上有一列 缺勤日期时间 日期 当我想要获取包含日期的行时 它返回 0 行 这是我的 C 代码 DateTime ClassDate DateTime Parse lblDate Content ToString var Abs dbs
  • 在 Ruby 中将 Time 类对象转换为 RFC3339

    谷歌日历 API v2 https developers google com google apps calendar v2 developers guide protocol的时间相关查询需要采用 RFC3339 格式 当我在 需要 时
  • 在openCV内部调用Gstreamer

    我需要在 openCV 代码中调用 Gstremaer 本质上是打开摄像机 当我查看源代码时 modules highgui src cap gstreamer cpp似乎是我正在寻找的文件 我用 Gstreamer 标志编译了 OpenC
  • 在Excel中显示毫秒

    我正在尝试在 Excel 宏中显示毫秒 我有一列整数 它们是以毫秒为单位的时间戳 例如 28095200 是上午 7 48 15 200 我想在它旁边创建一个新列 以保持运行平均值并以hh mm ss 000格式 Dim Cel As Ra
  • 我如何获取当前时间?

    我如何获取当前时间 Use datetime https docs python org 3 library datetime html gt gt gt import datetime gt gt gt now datetime date
  • UNIX时间记录时区吗?

    我想问一下UNIX时间 UNIX时间是否记录时区 我将托管从美国芝加哥移至 JST 问题是我的整个 MySQL 数据库都有 UNIX 时间 芝加哥 美国时区 的记录 我有一个 PHP 代码来显示之前的时间 例如 3 天前 昨天等 当我搬到新
  • 为什么我的 AlarmManager 会立即触发?

    我正在尝试构建一个警报应用程序 我之前让闹钟工作过 我可以设置不同的时间 闹钟就会适当地响起 然后我将 ChangeAlarmActivity 的布局更改为 TableLayout 现在它不起作用 我没有碰代码 以下是我设置闹钟的方法 In
  • 将 pandas 数据框中的列减去其第一个值

    我需要将 pandas 数据帧的一列中的所有元素减去其第一个值 在这段代码中 pandas 抱怨 self inferred type 我猜这是循环引用 df Time df Time df Time 0 在这段代码中 pandas 抱怨为
  • 多线程——更快的方法?

    我有一堂有吸气剂的课程getInt 和一个二传手setInt 在某个领域 比如说领域 Integer Int 一个类的一个对象 比如说SomeClass The setInt 这里是同步的 getInt isn t 我正在更新的值Int来自
  • 安装 gstreamer 对 opencv python 包的支持

    我已经从源代码构建了自己的 opencv python 包 import cv2 print cv2 version 打印 3 4 5 现在我面临的问题是关于 opencv 的 VideoCapture 类中的 gstreamer 的使用
  • 在 R 中将时间从数字转换为时间格式

    我从 xls 文件中读取数据 显然 时间格式不正确 如下 举例 0 3840277777777778 0 3847222222222222 0 3854166666666667 确实 他们应该是 09 12 09 13 09 13 我不知道
  • D3 删除千位的逗号分隔符

    我有一个包含 3 列的 json 其中一列是 年份 该列仅包含年份 没有日期 当我在 x 轴上绘制它时 年份会以逗号分隔符表示数千 所以在 json 中 日期的格式是 Year 1990 在 x 轴上 结果是 1 990 我一直在试图弄清楚
  • 使用python删除未访问的文件

    My django app解析用户上传的一些文件 用户上传的文件可能会在服务器中保留很长时间 而没有被应用程序解析 如果很多用户上传大量文件 这可能会增加大小文件 我需要删除应用程序最近未解析的那些文件 比如not accessed for
  • 乔达时间:将 UTC 转换为本地时间

    我想将 Joda Time UTC DateTime 对象转换为本地时间 这是一种看似有效的费力方法 但一定有更好的方法 这是没有周围声明的代码 在 Scala 中 val dtUTC new DateTime 2010 10 28T04
  • 如何通过jiffies实现经过时间

    我想了解如何在 C 中使用 jiffies 实现经过时间 假设我有一系列指令 include
  • 计算两个 Java 日期实例之间的差异

    我正在使用Java的java util DateScala 中的类并想要比较Date对象和当前时间 我知道我可以使用 getTime 计算增量 new java util Date getTime oldDate getTime 然而 这只
  • 是否有充分的理由不使用 UTC 存储时间?

    我想知道是否有任何充分的理由以 UTC GMT 以外的任何时间存储时间信息 我相信这是所有软件工程的坚实规则 转换为本地时间只是出于显示目的而在 UI 层发生的转换 我还见过需要翻译才能正确实现算法的情况 用于处理午夜日期更改等 一般来说
  • setTimeout - 将变量作为时间传递

    我有一个 setTimeout 我希望能够使用变量作为计时器 var that this var time this spawnTime setTimeout function time that SpawnCounter time 这似乎
  • Ruby 在带有偏移量的数组中查找

    我正在寻找一种以更简洁的方式在 Ruby 中执行以下操作的方法 class Array def find index with offset offset block offset 1 find block end end offset a

随机推荐