天天看點

伺服器上很多 ffmpeg 程序未及時結束導緻大量占用記憶體

最近在 pre 機器上過濾 ffmpeg 程序時,發現有 200 多個 ffmpeg 程序,

立即去線上看了下,發現線上機器沒有該現象, 仔細看了下這些程序在做的事,完整指令如下:

/usr//bin/ffmpeg -fflags nobuffer -i rtmp://127.0.0.1:1938/biz-live-pre/23b526a7ae60ce1589278154368 
-vframes 1 -an -f rawvideo -ss 0 -y -f image2 /www/live/biz-live-pre/23b526a7ae60ce1589278154368.jpg
           

是在 rtmp 直播流上截圖并儲存到指定目錄下,

pre 環境用的是系統預設的 ffmpeg,版本為 2.6.8, 而線上是 3.1.2 ,這是唯一的差別,

是以嘗試分别用 2.6.8 和 3.1.2 試了上述指令,發現 3.1.2 在 30 秒時會自動逾時結束程序,

而 2.6.8 一直未逾時, 這就解釋了為什麼 pre 環境有這麼多程序沒法結束了。

解決辦法按簡單的解決,就是把 pre 環境的 ffmpeg 配置到 3.1.2 即可。