我使用了QTKit的MyRecorder示例,它记录了所有内容,但我的问题是我的相机是PAL而PAL和NTSC的H264编码分辨率不同。 PAL为724x568,NTSC为724x480。
当我为H264High选择QT配置文件时,它默认只有724x480 NTSC分辨率输出文件,但我的相机是724x568,所以最终输出在移动物体之间有很多不需要的水平线。
我知道问题只是分辨率设置,但QTKit的编码非常紧密,没有任何设置可以更改任何编码器参数。
然而,苹果建议仅使用QTKit而不是早期的序列捕获器方法,但我们的大客户群只有PAL摄像头,我们需要一些解决方案来启用PAL分辨率。任何人都可以指导我们吗?
答案 0 :(得分:2)
截至目前,使用QTKit看起来并不是一个简单的方法。
仅使用QTKit,您有几个选择:
您可以使用QTCompressionOptionsLosslessAnimationVideo
简单地将数据从相机传输到Quicktime影片,然后使用QTMovie类以您想要的分辨率将文件转换为H.264。此选项占用了大量磁盘空间,但相当简单。
使用QTCaptureDecompressedVideoOutput代替QTCaptureMovieFileOutput
,当您接到outputVideoFrame:withSampleBuffer:fromConnection:的呼叫时,将视频帧缓冲在线程安全队列中。然后在辅助线程中,从此队列中拉出并将帧添加到您为PAL分辨率设置的H.264编码的QTMovie。
方法2将为您节省磁盘空间,但需要更多工作,您将不得不担心线程问题,但在QTCaptureMovieFileOutput类中有更多选项供您使用,这是您可以做的最好的选择。