2011-04-08 65 views
6

Mac OS X的新手,熟悉Windows。 Windows有DirectShow,大量的内置过滤器,COM编程和GraphEdit,用于在代码中构建的图形上进行非常快速的原型设计和窥探。适用于DirectShow的Mac OS X,GraphEdit

我现在要去Mac上使用摄像头,网络摄像头,麦克风,色彩空间,文件,分割,同步,渲染,文件读取,文件保存以及我要采取的许多事情在将现场表演的应用程序放在一起时,可以使用DirecShow。在Mac方面,到目前为止,我发现......什么都没有!要么我不知道要去哪里看,要么我最困难的时间是将Mac的声誉放在一起,以便于处理媒体,并且具有连贯的编程能力,并能够通过媒体操作构建模块。

我已经看到一些弱的建议,使用gstreamer或QT的一些库,但我不能让自己相信这是苹果的方式去。我已经遇到了一些QuickTime文档,但我不想做转换,精灵,广播......

在DirectShow上训练大脑意味着我甚至不知道Apple如何考虑提供DirectShow-像功能。这意味着我不知道正确的关键字,甚至不知道在哪里寻找。图书?买了几个。现在我可以编写一些可以编辑你姐姐婚礼视频的代码(如果我无法在这个主题上取得像样的进展,那么我可能会问,这对你有什么价值),但是为了确定哪些过滤器可用以及如何将它们串在一起......什么都没有。建议?

+0

我相信QuickTime是它。 QT是[底层的iTunes]。(http://developer.apple.com/quicktime/)查看[全屏视频播放]的示例代码。(http://developer.apple.com/ library/mac /#samplecode/MyMediaPlayer/Introduction/Intro.html) – 2011-04-08 18:31:23

+1

不!我错了。尝试提及过滤器的[Core Video](http://developer.apple.com/library/mac/#documentation/GraphicsImaging/Conceptual/CoreVideo/CVProg_Intro/CVProg_Intro.html)。 – 2011-04-08 18:33:43

+0

感谢您的指点。我最初看Core Video可能会误导我。它似乎认为从视频中提取一帧非常好,而不是我正在进入的方向。 – 2011-04-09 01:15:22

回答

10

视频处理正在经历目前在Mac上一个巨大的转变。 QuickTime非常古老,但也很强大,所以它在过去5年左右一直在经历一个渐进式更换流程。

也就是说,QTKit是未来支持的QuickTime子集(捕获,回放,格式转换和基本视频编辑)。传统的QuickTime API目前仍然存在,并且可能至少会保留到其主要功能可用于其他位置,但只有32位。对于一些涉及视频的东西,你可能最终需要在地方使用它。

目前,iOS领先于Mac,因为它可以从头开始AV Foundation。 Mac媒体框架的未来可能是AV基金会直接(QTKit是顶级的轻量级垫片),或者看起来非常相似的QTKit的扩展。

对于音频有核心音频是在Mac和iOS,并不会很快消失的任何时间。这是相当强大的,但在某些地方有些钝。幸运的是,在线支持非常好, mailing list是必不可少的资源。

对于过滤器和帧级处理,您可以使用Core Video作为其他人提到的,以及Core Image。对于运动图形有Quartz Composer其中包括一个图形编辑器和一个插件架构来添加您自己的补丁。对于编程式程序动画和轻松混合渲染模型(OpenGL,Quartz,视频等),有Core Animation

除了所有这些,当然没有理由不能使用内置的东西没有做你想要的开源库。


为了解决如下的评论:

在QuickTime中(和QTKit),单独的数据类型,如音频和视频被表示为轨道。QuickTime可能不会立即清楚打开音频以及视频文件格式。一种常见的方法来组合使用音频和视频将是:

  1. 创建视频文件QTMovie
  2. 创建您的音频文件QTMovie
  3. 以代表音频QTTrack对象,并将其与它的视频添加到QTMovie
  4. 压扁的电影,所以它不只是包含其他电影的参考,但实际上包含了音频数据。
  5. 写的电影光盘。

Here's an example from Blender。您将看到如何在end_qt函数中完成A/V复用。在那里还有一些Core Audio的使用(AudioConverter*)。 (有没有在quicktime_export.c一些经典的QuickTime导出代码,但它似乎并没有做音频。)

+0

首先,感谢您提供如此全面的信息。我仍然试图让我的思想围绕它。暂时搁置一种技术取代另一种技术。似乎有这么多动人的部分,需要注意的很多不同的领域。通过这种方式,哲学与DirectShow看起来非常不同。如果我想处理一些音频,处理一些视频,然后加入并确保它们基于捕捉时间同步,我会在哪里看?这在DirectShow中很明显。有了这种组织在Mac端,它表面上看起来像是一个事后的想法 – 2011-04-09 01:14:21

+0

请看我编辑的答案......我的回应太长了评论。 – 2011-04-09 02:00:28