【问题标题】:How to implement fast encoding with ffmpeg?如何使用 ffmpeg 实现快速编码?
【发布时间】:2017-07-30 02:38:45
【问题描述】:

我想知道如何使用 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 ghz)和 2% (15gb) 的内存。

现在我想让它使用大量的cpu和ram进行快速编码,怎么办?谢谢大家

【问题讨论】:

  • 此编码的源视频是什么,来自哪里?
  • 确保输出不显示using cpu capabilities: none!。这表明配置错误的 x264 和较慢的编码。

标签: ffmpeg codec video-encoding video-codecs


【解决方案1】:

正在使用多少线程,很大程度上取决于使用的编解码器、设置和硬件。除此之外,RAM 很少以“仅”1000k 比特率和小分辨率使用。所以你可能永远不需要大约 15G 的 RAM。

在您的情况下,您正在设置-threads 0,这意味着硬件的“最佳使用”(将由某些算法自动设置)。我不推荐,但您可以尝试将-threads 2 设置为 2 个线程,或将-threads 4 设置为 4 个线程。 根据经验,您可以为每个内核设置一个线程(如果您有 4 个内核,则使用 4 个线程、8 个内核 - 8 个线程,依此类推)。

请注意,与 ffmpeg 本身计算的另一个“最佳使用”相比,同时在所有内核和音频上编码视频可能会导致速度降低。试试看吧;-)

【讨论】:

  • 感谢您的帮助,我已尝试提高到 '-threads 8' 但编码速度没有改变
  • 好吧,也许预设也定义了-threads。尝试设置-preset veryfast -threads 2(注意,-preset 是第一位的,所以-threads 会覆盖)。
  • 非常感谢,但它的编码速度还是不变的。我放弃了:v
猜你喜欢
  • 2014-06-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-01
  • 2014-02-25
  • 2015-01-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多