FS一路對講/會議(720P),開啓錄像後,CPU佔用率達到20%,如果對講超過10路,CPU將超負荷。爲了降低CPU,利用顯卡進行硬編解碼。
Fs 默認使用libx264對視頻進行h264軟編解碼,開啓錄像後:
1.錄像線程使用軟編碼將視頻幀生成錄像文件。
2.視頻橋線程,由於開啓了通道(bugs),會將視頻幀軟編碼後,再發送給其他終端。
不開啓錄像時,FS不會進行編解碼,開啓錄像後,由於要進行視頻融合,進行了2次編碼,導致CPU飆升。
FS 使用ffmpeg4.1版本做音視頻方案,所以先了解ffmpeg.
FFMPEG 硬編碼方案 (N卡)
http://trac.ffmpeg.org/wiki/HWAccelIntro
1.瞭解FFmpeg各個平臺支持的硬件加速方案
2.針對h264編碼支持的硬件方案,這裏我們選擇兼容性比較好的NVENC NVDEC
https://developer.nvidia.com/video-encode-decode-gpu-support-matrix
代碼實施過程
詳見下篇mod_av模塊支持硬編碼,這裏不再贅述。
結果前後對比
優化前20%
優化後4%