我家也有 Cluster
跟 Adobe 的 Premiere Pro 比起來, Sony Vegas Pro 在剪接時的即時預覽已經極為令人激賞了. 我用 E6300 1.86GHz 的 Core 2 Duo, 原始素材是 1080i 的 AVCHD, 在一軌視訊加上四軌聲音 (AC-3 5.1 用掉三軌, BGM 再一軌), 再加上一軌字幕的組合下, 居然可以用一秒十幾張的速度即時預覽, 這是以前用 Premiere 時想都不敢想的事.
不過, 剪接時的反應雖快, 到了要 render 時, 還是得乖乖花工夫下去算. AVCHD 真的是很複雜的編碼, 尤其是 AVC 的 main profile 引入了新的 CABAC entropy coding 方法後, 計算複雜度更是大大提高.
目前在我的機器上, 用 Vegas Pro 將剪好的影片 render 成包在 MPEG2 TS 裡的 AVCHD/AC3 格式, 大概要一比十左右的時間, 也就是說一分鐘的影片, 大概要花十分鐘去 render.
這個速度雖不令人滿意, 但尚在可接受的範圍. 不過, 因為我大部份剪的東西都是短片, 所以我特別用 Vegas 的 scripting 功能寫了一個可以做 batch rendering 的小程式, 讓我可以在睡覺前把要 render 的東西都準備好, 把電腦開下去算, 第二天早上起床時就可以驗收滿滿一大堆的 .m2ts 檔.
但是, 你知道的, 用 Windows 哪有不當機的道理, 我在以前的文章裡就提到過, 最氣人的狀況就是, 十二點整開下去算, 然後就去睡覺, 結果第二天早上起來發現它十二點十分就當掉了, 後面什麼事情也沒做. 我最近就遇到一個很奇怪的 case, 怎麼算怎麼當, 但每次當的地方又都不一樣, 實在很頭痛.
為此, 我決定來試試 Vegas Pro 的 network rendering 功能.
在 Vegas 的 Render as 設定中, 有這麼一個選項:
Render using networked computers, 聽起來真誘人啊, 它可以把工作用網路交給其它電腦幫忙算耶.
花了一點時間研究一下這個功能, 原來它可以在電腦上跑一個叫 Vegas Network Render Service 的程式, 然後由發起的電腦將要 render 的 project, 切成大小相等的小片斷, 用網路芳鄰分享出去讓遠端電腦去算, 最後再由發起的電腦把算好的一段一段的 video 接起來, 變回一個大檔.
它預設的切割大小是 150 frames, 也就是 5 秒的影像. 我很好奇, 切這麼碎, 最後要再拼起來的 overhead 不會很大嗎 ?
無論如何, 我決定來試試著個功能. 把老婆的新桌機 (就是那台會飛的 VAIO 啦) 拉過來, 不騙你, 真的是拉過來:
這樣比較容易一次操作兩台電腦.
就在主控電腦開始 render 後幾秒鐘, 老婆的電腦也收到了任務, 開始 render. 後來我一不做二不休, 把 notebook 也拿出來加入戰局. 不過因為跑 network render 要至少 100Mbps 的網路, 如果是 AVCHD 的話, Sony 建議要用 Gigebit Ethernet, 所以我得把 notebook 的無線網路關掉, 再找個地方給它插有線的網路.
書房只有兩個 port, 我又不想用 100Mbps 的 switch, 所以就變成這樣:
可憐的 notebook 就蹲在客廳的沙發上, 跟書房電腦遙遙相望, 努力地幫忙計算著.
***
全部算完後, 我發現一個很奇怪的現像: 遠端電腦花在計算的時間似乎不多, 但是在載入任務和結束任務上卻花了很長的時間, 但這些時間的 CPU loading 卻很低. 我懷疑是主控電腦自己算得太爽了, CPU 沒有時間去處理網路芳鄰的 request, 所以 file I/O 的效率太低, 導致遠端電腦拿不到任務.
我算了一個 project, 被主控電腦切成 78 個 clips, 主控電腦自己算了 58 個, 老婆的 LM26T 算了 12 個, 中途加入戰局的 SZ57TN 只算了 8 個, 跟它們的計算能力完全不成比例. 一定還有什麼地方有問題, 還要繼續研究. 也許, 下次找台機器當專用的 file server 試試.
老婆的 notebook 是 TX26TP, 只有 Pentium Mobile 1.1GHz, 就不用虐待它了. 倒是客廳的 TP1T 是 Core 2 Duo T5500, 下次可以讓它參加戰局試試.
您好:
請問一下,我一直想用
scripting 功能寫了一個可以做 batch rendering 的小程式,
不知,你可以給我你的scripting?
謝謝您。