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