2009-04-23 52 views
2

我使用了QTKit的MyRecorder示例,它記錄了一切,但我有一個問題,即我的相機是PAL,PAL和NTSC的H264編碼分辨率不同。 PAL是724x568,NTSC是724x480。QTKit PAL模式

當我選擇H264High的QT Profile時,它默認只輸出724x480 NTSC分辨率的輸出文件,但是我的相機是724x568,所以最終輸出在移動物體之間有很多不需要的水平線。

我知道問題只是分辨率設置,但QTKit編碼非常緊密,沒有設置可以更改任何編碼器參數。

但是,蘋果建議只使用QTKit,而不是早期的序列採集卡方法,但是我們龐大的客戶羣將只有PAL攝像頭,我們需要一些解決方案來啓用PAL分辨率。誰能指導我們?

回答

2

它看起來並不像他們是一個簡單的方法來做到這一點與QTKit截至目前。

只使用QTKit你有兩個選擇:

  1. 你可以做的是簡單的流使用QTCompressionOptionsLosslessAnimationVideo從相機中的數據導入到QuickTime電影,然後將文件轉換爲H.264在您希望使用QTMovie類的分辨率。這個選項佔用了大量的磁盤空間,但相當簡單。

  2. 使用QTCaptureDecompressedVideoOutput而不是QTCaptureMovieFileOutput,並且當您撥打outputVideoFrame:withSampleBuffer:fromConnection:時,將視頻幀緩存在線程安全隊列中。然後在輔助線程中,從此隊列中拉出並將幀添加到您爲PAL編碼分辨率設置爲H.264編碼的QTMovie。

方法2將節省磁盤空間,但更多的工作,你會擔心線程的擔憂,但直到有在QTCaptureMovieFileOutput類,它是最好的更多的選擇給我們你可以做。

+0

謝謝,我不能使用第一個選項,因爲它會花費太多的時間來首先保存,然後從磁盤讀取,並重新轉換到h264需要更長的時間,然後錄製的視頻。我們嘗試了這個選項,事實證明我們錄製5分鐘的視頻,在h264中重新轉換花費6分鐘,等等,如果我們有100分鐘的視頻5分鐘,它需要太長時間,我想探索第二個選項,你能給我或引導我的代碼示例,我是新的iMac開發。 – 2009-04-24 09:03:50