【发布时间】:2011-10-05 16:40:18
【问题描述】:
我发现很难确定如何从 QuickTime 电影中提取以下信息,无论是使用 QTKit 还是 OS X 中针对 10.5+ 的旧版 QuickTime API:
- 使用的视频和音频编解码器(例如“H.264”)
- 视频和音频比特率(例如 64 kbps)
- 尺寸
我遇到的具体问题是:
1) 我发现的视频和音频编解码器名称的唯一方法是使用 ImageDescriptionHandle 和 SoundDescriptionHandle,这两种方法似乎都需要 Carbon-only 方法 NewHandleClear 和 DisposeHandle ,以及需要仅 32 位的 Media 对象。有没有更现代的方法不需要 Carbon 框架并且兼容 64 位?
2) 对于比特率,我得到 GetMediaDataSizeTime64 并除以轨道持续时间(以秒为单位)。但是,在一个音轨的情况下,该方法返回 128 kbps 的值,但使用音轨媒体和 kQTAudioPropertyID_FormatString 参数调用 QTSoundDescriptionGetProperty 会返回一串“64 kbps”。为什么这两个值会不同?有没有更好的方法来计算音轨的比特率?
3) [QTMovie movieAttributes] objectForKey:QTMovieNaturalSizeAttribute] 或 [QTTrack attributeForKey:QTTrackDimensionsAttribute] 返回的尺寸对于一部特定电影不正确。返回的大小为 720 x 480,但 QuickTime Player 中的实际视图大小为 640 x 480。播放器的信息窗口显示大小字符串“720 x 480 (640 x 480)”。有没有更好的方法来确定电影的实际尺寸?
提前致谢!
【问题讨论】:
标签: cocoa quicktime macos-carbon qtkit