问题标签 [qtkit]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
cocoa - 如何使用 Cocoa 执行音频文件分析?
我的目标是对音频文件(mp3)进行分析(如 DFT)。
然后 :
- 我的输入是一个文件
- 我的输出是一种治疗
我想使用 QTKit 框架来执行此操作,但我有点失望:
- QTMovie 能够打开文件,但我看不到自己可以访问解压缩的音频缓冲区
- QTSampleBuffer 可以用 QTCaptureDecompressedAudioOutput 处理,但我不知道如何打开文件(唯一的输入似乎是 QTCaptureDeviceInput)
有没有办法用 QTKit 做我想做的事情,或者我应该使用 Core Audio(或其他),这会更困难(我更喜欢 Objective-C 而不是 C 或 C++)?
(实际上我没有代码,我只是想找到好方法,并且在我第一次使用声音时...)
cocoa - 通过互联网从 QTMovie 发送音频
我有一个简单的音频播放应用程序,它使用 QTMovie 来实现它的一些功能。我还在开发一个支持以太网的小板来传输 MP3 或 PCM 数据。
有什么方法可以“抓取”QTMovie 输出的内容,将其格式化为字节数组并通过以太网发送到特定 IP?不知何故,iTunes 设法通过 AirPlay 做到这一点,所以有某种方法可以做到这一点。
感谢您的任何回答!
cocoa - QTKit,为实时流媒体捕获视频
我正在尝试为 Mac 创建一个可以创建实时视频流的应用程序。我知道 VLC 和其他解决方案,但仍然。
为此,我正在尝试使用 QTKit 从 iSight 录制视频,并将其连续保存为一系列微小的视频文件。但是,记录结果不是很连续,文件之间存在间隙。
基本上,我只是设置了一个计时器,它以特定的时间间隔开始录制到新文件,从而停止旧录制。我还尝试设置最大记录长度,并使用委托方法 ...didFinishRecording... 和 ...willFinishRecording...,但结果相同(我无法真正估计这些情况下的间隙之间的差异)。
请帮助我,如果你知道这些事情应该怎么做。
这是我当前的代码:
objective-c - QTMovie addImage:forDuration:withAttributes: QuickTime Player X 无法播放
我有一个 mov 文件,我正在修改它,方法是在电影的开头添加一个带有图像的轨道(使用 QTMovie 的 -addImage 方法)。当我展平这样的电影时(使用 QTMovie 的 -writeToFile: 方法),我得到另一个 .mov 文件,开头带有这个“水印”。但是当我尝试播放它时,我最终得到一条消息,即需要安装 QuickTime 7 才能播放这样的文件(原始未处理的 mov 文件不需要 QuickTime Player 7,并且可以在 QT Player 中正常播放X 附带雪豹和狮子)。
我想知道是否可以让这个文件能够在 QuickTime Player X 上播放?我不希望我的应用程序的用户必须安装这个旧版本的播放器。此外,Final Cut Pro 7、Telestream Episode Engine 编码器、Autodesk Smoke 等一些应用程序在添加图像轨道后无法正确理解这种“文件格式”。
是否可以以某种方式将图像添加为电影轨道,而不是图像轨道?也许使用旧的 QT API?(无论如何,QTKit 似乎仍然是原始的)。
我将“mpv4”指定为图像编码器(在 -addImage 方法中),但该水印图像仍然不被视为电影轨道,而是被视为使用电影编码器编码的图像轨道。
谢谢!
macos - NSBitmapImageRep 转 RGB 效率高
我正在为 10.5+ 开发我的第一个 mac osx cocoa 应用程序,其中我有一个 CVImageBufferRef(使用 QTKit 捕获),我需要通过 TCP 套接字将此图像传输到客户端应用程序。客户端应用程序需要 RGB 值。所以这就是我目前正在做的事情(我目前的解决方案根据需要工作,但使用大量 CPU)
CVImageBufferRef --> NSBitmapImageRep --> NSData --> 然后通过 TCP Socket 将 NSData 传输到客户端应用程序,在客户端我有以下代码来获取 RGB:
如果 CVImageBufferRef 可以转换为一个完美的 RGB 值数组,否则我需要一个有效的解决方案将 NSBitmapImageRep 转换为 RGB 值。
objective-c - 为 Quartz 创建可选择的视频输入补丁:Muxed Inputs 失败
我正在尝试为 Quartz Composer 创建一个自定义补丁,它的功能就像视频输入补丁一样,但在输入端口上有一个可选的捕获设备。这是一个小补丁,对我来说看起来不错,但是当我连接 DV 设备(Canopus ADVC-110)并选择它时,ColorSpace 为(null),我得到了一个异常。它适用于 FaceTime 高清摄像头,这是一种视频媒体类型。我一定错过了什么,但我就是看不到它。
委托函数 captureOutput 一遍又一遍地触发,就像有新帧进入一样,并且捕获似乎开始正常。我错过了什么?
objective-c - 如何以编程方式将 QuickTime 电影通过管道传输到 Quartz Composer 输入?
我正在开发一个将 Quartz Composer 效果应用于 QuickTime 电影的应用程序。想想 Photo Booth,除了输入的 QuickTime 电影,而不是相机。目前,我正在加载一个快速电影作为QTMovie
对象,然后NSTimer
每秒触发 30 次。在某个时候,我会切换到CVDisplayLink
,但NSTimer
现在还可以。每次NSTimer
触发时,应用程序都会抓取快速电影的一帧作为 anNSImage
并将其传递给QCRenderer
的图像输入之一。这有效,但速度极慢。我已经尝试以所有[QTMovie frameImageAtTime:withAttributes:error:]
支持的格式从电影中提取帧。它们要么真的很慢,要么根本不工作。
我假设缓慢是由于将图像数据移动到主内存,然后将其移回 QC 处理它造成的。
不幸的是,对于这个项目来说,使用 QC 的 QuickTime 电影补丁是不可能的,因为我需要比提供的更多的电影播放控制。所以问题是,如何在不离开 VRAM 的情况下将 QuickTime 电影图像移动到 QCRenderer 中?
objective-c - QTCaptureDecompressedVideoOutput with FireWire
我正在尝试为 Quartz Composer 创建一个从 FireWire 输入捕获的自定义补丁。我可以打开设备并成功添加输入。我什至根据 QTKit 文档禁用了音频输入。我怀疑我的问题是添加输出(尽管它添加没有错误)。每次框架运行时,它都会在 imageBuffer 为空时崩溃。它没有维度或任何东西。我正在使用文档中的标准 captureOutput:didOutputVideoFrame:withSampleBuffer:fromConnection 。
我可能做错了什么?此代码适用于仅视频输入,但不适用于 FireWire(多路复用)输入。
cocoa - 使用外部视频硬件 - 初学者需要指导
我这里有一个小应用程序,它使用 QTKit 处理 QuickTime 视频。这是我的第一个 Cocoa 应用程序,所以我对 OS X 编程还是很陌生。
由于主要工作现在正在工作,我想知道如何使用和支持外部视频硬件?我只是不知道如何开始,因为我以前从未使用过外部硬件。
所以,如果在运行程序的机器上安装了 BlackMagic 卡,我怎么知道这一点,我怎么可能在这张卡上播放我的 QuickTime 电影,而不是在计算机显示器上播放 QTMovieView?
如果有人能给我指个方向,我会很高兴!非常感谢你。
macos - QTMovie addImage 性能
我正在处理桌面视频捕获。我实现了截图抓取,它工作得很快。然后我通过 addImage:forDuration:withAttributes: 将每个屏幕截图添加到 QTMovie:但它的运行速度非常慢,所以当我尝试创建全屏捕获(例如 1920x1080)时,我只有 1.2 fps。我试图在主线程上收集屏幕截图并在其他线程上处理它们(添加到 QTMovie),我的内存消耗增长非常快(检索到的屏幕截图未压缩)。有任何想法吗?谢谢。