Objective c QTKit PAL模式

Objective c QTKit PAL模式,objective-c,macos,quicktime,qtkit,Objective C,Macos,Quicktime,Qtkit,我使用了QTKit的MyRecorder示例,它记录了所有内容,但我有一个问题,我的相机是PAL,PAL和NTSC的H264编码分辨率不同。PAL为724x568,NTSC为724x480 当我为H264High选择QT Profile时,默认情况下只需要724x480 NTSC分辨率输出文件,但我的相机是724x568,因此最终输出在移动对象之间有许多不需要的水平线 我知道问题只在于分辨率设置,但QTKit的编码非常紧密,没有设置来更改任何编码器参数 然而,苹果公司建议只使用QTKit而不是早

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

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

我知道问题只在于分辨率设置,但QTKit的编码非常紧密,没有设置来更改任何编码器参数


然而,苹果公司建议只使用QTKit而不是早期的序列抓取器方法,但我们庞大的客户群将只有PAL摄像机,我们需要一些解决方案来实现PAL分辨率。有人能给我们指点迷津吗?

到目前为止,使用QTKit来实现这一目标似乎并不容易

仅使用QTKit,您有两个选项:

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

  • 使用而不是
    QTCaptureMovieFileOutput
    ,当您接到对的调用时,将视频帧缓冲在线程安全队列中。然后在第二个线程中,从该队列中提取帧并将其添加到已设置为使用PAL分辨率进行H.264编码的QTMovie中


  • 方法2将为您节省磁盘空间,但需要更多的工作,而且您必须担心线程问题,但在QTCaptureMovieFileOutput类中有更多选项可用之前,这是您所能做的最好的选择。

    谢谢,我不能使用第一个选项,因为它会花费太多的时间,首先保存,然后从磁盘读取,并重新转换到h264需要更长的时间比录制的视频。我们尝试了这个选项,结果是我们录制了5分钟的视频,在h264中重新转换需要6分钟,依此类推,如果我们有100个5分钟的视频,它需要的时间太长,我想探索第二个选项,你能给我或指导我的代码示例,我是iMac开发的新手。