问题标签 [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.
quicktime - 我在头文件中寻找 QTAtomContainer
很多 quicktime 示例参考 QTAtomContainer 来设置电影导出参数。
我拥有远古时代的所有工作代码。现在我使用的是 xcode 4,编译器找不到 QTAtomContainer。根据 Apple 的文档,这应该在 Movie.h 中声明。但是没有 QTAtomContainer。有人知道Apple将此声明移至何处或我缺少哪个标题吗?
objective-c - 尝试 addImage:forDuration:withAttributes 时 QTMovie 越界异常索引
我正在尝试使用 QTKit 在 Cocoa 中创建电影。这部电影应该由我创建的一堆 NSImage 组成。我遇到了一些问题。总体问题是没有创建电影。我得到一个看起来是空的文件,只包含几百个字节,但没有电影可言。无论如何,代码是:
需要关注的线路是[movie addImage...
. 这是发生错误的地方。我得到以下异常:
我用谷歌搜索了很多,没有找到真正回答这个问题的东西。代码非常简单,看起来与大多数代码示例完全相同。图像加载正常,但根本没有添加。有任何想法吗?如果相关,它是一个 JPEG 图像。
objective-c - QTKit 以慢动作播放电影
我正在尝试以慢动作播放电影并将其附加到现有电影中。这是我到目前为止所做的:
这正确地将第二部电影添加到第一部电影中,但它当然不会以慢动作播放。我知道还有另一种方法insertSegmentOfMovie:fromRange:scaledToRange:
,但我不知道如何在那里设置时间范围。
任何帮助,将不胜感激
更新:我可以使用以下代码添加慢动作:
这会以慢动作正确播放视频,但不会以慢动作保存第二个视频的音频。即第二个视频是慢动作,但它的音频不是!
更新 2:
需要明确的是,如果我尝试立即从我的可可应用程序在快速播放器中播放 originalVideo,则第二个视频的音频确实以慢动作播放。只有保存的文件的音频不同步。
我发布完整的代码以防万一:
更新 3:
如果我用 quicktime 以外的程序打开最终文件,比如 vlc,视频会在第一个视频的结尾停止播放(动作应该开始的地方),但音频会继续播放到最后。
更新 4:
如果我使用[originalMovie writeToFile:withAttributes]
并指定一个新位置,一切都会按预期工作。只有当我尝试覆盖一个文件时,我才会遇到各种问题。
objective-c - 通过 url 播放音乐
我想通过 url 播放来自互联网的音乐。我创建了一个简单的项目,它有一个带有以下代码的按钮:
它可以工作但有一些延迟(我认为是因为它在文件完全下载时等待)。
那么我需要做什么才能让音乐立即开始播放(例如,当下载了 10% 的文件时)?
objective-c - 下一个/上一个曲目按钮操作
我有一个 NSTableView(歌曲的 URL)和 QTMovieView 元素。我需要创建一个在按下 QTMovieView 上的上一个/下一个按钮时执行的操作。我需要做什么?
objective-c - 可可在视频末尾添加图像
我正在使用 QTCaptureSession 从 iSight 摄像头录制视频。
我想在视频末尾添加一张图片,所以我实现了 didFinishRecordingToOutputFileAtURL 委托方法。这是我到目前为止所做的:
这段代码的问题在于,虽然 quicktime 玩得很好,但其他玩家却不行。我确定我在这里遗漏了一些基本的东西。
在保存之前将图像添加到视频中也很酷(避免两次)。以下是我现在停止录制的方法:
objective-c - 使用 QTMovie 确定流的实际帧速率
我将 QTMovie 与 一起使用QTMovieOpenForPlaybackAttribute:YES
,并使用 QTMovieView 来显示它。我需要计算它达到的帧速率。
我能想到的一种方法是在每次帧即将显示或准备显示时调用一个回调 - 有人熟悉这样的回调吗?
另一种方法是有一个计时器,它使用 -currentFrameImage 并将其与它测试的最后一帧图像进行比较 - 但是首先我不知道你将如何比较两个 NSImage,其次我想如果两个连续帧是相同的,它会有效地假设一个帧在没有被丢弃时被丢弃
我能想到的最后一种方法是再次使用计时器,这次调用 -currentTime。我试过这个,但是,由于某种原因,timeScale 设置为 1000000000。我读到时间刻度应该是 100*fps,那么,为什么 currentTime 返回 FPS 是 10000000?这似乎完全不正确。返回的 QTTime 中没有设置任何标志。
我到处搜索这方面的信息 - 任何与帧速率有关的搜索只会让我知道如何在捕获时设置帧速率,这不是我想要的。
c - 使用 QTKit 进行 QT 电影元数据标记
我正在尝试使用 QTKit 对一些视频文件进行一些元数据标记。我已经解决了标记以字符串为值的原子的问题,但很难设置以 8 位整数作为参数的原子。以下是我现在从 Apple 的文档和互联网上其他各种来源获得的信息:
所以原子“stik”在 iTunes 中设置了视频的类型。如果我想将视频指定为电视节目,我需要为其分配一个值 10。如果我将 @"10" 发送到此方法,我不会收到任何错误,但视频文件也没有正确标记.
我确定我的部分问题是我跳过了学习 C 并直接进入了 Objective C,所以当我不得不像这样深入研究 C 时,我遇到了问题。
cocoa - 在不使用 QuickTime API 的情况下,将视频帧录制到电影中的 10.6 兼容方法是什么?
我正在更新一个应用程序以兼容 64 位,但我的电影录制代码有点困难。我们有一个 FireWire 相机,它将 YUV 帧输入我们的应用程序,我们在 MPEG4 电影中对其进行处理和编码到磁盘。目前,我们正在使用基于 C 的 QuickTime API 来执行此操作(使用 Image Compression Manager 等),但旧的 QuickTime API 不支持 64 位。
我的第一次尝试是使用 QTKit 的 QTMovie 并使用 对单个帧进行编码-addImage:forDuration:withAttributes:
,但这需要为每个帧创建一个 NSImage (这在计算上是昂贵的)并且它不进行时间压缩,因此它不会生成最紧凑的文件。
我想使用 QTKit Capture 的 QTCaptureMovieFileOutput 之类的东西,但我不知道如何将原始帧输入到与 QTCaptureInput 无关的帧中。我们不能直接将我们的相机与 QTKit Capture 一起使用,因为我们需要手动控制它的增益、曝光等。
在 Lion 上,我们现在在 AVFoundation 中拥有 AVAssetWriter 类,它可以让您执行此操作,但我仍然必须暂时以 Snow Leopard 为目标,因此我正在尝试找到一个同样适用的解决方案。
因此,有没有一种方法可以比 QTMovie 更有效地对视频进行非 QuickTime 逐帧录制,-addImage:forDuration:withAttributes:
并产生与旧版 QuickTime API 相当的文件大小?
cocoa - 如何在 XCode 4 中为 QTKit 设置文档类型?
我希望你能在这里帮助我解决我的小问题。
我刚从 Cocoa 和 XCode 4 开始,我正在学习一堆教程。我在 Apple 网站上有一个名为“QTKit Application Tutorial”的教程(可以在这里找到http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/QTKitApplicationTutorial/BuildingaSimpleMediaPlayerApplication/BuildingaSimpleMediaPlayerApplication.html)
问题是这个 tut 涵盖了 XCode 3.2,我在 XCode 4 中找不到相应的设置。我有我的 QT 播放器,我需要告诉它它可以打开哪些格式和扩展。
在 XCode 3 中,这是通过 tut 中描述的一些参数完成的。你们能告诉我在哪里可以找到 XC 4 中的这些设置吗?
非常感谢任何帮助,
最好的,
弗洛