如何在媒体基础中播放 IMFMediaSample?

Posted

技术标签:

【中文标题】如何在媒体基础中播放 IMFMediaSample?【英文标题】:How to play IMFMediaSample in media foundation? 【发布时间】:2012-03-15 12:07:19 【问题描述】:

我可以使用 readSample 方法从视频中提取样本。现在如何播放这些样本中的数据?或者怎么玩IMFSample?

【问题讨论】:

【参考方案1】:

样本IMFSample 是一个数据块,例如视频帧或音频序列块。这是一个很小的数据,可以单独播放。该 API 解决了更复杂的播放场景,例如播放是一个会话,其中一个或多个流同步流式传输。

请务必查看 MSDN 上的 Getting Started with MFPlay,了解如何使用 Media Foundation 设置播放。

【讨论】:

感谢您的回复.. 但我需要读取块(或样本或 mediaBuffer)的视频文件并使用媒体基础库播放它。就像它在互联网上流式传输时发生的方式一样,视频被分段发送到客户端。请在这方面提供帮助或建议除 IMFSamples 之外的任何替代方案。 MF 创建一个播放管道,因此您需要一个生成数据的源msdn.microsoft.com/en-us/library/windows/desktop/… 手头有单独的缓冲区,您需要创建自定义源:msdn.microsoft.com/en-us/library/windows/desktop/… @Roman,显然你是一些 MVP,等等......但你的每一个答案都是 MSDN 链接到媒体基金会。您真的认为我们很久以前就无法在此处发布问题之前自行找到它吗? Media Foundation 非常没用,技术极其复杂且不灵活。 VFW 时代的 MS 正在创造一种比另一种更糟糕的技术……DShow、WMF……下一个可能需要 10 名开发人员和 6 个月的时间来渲染一帧,这在用户模式下绝对无法访问。所以,一些具体的答案将不胜感激。 @user1764961:大部分问题分为两类:1 发帖者确实无法在 MSDN 上找到直接答案,2 发帖者没有提到他已经发现让任何人阅读他的问题的原因用 MSDN 搜索跟随他,这毫无意义。 3 你真的不知道答案。

以上是关于如何在媒体基础中播放 IMFMediaSample?的主要内容,如果未能解决你的问题,请参考以下文章

媒体基础多个视频播放导致内存泄漏和未定义时间范围后崩溃

如何在媒体基础中有自定义视频媒体/流接收器请求 RGB32 帧?

视频播放小程序-小程序媒体API-基础入门

如何在 android 中播放来自 URL 的流媒体视频?

如何在 reactjs 中检测媒体是不是正在播放或是不是可能?

如何在android jni中播放Spotify媒体