2009-04-13 259 views

回答

8

請參閱OpenGLCaptureToMovie樣本。我想補充一點,你應該使用Quartz Display Services' refresh-notification APIs而不是定時器。

請注意,OpenGL示例不會生成NSImage對象。這樣做沒有意義,因爲你不能將它們放入電影中。那麼,我想你可以在指定的幀時間分配一個NSImage,但我不知道如何使用壓縮。

說到壓縮,請使用最高質量的動畫編解碼器進行錄製。這提供了足夠的體面壓縮,不會壓倒磁盤,並且肯定不會壓倒處理器。然後,您可以提供轉換選項,例如H.264,iPhone for iPhone和iPod for H.264。您還應該允許用戶保留原始文件;一些網站,如Vimeo,將接受它並允許訪問者下載它。

+2

舊的回答是舊的。今天,我會使用CGWindowList API來進行捕獲,並且只有在CGWindowList證明速度太慢時才切換到OpenGL。 – 2011-07-15 02:26:03