[分享] 《吉米教你看》外掛eGPU甚至AMD高檔顯卡對於FCP X輸出效果的幫助(最終回) - 第2頁 - iPhone4.TW

會員登入



第2頁,共3頁 第一第一 123 最後最後
顯示結果從 11 到 20 共計 30 條
  1. #11
    吉米丘 的頭像

    勸敗大魔王

    註冊日期:09-20-2007
    文章:50,610
    謝謝你: 9,955
    在 6,546篇文章中獲得 48,167個感謝


  2. #12

    新生報到

    註冊日期:03-14-2012
    文章:11
    謝謝你: 2
    在 4篇文章中獲得 7個感謝
    因為工作的關係,本身常常接觸這類的應用開發,所以想來解釋一下可能的原因,以及一些在選擇剪輯工作站時的硬體迷思

    首先從 GPU 說起,下面這張圖是 AMD RDNA GPU 的晶片架構圖:


    這張圖如果換成 NVIDIA 或 Intel 的內顯,都是差不多的架構。

    簡單來說,一般 GPU 運算(跑 3D 視覺輔助、遊戲)的區塊為 Shader Engine,影片編解碼區域則為圖中的 Multimedia Engine,可以看到 Multimedia Engine 是個獨立的區塊,也就是說在晶片中它是有一塊區域是專門給硬體編解碼的,在做影片編碼時就只有它在工作,其他區域則是閒置的狀態(除非影片素材為 ProRes 或 RED Raw 這類的格式,這類格式會使用部分 Shader Engine 做為輔助 CPU 來解碼影片)。

    同一系列最高階的 GPU 會包含 Shader Engine 與 Multimedia Engine 的全部區域,中階的 GPU 則是會屏蔽或移除部分 Shader Engine 的運算單元,只有到入門級別的型號才會把 Multimedia Engine 拿掉。這也能解釋為什麼 Apple 通常沒有搭載高階 GPU,因為對於自家的 Pro Apps 來說,除非把 Apple Motion 當成 Blackmagic Fusion 或 The Foundry Nuke 這種規模的軟體在用,不然絕大部分的時候 Shader Engine 是夠用的,Multimedia Engine 也和高階 GPU 是一樣的。

    所以當然,插上 RX5700XT 這張神卡對於沒有太多特效的影片輸出來說並沒有太多差別,但是玩遊戲卻差非常多。這跟 Apple 沒什麼關係,換成 Windows 也會是一樣的現象,對於只是想要拍拍 Vlog 等以純粹剪輯為主的朋友想組一台剪輯用 PC 的朋友也可以參考一下,買神卡是不會幫你省到輸出時間的。

    至於為什麼 2018 的 Mac 輸出影片沒有比 2014 的快,是因為那幾年不管是 Intel 還是 AMD 都沒什麼更新 Multimedia Engine 那個區塊的設計,當然不會比較快囉(AMD 的甚至還縮水勒)

    ---

    再來解釋一下為什麼黑蘋果換 CPU 或調整成 MacPro6,1 到 MacPro7,1 字串會有奇怪的影片輸出時間差距

    FCP X 是 Apple 的招牌軟體,Apple 理論上不會故意去限制你使用的是什麼硬體,包括黑蘋果,除非他們想搞砸對於未來 Mac 產品的相容性。

    關鍵在 FCP X 底下的 AVFoundation Framework。現代的作業系統通常不會讓程式直接去控制硬體,而是會有一個中間的框架來讓程式呼叫,這麼做是為了方便軟體開發,而 Apple 為影片編解碼這件工作設計了這個框架。

    上面有提到,各家的 GPU 裡面都有包含影片編解碼的專用區塊,那如果是 Intel GPU + AMD GPU 這樣的組合呢?要如何選擇一個最快的途徑?所以 AVFoundation Framework 利用 Mac 的型號來判斷該使用哪邊的 GPU 來輸出影片,對於黑蘋果就沒辦法給出最好的輸出方式了,例如換了個 i9-9900KS,假如沒有 Mac 產品使用到這顆 CPU,那麼它就會給出一個奇怪的輸出途徑,也就會造成明明應該使用到的硬體卻沒被使用的情況了。上述利用 Mac 型號來判斷的地方 Apple 還有在其他框架使用到,例如判斷 CPU 或 GPU 的驅動頻率跟功耗限制,使用 MacPro6,1 字串時 GPU 就不會像 MacPro7,1 那樣可以有更高的使用率,這是因為垃圾桶 Mac 的散熱設計不允許這麼大的功耗輸出。

    但是換成 Windows 通常卻不會有這個問題,不是因為微軟沒有這樣做,而是 AMD、NVIDIA、Intel 又各自設計了自己的框架,所以程式必須在這幾種框架中選一個或多個使用,至於怎麼判斷?通常是會有個選項讓使用者可以指定,因為硬體組合這麼多,再怎麼自動偵測都會有判斷錯誤的時候。(當然有些比較機車的軟體就會在使用說明告訴你它只支援某家的 GPU)
    此篇文章於 06-26-2020 04:26 被 cbs_ghost 編輯。 原因: 刪除贅字



  3. #13
    吉米丘 的頭像

    勸敗大魔王

    註冊日期:09-20-2007
    文章:50,610
    謝謝你: 9,955
    在 6,546篇文章中獲得 48,167個感謝
    引用 作者: cbs_ghost 查看文章
    因為工作的關係,本身常常接觸這類的應用開發,所以想來解釋一下可能的原因,以及一些在選擇剪輯工作站時的硬體迷思
    謝謝你的分享

    這樣一來我就比較了解為什麼會有這樣的結果

    接著可以跟你請教一下,以我們這種用民用器材如GoPro、無反相機拍的影片,在剪輯與輸出上,有沒有什麼硬體選擇的建議呢?

    畢竟我們不像國外YouTuber收入豐富,都可以用夢幻RED或是其他直接錄製ProRes RAW檔的設備

    照上面你的說法這部份這些年來似乎沒有太多的進化(淚)


  4. #14

    新生報到

    註冊日期:03-14-2012
    文章:11
    謝謝你: 2
    在 4篇文章中獲得 7個感謝
    民用器材反而支援是比較好的,目前 GPU 的硬體解碼都只有民用 (H.264, HEVC) 的格式,反而在專業的影片格式上沒有太多支援,Apple 也因為如此才推出了支援 ProRes 硬體解碼的 AfterBurner 加速卡。

    在建議硬體前,先從軟體講起。如果以一般剪輯為主,不加太多圖層的話,幾乎都是卡在輸出時的視訊編碼上,之前提到的 GPU 硬體編碼功能其實很多剪輯軟體是盡量不使用的,原因是輸出的畫質沒有達到該有的水準,因此多使用 CPU 來輸出影片。GPU 硬體編碼的主要是針對直播串流,這類應用通常畫質不是第一考量,但一般影片就不一樣了,觀看者有可能中間暫停,對畫面品質就會比較要求。那如果今天要輸出的影片不需要什麼太高的畫質,趕時間比較重要呢?在 4K 影片越來越普及的情況下,這個需求也隨之增加,製造 GPU 的廠商也慢慢開始改進編碼出來的畫質,因此 Adobe Premiere Pro 在今年也正式加入了對 NVIDIA 卡的硬體編碼支援了(不過只有 Windows 啦,畢竟 Apple 早就沒在用 NVIDIA 的卡了,而且要 GTX 1650 Super 以上的卡畫質才算可接受。這個東西其實好幾年前就一直存在 NVIDIA 自己的開發工具裡面了,但要自己用 Visual Studio 編譯原始碼後才能使用,一般人應該看不懂這句在說什麼XD),其他的像是 Davinci Resolve Studio (注意,有多一個 Studio) 跟 FCP X 也是有慢慢導入。

    所以這裡我建議的方向,並不會以輸出時間為首要目標,而是在影片畫質有一定程度的前提下,能夠以比純 CPU 輸出影片更快為目的。
    (吉米船長的比較表沒有把輸出的畫面品質做比較,像是把它們的 PSNR 列出來,我覺得有這個必要,好與壞差很多)

    回到硬體上面,首現我們得先排除 AMD 的 GPU (它的輸出品質是三家中最差的),我找了一張對岸做的比較表
    https://zhuanlan.zhihu.com/p/78829414

    以 H.264 編碼品質來說,NVIDIA NVENC (Turing) > Intel QSV (3rd gen or above) > NVIDIA NVENC (Pascal or below) > AMD VCN/VCE

    單純影篇剪輯的話,GPU 選擇 GTX 1650 Super 是個不錯的選擇,可以搭配 Adobe Premiere Pro 或 Davinci Resolve Studio,其中 Premiere Pro 需要比較多的 CPU 資源,剩下的預算可以升級 CPU 成比較多核心的;Davinci Resolve Studio 比較注重 GPU,則可以換成更高階的。如果常常需要輸出長片的話(例如輸出超過半小時的影片),建議選擇 Quadro RTX4000 或以上的 GPU。以上僅適用於 Windows 或 Linux。

    Mac 的話只能退而求其次,選擇視訊輸出品質第二的 Intel GPU 輸出,理論上...2014年以後的Mac輸出時間與畫質都差不多,以目前 Intel 跟 AMD 的研發進度看來只能期待 Apple 換成自家 SoC 後能端出牛肉了。

    ---

    接下來是預算比較多且需要跟 Mac 工作流結合的情況下能做到的部分:輸出跟剪輯分開主機工作。

    首先設定好一台 NAS,讓每台主機都能夠連上專案及素材所在的目錄。再來,有幾種不同的方法:

    1. 在 Mac 上製作完成後,將專案丟給有 NVIDIA Turing GPU 的主機輸出,使用這種方式的話 FCP X 就比較可惜,Apple 已經把交給 Linux 主機輸出的功能在推出 X 版時整個拿掉了。能夠使用的有 Premiere Pro(輸出主機使用 Windows,要特別注意如果有裝額外的 plugin 需要同時在 Mac 跟 Windows 裝上對應的版本)與 Davinci Resolve Studio(可以使用 Windows 或 Linux,在 Linux 上速度會快一些但設定也稍微複雜一點)

    2. 將專案依照場景分割成多個部分,並交由多台主機輸出,最後再透過 FFmpeg 或類似的工具程式將各段視訊連接起來(並沒有重新編碼喔)。這種方式應該沒有現成的工作流,也算是比較大型的製作才有的需求,需要 IT 或相關專業人員訂製與編寫工作流的工具程式或外掛模組(可能有商業的解決方案,但我懶得查了~),要注意的是每台主機使用的編碼器需要一致,不同的硬體或軟體編碼器輸出同一段影片是有差異的
    此篇文章於 06-28-2020 21:26 被 cbs_ghost 編輯。



  5. #15
    吉米丘 的頭像

    勸敗大魔王

    註冊日期:09-20-2007
    文章:50,610
    謝謝你: 9,955
    在 6,546篇文章中獲得 48,167個感謝
    引用 作者: cbs_ghost 查看文章
    所以這裡我建議的方向,並不會以輸出時間為首要目標,而是在影片畫質有一定程度的前提下,能夠以比純 CPU 輸出影片更快為目的。
    (吉米船長的比較表沒有把輸出的畫面品質做比較,像是把它們的 PSNR 列出來,我覺得有這個必要,好與壞差很多)
    確實在剪輯上面,我都沒用什麼虛華絢麗的特效,就是頂多就是許多畫面重疊在同一個畫面上,其他就是單純剪輯而已

    然而在FCP X上面也沒什麼輸出選項可以選



    我都是選擇這個組合

    你說的輸出之後畫質的PSNR要去哪裡看呢?

    所以你這邊又產生了另一個重點

    就是同一個素材在不同的電腦硬體組合搭配下,在相同設定的情況下,輸出的畫質也會有所不同嗎? (驚)



    引用 作者: cbs_ghost 查看文章
    Mac 的話只能退而求其次,選擇視訊輸出品質第二的 Intel GPU 輸出,理論上...2014年以後的Mac輸出時間與畫質都差不多,以目前 Intel 跟 AMD 的研發進度看來只能期待 Apple 換成自家 SoC 後能端出牛肉了。
    所以這也似乎印證著我怎麼改變硬體,輸出的時間都沒有太大的進步
    此篇文章於 06-29-2020 13:26 被 吉米丘 編輯。


  6. #16

    新生報到

    註冊日期:03-14-2012
    文章:11
    謝謝你: 2
    在 4篇文章中獲得 7個感謝
    引用 作者: 吉米丘 查看文章
    所以你這邊又產生了另一個重點

    就是同一個素材在不同的電腦硬體組合搭配下,在相同設定的情況下,輸出的畫質也會有所不同嗎? (驚)
    是呀,而且不只硬體有影響,不同家的編碼器也會有不同(像是 Adobe 傳統的 CPU 編碼器與開源專案 x264),
    相同的畫質下不同的軟硬體搭配會有不同的檔案大小,所以要如何讓影片畫質高、檔案小、輸出速度又快,就是各家軟硬體廠商的技術了

    不過 Apple 這幾年來 (2014~現在) 應該都是用 Intel 的編碼器來作為 FCP X 的硬體加速輸出,所以畫質是一樣的

    倒是最新的 Mac Pro 跟搭配 i9-9900KS 的黑蘋果,看測試過程可能有用到 AMD 的硬體編碼器,畫質應該會有些微不同(是好是壞就不知道了,網路上找不到資訊)


    引用 作者: 吉米丘 查看文章
    你說的輸出之後畫質的PSNR要去哪裡看呢?
    常見的畫質表示方式為使用 PSNR (Peak Signal-to-Noise Ratio,單位 dB) 或 SSIM (structural similarity index,%),PSNR 42dB 以上為可觀看的畫質;SSIM 對於一般人比較好理解,就是跟原始素材的相似程度,越接近 100% 就越好

    計算的方法需要額外輸出一個 losssless 的影片(以 FCP X 來說,可以是 ProRes4444 或 ProRes HQ),然後利用工具程式計算出平均的數值
    我自己是用 FFmpeg(需要使用終端機,我自己完全不排斥,不喜歡的人可以找時間寫個圖形介面包起來)

    指令如下:
    # PSNR

    ffmpeg -i 被測量影片的檔案路徑 -i 無損影片的檔案路徑 -lavfi "[0:v]setpts=PTS-STARTPTS[v0];[1:v] setpts=PTS-STARTPTS[v1];[v0][v1]psnr" -f null -
    # SSIM

    ffmpeg -i 被測量影片的檔案路徑 -i 無損影片的檔案路徑 -lavfi "[0:v]setpts=PTS-STARTPTS[v0];[1:v] setpts=PTS-STARTPTS[v1];[v0][v1]ssim" -f null -
    此篇文章於 06-30-2020 11:13 被 cbs_ghost 編輯。



  7. #17
    Phenix 的頭像

    熱血的愛用者

    註冊日期:11-18-2010
    文章:399
    謝謝你: 154
    在 67篇文章中獲得 106個感謝
    這樣看起來不需要動用到 KS 應該一般的 9900KF 就已經樂勝了

    甚至 i7 9700KF 也應該不會相差太大才對


  8. #18
    吉米丘 的頭像

    勸敗大魔王

    註冊日期:09-20-2007
    文章:50,610
    謝謝你: 9,955
    在 6,546篇文章中獲得 48,167個感謝
    引用 作者: cbs_ghost 查看文章

    計算的方法需要額外輸出一個 losssless 的影片(以 FCP X 來說,可以是 ProRes4444 或 ProRes HQ),然後利用工具程式計算出平均的數值
    我自己是用 FFmpeg(需要使用終端機,我自己完全不排斥,不喜歡的人可以找時間寫個圖形介面包起來)

    指令如下:
    謝謝分享,我來找時間試試看


  9. #19

    新生報到

    註冊日期:03-14-2012
    文章:11
    謝謝你: 2
    在 4篇文章中獲得 7個感謝
    引用 作者: Phenix 查看文章
    這樣看起來不需要動用到 KS 應該一般的 9900KF 就已經樂勝了

    甚至 i7 9700KF 也應該不會相差太大才對
    帶有 F 尾綴的 Intel CPU 是沒有內顯 (iGPU) 的喔,也就沒有獨立的硬體編碼器,Mac 會去尋找替代的方案(例如 AMD GPU 或軟體編碼),這裡應該是指 i9-9900K 與 i7-9700K 才對


  10. #20
    吉米丘 的頭像

    勸敗大魔王

    註冊日期:09-20-2007
    文章:50,610
    謝謝你: 9,955
    在 6,546篇文章中獲得 48,167個感謝
    引用 作者: cbs_ghost 查看文章
    帶有 F 尾綴的 Intel CPU 是沒有內顯 (iGPU) 的喔,也就沒有獨立的硬體編碼器,Mac 會去尋找替代的方案(例如 AMD GPU 或軟體編碼),這裡應該是指 i9-9900K 與 i7-9700K 才對
    如果「故意」選沒有內顯的,強制讓它去找替代方案會比較厲害嗎?


 

 

相似的主題

  1. 回覆: 2
    最後發表: 01-19-2020, 23:28
  2. 回覆: 12
    最後發表: 12-12-2019, 22:24
  3. 回覆: 1
    最後發表: 08-16-2019, 22:34
  4. 回覆: 0
    最後發表: 05-30-2019, 15:02
  5. [分享] 《吉米教你看懂》水果幫的10GbE網路環境改造計畫
    由吉米丘論壇中Mac 硬體周邊
    回覆: 5
    最後發表: 03-10-2019, 02:21

發文規則

  • 不可以發表新主題
  • 不可以發表回覆
  • 不可以上傳附件
  • 不可以編輯自己的文章
  •  
回到此頁頂端