2017-07-29 46 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