2

我使用 QTKit 的 MyRecorder 示例,它记录了所有内容,但我的相机是 PAL 并且 PAL 和 NTSC 的 H264 编码的分辨率不同。PAL 为 724x568,NTSC 为 724x480。

当我为 H264High 选择 QT 配置文件时,默认情况下它只需要 724x480 NTSC 分辨率输出文件,但我的相机是 724x568,因此最终输出在移动对象之间有很多不需要的水平线。

我知道问题只是分辨率设置,但 QTKit 编码如此紧密,没有设置可以更改任何编码器参数。

然而,Apple 建议仅使用 QTKit 而不是早期的序列采集器方法,但我们的庞大客户群将只有 PAL 相机,我们需要一些解决方案来启用 PAL 分辨率。谁能指导我们?

4

1 回答 1

2

到目前为止,他们看起来并不是使用 QTKit 做到这一点的简单方法。

仅使用 QTKit 你有几个选择:

  1. 您可以做的是使用 将相机中的数据简单地流式传输到 Quicktime 电影中QTCompressionOptionsLosslessAnimationVideo,然后使用 QTMovie 类将文件转换为您想要的分辨率的 H.264。此选项会占用大量磁盘空间,但相当简单。

  2. 使用QTCaptureDecompressedVideoOutput而不是QTCaptureMovieFileOutput,当您调用outputVideoFrame:withSampleBuffer:fromConnection:时,将视频帧缓冲在线程安全队列中。然后在辅助线程中,从该队列中拉出帧并将帧添加到您已设置为使用 PAL 分辨率进行 H.264 编码的 QTMovie。

方法 2 将为您节省磁盘空间,但工作量更大,您将不得不担心线程问题,但在 QTCaptureMovieFileOutput 类中有更多可供我们使用的选项之前,这是您能做的最好的。

于 2009-04-23T18:00:20.443 回答