一台视频混合渲染器 9 (VMR9) 可以渲染更多视频流吗?

2023-12-26

我使用相同数量的 VMR9 实例以 Windows 形式渲染多个视频流。我使用 DirectShowLib-2005 在 C# 中执行此操作。

如果需要显示 100 个视频,我将创建 100 个 FilterGraph (IFilterGraph2),每个 FilterGraph 将容纳一个 VMR9 实例 (VideoMixinRenderer9),每个实例将渲染 1 个视频流。

这会很快耗尽 RAM...

我可以让一个 VMR9 过滤器渲染多个视频流,从而减少 VMR9 实例的数量,并渲染更多数量的视频流吗?

任何帮助将不胜感激。


好吧...我想通了...如果有人有更好的例子,请在此处发布,我会将其标记为已接受的答案。

The graph: The graph I want to render with one VMR9 renderer

如果您在 GrapgEdit(或其他东西)中渲染它,它会在其下方显示第一个(Input0)流和第二个(Input1)流,但我希望它们同时可见!

为此,VMR9 必须进行这样的配置(错误处理和一些VMR9配置被省略):

//Setting VMR9 to run in WINDOWLESS MODE
filterConfig = (IVMRFilterConfig9)vmr;
filterConfig.SetRenderingMode(VMR9Mode.Windowless);

//Number of streams that I want to render together (mix)
filterConfig.SetNumberOfStreams(2);

//Get the MIXER CONTROL that will be used to configure video rendering surfaces
mixerCtrl = (IVMRMixerControl9)vmr;

//*** RENDER THE PINS SO THE GRAPH CONNECTS CORRECTLY (omitted) ***

//Define areas of the clipping window that will be covered by each video stream
NormalizedRect r1 = new NormalizedRect(0,0,0.5f, 0.5f);
NormalizedRect r2 = new NormalizedRect(0.5f, 0.5f, 1f, 1f);

//For each stream (0 and 1) set the output rect
mixerCtrl.SetOutputRect(0, ref r1);
mixerCtrl.SetOutputRect(1, ref r2);

After this, the streams are rendered in top left and bottom right portion of the clipping window, and they are both shown and rendered correctly!!! Shows the resulting clipping window containing 2 video streams rendered with one VMR9

如果你想显示更多视频流,只需SetNumberOfStreams相应地,并配置NormalizedRect为每一个。这样我就可以使用一个 VMR9 实例渲染更多流,而且不需要担心 RAM 耗尽。

现在 VMR9 真正的酷炫表现出来了...:D xD

PS看起来 16 个流已经是极限了......

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

一台视频混合渲染器 9 (VMR9) 可以渲染更多视频流吗? 的相关文章

  • 在模板类中声明模板友元类时出现编译器错误

    我一直在尝试实现我自己的链表类以用于教学目的 我在迭代器声明中指定了 List 类作为友元 但它似乎无法编译 这些是我使用过的 3 个类的接口 Node h define null Node
  • 如何从 Visual Studio 将视图导航到其控制器?

    问题是解决方案资源管理器上有 29 个项目 而且项目同时具有 ASP NET MVC 和 ASP NET Web 表单结构 在MVC部分中 Controller文件夹中有大约100个子文件夹 每个文件夹至少有3 4个控制器 视图完全位于不同
  • 如何在 C# 中打开 Internet Explorer 属性窗口

    我正在开发一个 Windows 应用程序 我必须向用户提供一种通过打开 IE 设置窗口来更改代理设置的方法 Google Chrome 使用相同的方法 当您尝试更改 Chrome 中的代理设置时 它将打开 Internet Explorer
  • free 和 malloc 在 C 中如何工作?

    我试图弄清楚如果我尝试 从中间 释放指针会发生什么 例如 看下面的代码 char ptr char malloc 10 sizeof char for char i 0 i lt 10 i ptr i i 10 ptr ptr ptr pt
  • 为什么 GCC 不允许我创建“内联静态 std::stringstream”?

    我将直接前往 MCVE include
  • WPF 数据绑定到复合类模式?

    我是第一次尝试 WPF 并且正在努力解决如何将控件绑定到使用其他对象的组合构建的类 例如 如果我有一个由两个单独的类组成的类 Comp 为了清楚起见 请注意省略的各种元素 class One int first int second cla
  • ASP.NET Core 3.1登录后如何获取用户信息

    我试图在登录 ASP NET Core 3 1 后获取用户信息 如姓名 电子邮件 id 等信息 这是我在登录操作中的代码 var claims new List
  • C# 列表通用扩展方法与非通用扩展方法

    这是一个简单的问题 我希望 集合类中有通用和非通用方法 例如List
  • WcfSvcHost 的跨域异常

    对于另一个跨域问题 我深表歉意 我一整天都在与这个问题作斗争 现在已经到了沸腾的地步 我有一个 Silverlight 应用程序项目 SLApp1 一个用于托管 Silverlight SLApp1 Web 的 Web 项目和 WCF 项目
  • 如何定义一个可结构化绑定的对象的概念?

    我想定义一个concept可以检测类型是否T can be 结构化绑定 or not template
  • x:将 ViewModel 方法绑定到 DataTemplate 内的事件

    我基本上问同样的问题这个人 https stackoverflow com questions 10752448 binding to viewmodels property from a template 但在较新的背景下x Bind V
  • 两个类可以使用 C++ 互相查看吗?

    所以我有一个 A 类 我想在其中调用一些 B 类函数 所以我包括 b h 但是 在 B 类中 我想调用 A 类函数 如果我包含 a h 它最终会陷入无限循环 对吗 我能做什么呢 仅将成员函数声明放在头文件 h 中 并将成员函数定义放在实现文
  • C# 动态/expando 对象的深度/嵌套/递归合并

    我需要在 C 中 合并 2 个动态对象 我在 stackexchange 上找到的所有内容仅涵盖非递归合并 但我正在寻找能够进行递归或深度合并的东西 非常类似于jQuery 的 extend obj1 obj2 http api jquer
  • 如何实例化 ODataQueryOptions

    我有一个工作 简化 ODataController用下面的方法 public class MyTypeController ODataController HttpGet EnableQuery ODataRoute myTypes pub
  • C 函数 time() 如何处理秒的小数部分?

    The time 函数将返回自 1970 年以来的秒数 我想知道它如何对返回的秒数进行舍入 例如 对于100 4s 它会返回100还是101 有明确的定义吗 ISO C标准没有说太多 它只说time 回报 该实现对当前日历时间的最佳近似 结
  • 有没有办法让 doxygen 自动处理未记录的 C 代码?

    通常它会忽略未记录的 C 文件 但我想测试 Callgraph 功能 例如 您知道在不更改 C 文件的情况下解决此问题的方法吗 设置变量EXTRACT ALL YES在你的 Doxyfile 中
  • 使用特定参数从 SQL 数据库填充组合框

    我在使用参数从 sql server 获取特定值时遇到问题 任何人都可以解释一下为什么它在 winfom 上工作但在 wpf 上不起作用以及我如何修复它 我的代码 private void UpdateItems COMBOBOX1 Ite
  • C++ 中的参考文献

    我偶尔会在 StackOverflow 上看到代码 询问一些涉及函数的重载歧义 例如 void foo int param 我的问题是 为什么会出现这种情况 或者更确切地说 你什么时候会有 对参考的参考 这与普通的旧参考有何不同 我从未在现
  • 指针和内存范围

    我已经用 C 语言编程有一段时间了 但对 C 语言还是很陌生 有时我对 C 处理内存的方式感到困惑 考虑以下有效的 C 代码片段 const char string void where is this pointer variable l
  • Mono 应用程序在非阻塞套接字发送时冻结

    我在 debian 9 上的 mono 下运行一个服务器应用程序 大约有 1000 2000 个客户端连接 并且应用程序经常冻结 CPU 使用率达到 100 我执行 kill QUIT pid 来获取线程堆栈转储 但它总是卡在这个位置

随机推荐

  • 即使在 CallBase = true/false 之后,原始方法仍然会在 Moq 中被调用

    这是我的code public class Bar public class Foo public string Name get set public Bar TheBar get set public class Dependency
  • 为什么对依赖单例的系统进行单元测试很困难?

    我读过支持和反对使用单例模式的案例 一种常见的反对案例描述了单例单元测试的困难 但我不清楚这是为什么 如果单元测试是构建的一部分 您难道不能只引用单例并在需要时使用它吗 我从java的角度思考 但我想这不重要 关于此的一篇很棒的文章是单身人
  • C 和 C++ 中的静态变量

    声明为的变量之间有什么区别吗static在 C 和 C 之间的任何函数之外 我读到了static意味着文件范围和变量在文件之外不可访问 我还读到 在 C 中 全局变量是static 那么这是否意味着C中的全局变量不能在另一个文件中访问 不
  • 使用 foreach 循环来初始化变量

    我构建了一个空关联数组 其键名引用提交的帖子数据 我可以很好地捕获后数据 但在尝试实例化名称与数组键匹配的变量时遇到了麻烦 例如 insArray array rUsername gt rPass gt rQuestion gt rAnsw
  • 永久修改启动 Activity 的 Intent

    我想发送一个意图来启动一个活动 我希望能够修改该意图 然后 当活动被销毁并重新创建时 我希望当我调用时这些修改仍然存在getIntent 目前 只要 Activity 没有被销毁 修改意图就可以正常工作 如果有 那么当重新创建 Activi
  • 根据拖放位置对 firestore 中的文档进行排序

    我的目标是呈现我的LinkContainer组件 以便它们位于我的拖放上下文中
  • 如何修复 MSSQL 上的“无效列名”SQL 异常

    我试图在运行时传递要在代码中检查的列名称和值 不过我得到的是 无效的列名 例外 代码如下 cmd new SqlCommand con Open cmd Connection con cmd CommandText INSERT INTO
  • ASP.NET MVC3 RC2 不工作

    我的输入装饰如下
  • 如何获取 Java Hashmap 上冲突数量的指标?

    我正在实现一个自定义哈希函数 如果我在 HashMap 存储桶中发生多次冲突 我如何知道存储桶中存储了多少元素 API 中没有对此直接支持 成员变量table用于存储存储桶的 甚至不是公共的 因此扩展该类不会让您走得太远 假设您正在评估哈希
  • 从数据列表中选择项目时,为什么值末尾的空格会消失?

    我遇到了一个奇怪的问题 当使用数据列表时 值末尾的空格消失了 这让我想知道为什么 我使用的是谷歌浏览器 我可以确保末尾的空格将包含在 通过将最终结果分配给值属性 而不是介于
  • CSS中first-line和first-child的特殊性?

    我有以下 html 代码 p asdasdasdsad br sdfsdfs p 输出是 asdasdasdasd sdfsdfs 但是 我的想法是 p 标签是 body 的第一个子标签 first child 是一个伪类 其特异性为 10
  • $authWithPassword 不是 AngularFire 2.x 中的函数

    我以前看过有关此问题的帖子 但它们要么已经过时 要么提供与我的设置非常相似的解决方案 基本上 我的控制器中有两个函数 authCtrl login 和 authCtrl register 寄存器对 Auth createUserWithEm
  • javascript 相当于 java 的 Map.getKey()

    我有一个地图 或者说 JavaScript 中的关联数组类型的结构 var myMap one 1 two 2 three 3 要获取与给定值相对应的键 我必须迭代映射 function map test value var myMap o
  • 删除 Mac 上的 Qt 库

    我想删除已安装的 Qt 4 8 库并在我的 Mac 上安装 Qt 4 6 库 但是当我尝试安装它们时 我得到 Qt 库无法安装在此磁盘上 较新版本的 该软件已存在于该磁盘上 我删除了 usr local Qt4 8 x文件夹 但消息仍然存在
  • Rmd 文件中的 knit_child 正在打印不需要的输出

    我已经成功使用了knit child生成pdf文件 遵循以下代码http yihui name knitr demo child http yihui name knitr demo child 但是当我尝试在 Rmd file r res
  • 如何将复杂的 T-SQL 转换为 Linq

    我正在使用 EntityFramework Core 2 0 从事 Asp NET Core 2 0 项目 我正在尝试将现有的遗留 SQL 存储过程转换为 EntityFramework Core 中的 Linq 但我在处理 T SQL 的
  • 何时使用抽象语法树或具体语法树?

    我一直在研究编译器 词法分析器似乎非常简单 取一个 句子 并将其分解为单词 或标记 为了确保语法正确 需要解析器 解析器通常采用标记并构建一棵树 该树产生根节点 单词到句子 段落 页面等 From 这个问题 https stackoverf
  • 取消部分CSS样式

    对于一个项目 我必须使用定义的样式表 我无法编辑它 我必须接受它 但是 有些样式不适合该网站 例如边距 我也创建了自己的 CSS 文件来覆盖其中一些属性 举个例子 如果我有这个 div class container My test tex
  • 为什么这个将字符串转换为整数的 Golang 代码会失败?

    这应该很简单 strconv Atoi 1250000 0000 这会导致错误 0 strconv ParseInt 解析 1250000 0000 语法无效 有什么线索吗 Atoi仅适用于可以解析为整数的字符串 你需要的是解析浮点型 ht
  • 一台视频混合渲染器 9 (VMR9) 可以渲染更多视频流吗?

    我使用相同数量的 VMR9 实例以 Windows 形式渲染多个视频流 我使用 DirectShowLib 2005 在 C 中执行此操作 如果需要显示 100 个视频 我将创建 100 个 FilterGraph IFilterGraph