由于新版easynvr即將上線,我們最近一直在測試新版的功能。在測試webrtc播放時,我們發現easynvr在linux系統下的啟動速度較慢。新版的webrtc改為通過turn服務進行中轉,但在linux下啟動需要七到八秒的時間。
為了解決這個問題,我們首先檢查了配置是否正確,easynvr.ini中的rtc配置選項和stund/turn.toml中的turn配置選項數據是匹配的,配置沒有問題。接著,我們檢查了進程是否正常運行,使用查看進程的命令后發現turn服務并未成功啟動。于是,我們查看代碼中turn服務的啟動方式,發現是直接執行sh腳本文件啟動的。我們嘗試直接運行punch.sh腳本,結果服務器提示No such file or Directory:
然而,這個腳本文件確實存在,可能是編碼問題導致的。經過網絡查詢,確認了這一點。
由于本地操作系統是windows,在Windows下編輯的腳本可能包含不可見字符,腳本文件可能是DOS格式的。我們使用vim punch.sh :set ff命令查看文件格式:
顯示文件為dos格式。
因此,我們執行:set ff=unix命令,并回車保存后退出,再次運行punch.sh腳本,發現服務成功啟動,WebRTC啟動慢的問題也得到了解決。
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END