- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我目前正致力于从视频捕获设备中检索图像数据。对我来说重要的是我有一个相当特定格式的原始输出数据,我需要一个连续的数据流。因此我想使用 IMFSourceReader。我非常了解它是如何工作的。为了使整个管道正常工作,我检查了相机的输出格式并查看了可用的媒体基础转换 (MFT)。
这里的关键函数是IMFSourceReader::SetCurrentMediaType
。我想详细说明我发现的一个关键功能。如果我只是使用带有所需输出格式参数的函数,它会更改一些参数,如 fps 或分辨率,但调用会成功。当我第一次使用带有我想要的参数和错误子类型(如 MJPG 或其他)的原生媒体类型调用该函数并使用我想要的参数和正确再次调用它时> subtype 调用成功,我得到了正确的参数。我怀疑这只有在合适的 MFT(解码器)可用时才是正确的。
到目前为止,我已经击败了 WMF,获得了我想要的东西。现在的问题是,第二次调用 IMFSourceReader::SetCurrentMediaType
需要很长时间。持续时间在很大程度上取决于所使用的相机。从 0.5s 到 10s 不等。老实说,我真的不知道为什么要花这么长时间,但我认为正确转换路径的计算和/或转换的初始化是问题所在。我发现过多地加载和卸载了相同的 dll(ntasn1.dll、ncrypt.dll、igd10iumd32.dll)。但是我自己加载一次并没有改变任何东西。
那么有人知道这个问题并且有快速解决方法吗?
或者有人知道解决方法:
IMFSourceReader
?最佳答案
您基本上首先描述了 Source Reader 的工作方式。底层媒体源有自己的媒体类型,如果读者需要适应请求的媒体类型和最接近的原始媒体类型,它可以提供转换。
视频捕获设备往往会公开许多 [本地] 媒体类型(我有一个网络摄像头,其中列举了 475 种!),因此如果格式适配不顺利,源代码阅读器可能需要一些时间来尝试一种或另一种转换。
请注意,您可以通过应用 certain attributes 来禁用源阅读器的转换像 MF_READWRITE_DISABLE_CONVERTERS
,在这种情况下,无法直接在源上设置视频格式会导致失败。
您还可以读取原始设备格式的数据,并通过将数据输入一个或一系列 MFT 来自行解码/转换/处理。通常,当您在源阅读器上设置相应格式时,源阅读器会为您管理 MFT。但是,如果您愿意,您也可以自己做。不幸的是,您无法构建 MFT 链供源代码阅读器管理。要么将其完全留在源阅读器上,要么设置 native 媒体类型,从阅读器中以原始格式读取数据,然后通过执行 IMFTransform::ProcessInput
管理您这边的 MFT, IMFTransform::ProcessOutput
和 friend 。这不像源代码阅读器那么容易,但也是可行的。
关于c++ - Windows Media Foundation:IMFSourceReader::SetCurrentMediaType 执行时间问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43740817/
当我想用这个名为 Asfbin 的神奇工具拆分教程视频文件( .wmv )时,查看了媒体播放器中的所有设置,但徒劳地找不到一个... 有没有办法用milliseconds设置windows media
在我的应用程序API级别targetSdkVersion 23中,我添加了以下权限:
出于某种原因,当我发送电子邮件时,我的媒体查询没有应用。我将它从 Outlook 2007 发送到 gmail 并使用 iphone 4s 查看它。我试过使用更简单的@media 查询规则(即仅更改字
我看了一本学习python编程的书,它显示了代码: import media 所以我从链接http://pragprog.com/titles/gwpy/source_code 下载了gwpy-cod
我正在尝试使用一个小的 from,只有 3 个元素。这是我正在使用的,有人可以让我知道我哪里出错了吗?我已尝试同时使用最小宽度和最大宽度,但似乎没有任何效果。 html,body{margin:0p
要修复的网站问题: 我想弄清楚为什么我的一些@media 查询是重叠的。如果您查看我的代码,您会看到 @media 查询被标记为每个设备维度。 @media SCREEN SIZE: MASSIVE
我正在编辑一个预先存在的样式表。它目前有 0-319px 和 320-479px 的@media 部分,以及其他一些用于更大屏幕的部分。我正在尝试添加特定于 iPhone 的样式。但是,我的iphon
我读到在其他@media 查询中嵌套@media 查询在CSS3 中是完全有效的。 但是,我通过 CSS 验证器收到以下解析错误: @media screen and (max-width: 768p
我面临的情况是,对于我的一个类(class),@media 查询只是没有被读取,相反,即使 @media 标准正在被读取,类也没有围绕 @media 查询被读取的情况遇见了。 这是代码: @media
如果我从 android webrtc SDK(由 antmedia 提供)流式传输到 Ant Media 的社区版,则保存的最终视频会出现拉伸(stretch)(以手机纵向模式拍摄)。 Check
我想知道 Mobicent Media 服务器如何使用 URL 播放音频的详细信息?它在哪种方法中使用 URL 进行流式传输。对于本地存储,我了解但对于远程存储(URL),我不知道它是如何工作的。我在
简单是辉煌的关键。 我看到了 @media print 和 @media screen 标签背后的一些意义。但是将 @media screen 与(@media all 而不是打印)进行比较让我感到困
我有以下 sass: .branded @media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (m
我都试过了,得到的结果相似。一直找不到答案。 最佳答案 开头和结尾的斜杠分别对匹配的内容添加了限制。 media:没有斜线,匹配当前目录和所有子目录下的文件和目录。 media/:尾部加斜杠表示只匹配
我正在尝试让 Enquire.js 为旧版浏览器工作。我正在使用文档中的深度支持方法: Modernizr.load([ { test: window.matchMedia,
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 8 年前。 Improve this qu
我希望将 H264 视频流式传输到 Windows Phone 8 应用程序。 那么我该如何使用 ShardDX 呢? (或者可能来自媒体基金会的 native 功能)。 我找到了用于播放视频的 Me
我想使用 cordova 录制用户的音频。在研究中,我发现了两个似乎可以完成这项工作的插件。第一media plugin及其他media capture plugin .现在我的问题是我可以从两个插件
我正在尝试弄清楚如何构建我的 CSS 文件(现在已经很多了),我想知道拥有以下内容之间是否有任何实际区别: 或拥有: @media print { definitions } 我是从浏览器的
这个问题在这里已经有了答案: Media=All vs Media=Screen (2 个答案) 关闭 8 年前。
我是一名优秀的程序员,十分优秀!