服務器上很多 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 即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章