After Effects (AE) 記憶體不足?檢查一下發生甚麼事

Adler @ 2013-07-01


近年來電腦記憶體大小不斷攀升,價格也越來越便宜。但有時候用AE還是會突然跳出來一些莫名其妙的訊息,例如:

  1. Unable to allocate enough memory to render the current frame
  2. Unable to allocate … MB of memory
  3. Image buffers of size … exceed internal limit
  4. Memory allocation of … GB exceeds internal limits
  5. 其他莫名其妙的訊息,接著軟體強制關閉 以上訊息90%的造成原因就是因為電腦記憶體不足!關於這個問題,Adobe官方好心的提供了非常鉅細靡遺的一段說明,可以直接到官方網站上參考。不過假如真的大家這麼有耐性,英文也這麼無障礙,那真的就不用再讀這篇文章了,直接找官方解釋最有用。

廢話不多說,花了點時間整合個人經驗和多方資訊,給大家幾個檢查和排除障礙的方法。可以採取一步一步檢查的方式,假如A步驟完成以後發現恢復正常,就可以開香檳直接回AE進行作業,其他的大概看看就好。

A 清理RAM Cache

Windows設定路徑:edit > purge > all

After Effects總共使用三種暫存方式(Cache):RAM、Disk、Media,分別囤積不同的資料。此步驟可將所有在After Effects裡面使用記憶體(RAM)囤積的影格、操作步驟、垃圾全部刪掉,一切從頭開始。這時候再進行RAM Preview或render,會比較順利。

要檢查RAM Cache是不是不夠了,最簡單的方法就是進行預覽,預覽時會把處理好的影格丟到RAM Cache裡面儲存起來。假如不夠,一種是會直接開始播放,讓你會覺得有點錯愕,想說「干,不是還沒處理完嗎?」另一種方式是RAM會自動把舊的影格刪除,因此假如整段影片有300格,處理到250格時,原本已經處理好的前20格卻被吃掉了,這時候就知道是該purge一下的時候了。

B 清理Disk Cache及Media Cache

Windows設定路徑: Edit > Preferences > Media & Disk Cache

Mac設定路徑:After Effects > Preferences > Media & Disk Cache

除了RAM Cache以外,另外兩種就照下圖的位置,按下按鈕,便會清理乾淨。

Disk Cache主要是按空白鍵預覽時使用,跟按數字鍵盤上0的RAM preview不同,預覽時,AE會將處理好的影格丟到Disk Cache裡頭,之後若再進行空白鍵預覽,系統會自動判斷是要重新處理影格還是說從Disk Cache裡面抓回來比較快。哪個快,系統就會用那個方法。RAM Preview則純粹使用RAM。聽起來蠻可怕的,因為Disk Cache並不會自動清理,所以裡頭堆滿了自古到今你的電腦裡所有你曾經用空白鍵瀏覽而儲存起來的影格。沒事的話清一下吧!

Media Cache則是匯入影片時,有些格式讓AE處理起來會有點吃力,所以設計人員設計了這個玩意兒,讓例如MPEG檔轉成.mpgindex檔,讓AE可以快速讀取,這些檔案一樣會轉檔之後放在硬碟裡,沒事的話可以清理一下。不過要注意,假如A檔案有一份專門給AE讀取用的.mpegindex檔,而你正在使用A檔案,則Media Cache裡面的A檔案轉檔就不會被刪掉;必須由你手動進入Media Cache資料夾裡面去刪。

補充一下,遇到“unable to allocate enough memory to render the current frame”訊息時個人經驗還有一種狀況,就是匯入大型圖片,或是2K以上畫質的影片時,電腦有時處理過大的composition會無能為力,因此顯示這個訊息。建議用繪圖軟體或轉檔軟體將照片或影片轉成較小的規格,這樣比較讓電腦有喘息的空間

C設定多重運算

Windows設定路徑: Edit > Preferences > Memory & Multiprocessing

Mac設定路徑:After Effects > Preferences > Memory & Multiprocessing

CS4版本之設定圖

如果以上兩個方法都無法解決,那試著來調整一下運算方式。若你是64 bit作業系統,那跟著上圖的設定進入設定視窗以後,依下圖a紅框位置勾選,b和c的紅框代表的是給其他軟體使用的記憶體大小,如果你真的很單一專情的在輸出影片,就把這兩個地方的數值調低吧。

CS5以上版本之設定圖

CS5以上的版本個人認為不太會遇到記憶體的問題,但如果很不幸的遇到了,一樣可照上圖方式處理,勾選a紅框位置,b、c調低,d可以見仁見智,因為調高不一定會有夠多的核心來幫忙輸出,因此建議抓個大概就好,或是不調。

如果你使用的是32 bit的作業系統,可能會有點尷尬,因為支援的記憶體同樣最多只有4 GB,多重運算不管怎麼多重,最終還是要過記憶體這關,因此…建議找方法把作業系統換成64 bit,其他的就好談了。

多重運算的原理是電腦會使用背景資源來協助運算,也就是說,雖然After Effects CS4只能夠使用4 GB的記憶體,但背景運算仍然能夠進行。例如Windows作業系統在輸出過程中打開工作管理員,就能夠看到有許多AfterFX.exe正在跑。每一個核心都會進行各自的運算,也有各自取用記憶體的上限。

若用以上方法,可檢查在輸出時有沒有加快速度。

D更新軟體

Help > Updates

檢查更新,看有沒有更新可以加快運算速度。如果你是老老實實的剛開始使用After Effects,不管哪個版本,通常都會有更新可以使用。更新之後可以檢查看看速度有沒有變快。

E 檢查版本及記憶體

如果你是使用After Effects CS4以前的版本,速度勢必是比較慢。CS5以後的版本是以64bit運行,支援的記憶體最高可到192 GB,而CS4以前的版本只能到4GB,完全是天南地北的差距。如果行有餘力,建議直接換成CS5以上的版本最實在。

最後,如果你習慣輸出很複雜的影片,包括很多圖層、很多吃資源的特效、很多不同硬碟來的檔案、邊輸出AE還要邊玩遊戲等等,那讓電腦插著8G、12G以上的記憶體可以幫助不少。

以上五種方法供大家參考看看!希望大家的AE都跑得順暢喔!