2017-07-29 49 views
1

我想知道如何使用ffmpeg實現快速編碼。 我用這個代碼:如何使用ffmpeg實現快速編碼?

vcodec libx264 -pix_fmt yuv420p -r 30 -g 60 -b:v 1000k -shortest -acodec libmp3lame -b:a 128k -ar 44100 -threads 0 -preset veryfast 

但它僅使用50%的CPU(雙至強2.3千兆赫)和2%(15GB)的RAM。

現在我想讓它使用很多cpu和ram進行快速編碼,怎麼辦?謝謝大家

+0

什麼是這種編碼的源視頻和哪裏來的? – VTT

+0

確保輸出不顯示'使用cpu功能:無!'。這表明配置錯誤的x264和較慢的編碼。 – LordNeckbeard

回答

1

正在使用多少個線程,很大程度上取決於使用的編解碼器,設置和硬件。除此之外,RAM只用少量分辨率的「正好」1000k比特率就很少使用。所以你可能永遠不需要大約15G的RAM。

在你的情況,你設置-threads 0這意味着硬件的「最佳使用」(將由某些算法自動設置)。我不推薦它,但你可以嘗試爲2個線程設置-threads 2,或者爲4個線程設置-threads 4。根據經驗,您可以爲每個內核設置一個線程(如果您有4個內核,則使用4個線程,8個內核--8個線程等等)。

請注意,同時在所有內核和音頻上編碼視頻可能導致速度低於由ffmpeg本身計算的另一個「最佳使用」。只要試一試;-)

+0

感謝您的幫助,我試着增加'-threads 8',但編碼速度並沒有改變 – prodiskieu

+0

好吧,也許預置定義了''-threads''。嘗試設置''-preset veryfast -threads 2''(注意,''-preset''首先出現,所以''-threads''將被覆蓋)。 –

+0

非常感謝,但它的編碼速度仍然不變。我放棄:v – prodiskieu