大家好,我是波導終結者。
我之前跟大家分享過,我用編碼來壓縮或者直播,雖然我也分享過指令碼,但是我真的沒有把前後的步驟寫得很清楚,還是有一定的門檻的。 這一次,我將詳細分享整個過程。
首先,你必須有乙個支援硬體編碼的顯示卡,因為現在的CPU軟體每秒只編碼一位幀的速度非常慢。 獨立顯示卡方面,NVIDIA的40系列、Intel ARC Iris獨立顯示卡系列、AMD RX 7000系列,以及核心顯示卡、Intel 14代、AMD Ryzen 7000大部分機型都支援,詳情請參考官方型號列表。
因為編碼格式太新,而且各家公司的顯示卡剛剛問世,所以市面上能夠支援**1硬體編碼的軟體並不多。 除了商業或付費軟體外,我一直在使用的 shanaencoder 直到現在還沒有更新,支援 **1 硬體編碼。 因此,在這裡您可以嘗試另乙個開源和免費軟體Handbrake。 我使用最新版本的20240210版軟體進行優化測量後,編碼速度約為450幀,CPU和顯示卡利用率約為80%至90%。 如果你需要乙個圖形介面,中文,免費和開源軟體,那麼這應該是目前民用的最佳選擇。
如果你想一直使用最新版本並獲得最佳效能,我仍然建議使用 ffmpeg 的命令列來編寫指令碼。 這有點複雜,但它是最好的。 一般線上教程會教大家設定系統目錄,以避免免維護的ffmpeg路徑,但是由於相容性問題,這裡也需要保留舊版本,所以我直接使用相對路徑。
我寫了幾個使用壓縮學習資料的指令碼,最重要的有兩個區別,乙個是單檔案壓縮,另乙個是目錄下所有檔案的壓縮。 預設學習資料只保留位元率為128K的AAC,帶有CopyAudio的版本是音訊的副本,因為有些學習資料的原始音訊在128K左右,二次壓縮除了降低質量外沒有意義。
若要使用單檔案壓縮版本,建議使用 PowerShell,按住任意資料夾中的 Shift,然後右鍵單擊以檢視“在此處開啟 PowerShell 視窗”。 然後將指令碼拖入空格,然後拖動要壓縮的 ** 檔案,然後按 Enter。
使用 ffmpeg 指令碼壓縮,可以將顯示卡編碼到最大,速度可以達到 530-550 幀左右。 這應該是目前最快的壓縮方法。 而且隨著軟體和驅動的優化,以後只需要用最新版本替換ffmpeg,就可以繼續獲得最快的壓縮體驗。
至於壓縮目錄下所有檔案的指令碼,我推薦的方法是將指令碼和 ffmpeg 的主程式複製到目標目錄下,然後執行指令碼等待。
目前對於1080p**,我用的是1500位元速率的**1編碼,基本沒有看不見的眼球丟失問題。 當然,吹毛求疵的一定是人們在網際網絡上壓的10m,20m位元速率的原始磁碟的集合。 至於壓縮質量,我還將 Handbrake 與最新版本的 ffmpeg 進行了比較。 在同一引數下轉換的檔案大小幾乎與 1 完全相同71GB,甚至目標位元速率也完全一樣的1634KB,畢竟Handbrake是封裝的FFMPEG。
如果您有其他問題,或者需要指令碼,可以留言交流。 謝謝大家的**,點讚關注,我們下期再見。