2016-04-27 348 views
-1

我正在尝试设置媒体处理服务器。我为FFMPEG做了很多研究并编写了一个命令。该命令如下。FFMPEG执行速度非常慢

ffmpeg -y -i "bbb_sunflower_2160p_60fps_normal.mp4" -c:v libx264 \ 
-threads 7 -profile:v main -preset ultrafast -vf scale=1920:-1 \ 
"process/video/1080p.mp4" -c:v libx264 -threads 7 -profile:v main \ 
-preset ultrafast -vf scale=1280:-1 "process/video/720p.mp4" -c:v \ 
libx264 -threads 7 -profile:v main -preset ultrafast -vf \ 
scale=854:-1 "process/video/480p.mp4" -vf fps=5/60 \ 
process/image/thumb_%d.jpg 

此命令的作用和运行完美,但它是污垢缓慢。我的服务器,这是专门为刚刚运行的ffmpeg具有以下规格:

12核Intel Xeon X5650(超线程)
64 GB ECC DDR3内存
250 GB固态硬盘

但是,当我使用这个命令,服务器的CPU负载约占250-300%,我希望它在处理视频时占用大约2000%。目前在处理视频时,服务器每秒渲染大约17帧。处理一个60fps的10分钟视频需要很长时间。

回答

0

这是一个非常复杂的命令行,几乎没有任何有用的信息。例如,您不提供FFmpeg stdout/stderr(其中包含大量有用的信息)。可能的原因:

  • 视频编码简直是太慢(试行1个编码,而不是3,W/O截图)
  • 也许你的瓶颈是音频(与-an测试)
  • 别的东西吗?

我鼓励你测试更简单的版本并提供stdout/stderr。

2

这是缩放器。 ffmpeg中的缩放器是单线程的,它是具有很多线程的系统的瓶颈。尝试为每个输出运行不同的过程。

+0

也许,在单个过滤器复合体内执行所有缩放,然后使用TEE复用器输出单独的文件可能会有所帮助。 – Mulvya

1

如果您正在运行Windows,请尝试再次禁用防御程序(以及任何其他病毒检查程序)。它可以产生巨大的差异。 让我们知道结果请...

这对我在Windows 10机器(然后处理了10倍更快),因此是一个可能的答案,以上问题。澄清(任何形式)没有要求,但它是很好的知道它是否有帮助。