7

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

我现在要使用 Mac 来处理相机、网络摄像头、麦克风、色彩空间、文件、拆分、同步、渲染、文件读取、文件保存以及许多我认为 DirecShow 理所当然的事情将应用程序放在一起进行现场表演时。在 Mac 方面,到目前为止,我发现......什么都没有!要么我不知道去哪里找,要么我很难将 Mac 因其易于处理媒体的声誉与连贯的编程能力联系起来,并开始使用媒体操作构建块。

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

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

4

1 回答 1

10

目前,视频处理在 Mac 上正在经历巨大的转变。QuickTime 已经很老了,但也很强大,所以在过去 5 年左右的时间里,它一直在经历一个渐进式的替换过程。

也就是说,QTKit是 QuickTime 的子集(捕获、播放、格式转换和基本视频编辑),它将被支持。遗留的 QuickTime API 目前仍然存在,并且可能至少会保留到它的主要功能在其他地方可用,但只是 32 位。对于一些涉及的视频内容,您可能最终需要在某些地方使用它。

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

对于音频,有 Mac 和 iOS 上的 Core Audio,并且不会很快消失。它非常强大,但有些地方有些迟钝。幸运的是在线支持非常好;邮件列表是必不可少的资源。

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

除了所有这些,当然你没有理由不能使用开源库,因为内置的东西不能满足你的需求。


要在下面解决您的评论:

在 QuickTime(和 QTKit)中,音频和视频等单独的数据类型表示为轨道。QuickTime 是否可以打开音频和视频文件格式可能不是很清楚。结合音频和视频的常见方法是:

  1. QTMovie使用您的视频文件创建一个。
  2. QTMovie使用您的音频文件创建一个。
  3. 获取QTTrack代表音频的对象并将其添加到其中QTMovie包含视频的对象中。
  4. 展平电影,因此它不仅包含对另一部电影的引用,而且实际上包含音频数据。
  5. 将电影写入磁盘。

这是 Blender 的一个例子。您将看到 A/V 多路复用是如何在该end_qt函数中完成的。那里也有一些使用 Core Audio ( AudioConverter*)。(有一些经典的 QuickTime 导出代码,quicktime_export.c但它似乎不做音频。)

于 2011-04-08T20:39:21.487 回答