2016-04-27 345 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倍更快),因此是一個可能的答案,以上問題。澄清(任何形式)沒有要求,但它是很好的知道它是否有幫助。