为自定义视频输入硬件添加对 QuickTime 的支持

Posted

技术标签:

【中文标题】为自定义视频输入硬件添加对 QuickTime 的支持【英文标题】:Add support to QuickTime for custom video-input hardware 【发布时间】:2011-12-24 08:48:51 【问题描述】:

我有一个发送视频流的自定义硬件设备。

如何使这个流可供 QuickTime 应用程序使用?

长话短说:在 Windows 上,我创建了一个 DirectShow 过滤器,因此任何与 DirectShow 兼容的应用程序都可以从我的设备流式传输。我想在 Mac OS X 上做同样的事情。我想 QuickTime 是要走的路,但我在苹果开发者网站上找不到准确的答案。

【问题讨论】:

我相信您正在寻找的是在 10.7 Lion 和 ios4 中引入的 CoreMedia.framework。此处提供更多详细信息以及 API 和示例 - developer.apple.com/library/IOs/#documentation/AudioVideo/…。 @SaurabhG:其中哪些部分与实现设备支持的人相关,而不是设备的应用程序使用? 以及 OSX 的相应指南 - developer.apple.com/library/mac/#documentation/AudioVideo/… 如果有帮助请评论! @SaurabhG:这个问题是关于实现对设备的支持。 @PeterHosey:回答这个问题确实有点冒险,因为确实没有关于为新的(甚至是旧的,QTKit)AVFoundation 框架编写设备驱动程序的好的文档。也就是说,我建议在 CoreMediaIO 框架中四处看看。但是,公共文档绝对为零。如果你订阅了 Mac 开发者计划,你可以在这个论坛帖子中找到一些使用 CoreMediaIO.framework 编写 Lion 用户空间视频捕获驱动程序的示例代码 - devforums.apple.com/message/530074 在这一点上,我认为最好联系 ADC。跨度> 【参考方案1】:

Apple 使用 Mac OS 10.7 制作了 CoreMediaIO.framework public。 CoreMediaIO 是多媒体硬件的设备抽象层 (DAL)。它取代了传统的 QuickTime VDIG 组件 API。 Mac OS X 技术概述的“媒体层”一章中有a small section about this framework。

不幸的是,CoreMediaIO 尚未出现在 Apple 的文档中,但它有一些非常详细的头文件。 它们位于:

/System/Library/Frameworks/CoreMediaIO.framework/Headers

CMIOHardware 似乎是一个很好的起点(来自标题中的“概述”部分):

CoreMediaIO 设备抽象层 (DAL) 提供了一种抽象,应用程序可以通过该抽象访问媒体硬件。到 这样做,DAL 提供了一小组对象 提供对系统各个部分的访问。所有 CoreMediaIO 对象的基类是类 CMIOObject。其他重要的 类包括 CMIOSystemObject、CMIODevice、 CMIOStream 和 CMIOControl。


如果你必须支持旧版本的 OS X,你也可以看看 Developer Library has to offer 是什么。 VDIG 组件已弃用,仅支持 32 位。

【讨论】:

【参考方案2】:

希望您查看HTTP live streaming

【讨论】:

这如何帮助在 QuickTime 中添加对新型视频输入设备的支持? 嘿,彼得,当您提到视频流时,设备是否通过网络发送流?或者它只是一个捕获设备? 我没有提到视频流。据我所知,问题是询问是否添加对要在本地插入的自定义设备的支持,而不是网络上的流源。即使它是联网的,也不一定意味着它是一个 HTTP 服务器,或者提问者可以修改其内容以支持 HTTP 实时流。 在原问题中,它是一个发送视频流的设备。彼得,你的问题是什么?在不知道它是哪种数据源的情况下,我们如何确定解决方案?如果设备是在本地插入的,那么是设备驱动问题,最好在webcam-osx.sourceforge.net查看macam项目@ 你在向我提问,最好是向提问者提问。是的,我知道问题是“设备发送视频流”,但它并没有说它是通过网络发送的,并且问题的其他元素暗示它不一定是网络意义上的流。

以上是关于为自定义视频输入硬件添加对 QuickTime 的支持的主要内容,如果未能解决你的问题,请参考以下文章

html5 视频标签,无需调用 quicktime 播放器

使用 JAVA 在 Windows 中为自定义硬件编写 WMI 提供程序

Elasticsearch:为自管的 Elasticsearch 添加分片分配感知

Sharepoint 2010添加,编辑,删除表单替换为自定义可视Web部件

视频在 Quicktime 中有多种分辨率,但 ffmpeg 只能看到一种

嵌入Quicktime视频