LiveGBS 常見問題
設備不支持國標
不支持國標協議的設備, 在做國標協議對接時, 推薦使用 LiveNVR 國標級聯方案, 先通過 RTSP 、 ONVIF 協議、 廠家 SDK 將設備接入 LiveNVR, 然后配置 LiveNVR 級聯國標平臺即可. LiveNVR 支持 TCP 流傳輸模式, 實現穩定的播放效果. 也可以采用國標硬盤錄像機硬件方案, 先將設備接入支持國標協議的硬盤錄像機, 然后配置級聯國標平臺.
頁面打不開
LiveCMS 和 LiveSMS 都部署起來后,瀏覽器輸入 ip:10000 打不開 LiveCMS 的頁面。這種情況一般是LiveCMS 的10000端口被其他程序占用了導致。可以先卸載 LiveCMS,打開 livecms.ini 文件,把 http端口從 10000 改成 10002 或其他端口,再重新安裝 LiveCMS。
設備注冊不上來
網頁打開后, 看不到設備注冊上來
檢查設備注冊信息無誤, 接入密碼正確填寫.
檢查防火墻是否關閉.
檢查 SIP 端口(livecms.ini > [sip] > port, 默認 15060) UDP & TCP 是否開放.
直播流地址格式
WEBRTC: webrtc[s]://{cms_ip}:{cms_http[s]_port}/sms/{sms_id}/rtc/{設備國標編號}_{通道國標編號}
FLV: http[s]://{cms_ip}:{cms_http[s]_port}/sms/{sms_id}/flv/hls/{設備國標編號}_{通道國標編號}.flv
WS_FLV: ws[s]://{cms_ip}:{cms_http[s]_port}/sms/{sms_id}/ws-flv/hls/{設備國標編號}_{通道國標編號}.flv
HLS: http[s]://{cms_ip}:{cms_http[s]_port}/sms/{sms_id}/hls/{設備國標編號}_{通道國標編號}/live.m3u8
RTMP: rtmp://{sms_ip}:{rtmp_port}/hls/{設備國標編號}_{通道國標編號}
RTSP: rtsp://{sms_ip}:{rtsp_port}/{設備國標編號}_{通道國標編號}
提示
如果需要通過直播流地址直接拉流, 而不是通過 開始直播接口, 請開啟【基礎配置】>【允許直播地址拉流】
播放花屏、卡頓
播放視頻時概率性出現花屏、卡頓等問題時,一般是由于設備端視頻向服務端傳輸時網絡跟不上導致,可以在設備端的配置頁面,把視頻的碼率降低。一般公網播放的話建議碼率設置到256-1024kbps之間。如果碼率太高,設備端上行帶寬很可能跟不上。
其次, 可以將流傳輸模式改為 TCP 被動 來改善播放效果: LiveGBS 界面, 右上角登錄后, 進入國標設備列表, 在列表視圖找到 流傳輸模式 列, 下拉調整.
注意
TCP 被動 流傳輸模式需要設備支持, 同時要求默認的 TCP 30000-30249 收流端口區間開放, 如果以上條件不滿足, 以 TCP 被動模式拉流, 將獲得錯誤信息 "none rtp data receive"
支持錄像回放嗎?
LiveGBS 支持三種形式的錄像, 我們稱之為 設備錄像, 云端錄像, 實時錄像
設備錄像
【國標設備】>【查看通道】>【設備錄像】訪問, GB28181 國標協議范圍內的錄像, 存儲在設備SD卡或硬盤錄像機, 可通過 LiveGBS 前端設備錄像 接口
/api/v1/playback/start拉取云端錄像
【國標設備】>【查看通道】>【云端錄像】開啟后, 只要拉流上來, 就會持續錄像, 錄像的起停跟隨直播流的起停, 存儲在服務器, 支持指定存儲目錄 >【基礎配置】>【流媒體服務配置】>【云錄像目錄】, 存儲格式是 HLS, 可通過 LiveGBS 云端錄像 接口 下載為 MP4
實時錄像
是在直播過程中, 手動或者通過 LiveGBS 實時錄像 接口
/api/v1/record/start觸發的錄像, 存儲在服務器, 存儲格式是 MP4
“sms not found”
排查 LiveSMS 服務是否正常運行,livesms.ini > [redis] > host 是否指向 LiveCMS 所在的 redis-server
"invite sms[xx] wait response error"
LiveCMS 訪問不到 LiveSMS
檢查 WEB管理后臺 >【基礎配置】>【流媒體服務配置】>【本地|內網 IP】是否配置為 LiveCMS 可訪問的IP
檢查 WEB管理后臺 >【基礎配置】>【流媒體服務配置】>【顯示更多配置】>【SMS 端口】是否配置為 LiveCMS 可訪問的端口
提示
若 LiveCMS 和 LiveSMS 部署在同一臺服務器上,可嘗試修改配置如下:LiveGBS后臺 >【基礎配置】>【流媒體服務配置】>【本地|內網 IP】填 127.0.0.1,【外網 IP(可選)】填下級可訪問的IP,勾選上【外網 IP 收流】。
"invite device[xx] failed, res..."
LiveCMS 向下級設備拉流失敗, res 后面是下級設備回復內容。 如果下級是海康 NCG 聯網網關, 可通過 LiveCMS 信令日志查找到詳細的報錯信息。 根據報錯信息,向下級平臺咨詢失敗原因。
如果是 "res[503] Service Unavailable" 一般是由于下級硬盤錄像機上通道離線導致。
如果是 "res[415] Unsupported Media Type" 并且正在調閱設備錄像(/api/v1/playback/start), 一般是對應的時間段在下級設備上沒有錄像存儲導致。
“none rtp data receive”
LiveSMS 收不到下級推流, 首先需要排查服務器端 UDP & TCP 30000-30249 端口是否開放。 其次排查 WEB管理后臺 >【基礎配置】>【流媒體服務配置】>【本地|內網 IP】是否配置為下級可訪問的IP。如果勾選了【外網 IP 收流】,則檢查 【外網 IP(可選)】是否配置為下級可訪問的IP。
提示
若 LiveCMS 和 LiveSMS 部署在同一臺服務器上,可嘗試修改配置如下:LiveGBS后臺 >【基礎配置】>【流媒體服務配置】>【本地|內網 IP】填 127.0.0.1,【外網 IP(可選)】填下級可訪問的IP,勾選上【外網 IP 收流】。
若已經按照上面配置了【流媒體服務配置】的收流IP,而有的設備來自其它網段,LiveGBS 支持多網段設備的接入:LiveGBS后臺 > 【國標設備】>【編輯】>【收流 IP】 單獨配置收流IP(服務器在該網段下的IP),同時確認該網段服務器IP的 UDP & TCP 30000-30249 端口是否開放。
"invalid rtp payload type[xx]"
LiveSMS 收到下級不標準的國標推流, 可以配置 livesms.ini > [rtp] > strict_payload_type=0 來關閉校驗。
開啟輸出 RTSP 流
登錄 LiveGBS 界面, 配置 RTSP 端口即可 >【基礎配置】>【流媒體服務配置】>【RTSP 端口】
注意
在 Linux 下面開啟 554 端口通常需要 root 權限, 需要以 sudo 來運行 livesms 服務程序
拉取一路直播流 /api/v1/stream/start, 或通過接口 /api/v1/stream/list 查看流信息, 其中包含了這一路直播流的 RTSP 流地址, 如圖

這個 RTSP 地址可以用 ffplay 來播放

開啟 HTTPS 服務
配置 LiveCMS 開啟 HTTPS
【基礎配置】>【信令服務配置】>【HTTPS 端口(可選)】、【HTTPS Cert 證書路徑】、【HTTPS Key 證書路徑】
驗證 HTTPS
瀏覽器訪問 https://{證書域名}:{LiveCMS HTTPS 端口} 驗證 HTTPS 是否開啟成功
切換數據庫
LiveGBS 默認使用 sqlite3 文件數據庫, 當接入通道數量達到萬級時, 文件數據庫會拖慢系統;
這時我們建議使用 MariaDB(推薦) 或 MySQL(5.7及以上) 數據庫, 數據庫服務需要您提前安裝好, 切換到 MariaDB 數據庫很簡單:
(注意:數據庫的默認引擎應為 InnoDB,查詢命令: show engines)
第一步 連接數據庫
客戶端連接 或 命令如 :
mysql -h127.0.0.1 -uxxx -pyyy -P3306第二步 創建數據庫實例(整段復制下面的建庫SQL并執行,不要去除注釋部分的字符集設定!)
DROP DATABASE IF EXISTS `livegbs`; CREATE DATABASE IF NOT EXISTS `livegbs` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci */; USE `livegbs`;第三步 配置 livecms.ini > [db] > MariaDB/MySQL 連接信息(其中 dialect 固定為 mysql)
[db] dialect=mysql url=username:password@(ip:port)/livegbs?charset=utf8mb4&parseTime=True&loc=Local第四步 重啟 LiveCMS 服務, 系統自動完成建表操作, 至此, 數據庫切換完成
配置了國標級聯, 上級看不到通道?
配置上級級聯的時候, 有個 選擇通道 的 button, 選擇哪些通道共享給上級, 這個地方, 記得進去勾選一下, 否則上級看不到通道

如何部署多個 LiveSMS 集群?
部署多個 LiveSMS 有助于提升視頻流分發性能, 可部署LiveSMS在不同服務器上, 配置 livesms.ini redis 指向同一個 livecms 節點即可:
[sip]
; 配置不重復的 SIP ID
serial=34020000002020000002
[redis]
; 指向部署 CMS Redis 服務器的ip,如
host=192.168.1.65
port=26379
password=livegbs@2024
配置CAS單點登錄
LiveGBS 支持 CAS 單點登錄, 配置 livecms.ini > [cas] 如下:
[cas]
; 單點登錄頁面地址
login_url=https://ip[:port]/cas/login
; ticket 校驗地址
check_url=https://ip[:port]/cas/serviceValidate
; 登出地址
logout_url=https://ip[:port]/logout
; 單點登錄用戶默認角色(超級管理員/管理員/操作員/觀眾)
default_user_role=觀眾
; 單點登錄用戶默認是否擁有所有通道權限(1-是, 0-否)
default_user_has_all_channel=0
; 默認超級管理員用戶(可選)
super_admin_user=admin0101
; 默認管理員用戶(可選)
admin_user=admin0201,admin0202
; 默認擁有所有通道權限用戶(可選)
all_channel_user=admin0201,admin0202
配置OAuth單點登錄
LiveGBS 支持 OAuth 單點登錄, 以 Github 為例,配置 livecms.ini > [oauth] 如下:
[oauth]
; 單點登錄地址
login_url=https://github.com/login/oauth/authorize
; login_url=https://gitee.com/oauth/authorize
; TOKEN 校驗地址
token_url=https://github.com/login/oauth/access_token
; token_url=https://gitee.com/oauth/token
; 用戶信息接口地址
user_url=https://api.github.com/user
; user_url=https://gitee.com/api/v5/user
; 登出地址(可選)
logout_url=https://github.com/logout
; 單點登錄客戶端ID
client_id=LiveGBS
; 單點登錄客戶端密碼
client_secret=123456
; 單點登錄用戶默認角色(超級管理員/管理員/操作員/觀眾)
default_user_role=觀眾
; 單點登錄用戶默認是否擁有所有通道權限(1-是, 0-否)
default_user_has_all_channel=0
提示
Github 創建第三方應用示例 ( https://github.com/settings/applications/new )
"Application name"
LiveGBS"Homepage URL"
http://ip:10000/"Authorization callback URL"
http://ip:10000/oauthlogin
接口返回 401 Unauthorized
原因:【基礎配置】>【HTTP 接口鑒權】開啟, 接口調用會驗證是否攜帶有效的 token
方法一:先調用 登錄接口,登錄后會返回 token,以后的接口調用攜帶 token 信息
方法二:【基礎配置】>【HTTP 接口鑒權】關閉,不推薦
Linux 非 root 用戶啟動和停止
注意
安裝成系統服務的時候必須 root 權限,但是有時沒有 root 權限,可以進行如下處理
CMS 啟動腳本
#!/bin/bash
CWD=$(cd "$(dirname $0)";pwd)
nohup "$CWD"/livecms > /dev/null 2>&1 &
CMS 停止腳本
#!/bin/bash
CWD=$(cd "$(dirname $0)";pwd)
pid=`pidof livecms`
[ -n "$pid" ] && kill -INT "$pid"
SMS 啟動腳本
#!/bin/bash
CWD=$(cd "$(dirname $0)";pwd)
nohup "$CWD"/livesms > /dev/null 2>&1 &
SMS 停止腳本
#!/bin/bash
CWD=$(cd "$(dirname $0)";pwd)
pid=`pidof livesms`
[ -n "$pid" ] && kill -INT "$pid"
如何更新升級?
先上傳部署包到服務器, 再解壓
停止運行老服務(如果已開啟云端錄像, 建議將云端錄像目錄配置到版本目錄外面)
拷貝老服務運行目錄下的 *.db 和 *.ini 文件到新解壓目錄(livecms.db, livecms.ini, livesms.ini)
在新解壓目錄下, 啟動新服務
服務器硬件配置

WEB 播放器
播放鑒權
與您業務系統鑒權對接, 配置文件位置:LiveCMS 安裝包解壓目錄 > livecms.ini > [sip] > stream_auth_url
此處填寫您業務系統提供的鑒權地址
填寫示例: stream_auth_url=http://yourhost:port/playauth
流程說明:
用戶請求播放地址
示例如: http://localhost:10001/flv/hls/t.flv?param1=111¶m2=222
其中param1和param2是附加的任意傳參,名稱不限
LiveGBS 系統會GET請求回調上面
stream_auth_url地址的接口,并透傳附加的參數示例如:http://yourhost:port/playauth?param1=111¶m2=222
等待您的鑒權接口的返回:
成功:200 (Status Code)
失敗:401
LiveGBS 判斷返回的鑒權結果:
成功 : 開始播放
失敗 : 阻止播放
忘記登錄密碼
可以在命令行下運行 LiveCMS 可執行程序, 帶 resetpass 參數來重置密碼
Windows
.\LiveCMS.exe resetpass
Linux
./livecms resetpass
停止服務, 重新啟動后生效
解鎖登錄
可以在命令行下運行 LiveCMS 可執行程序, 帶 unlock [username] 參數來為指定用戶解鎖登錄
Windows
.\LiveCMS.exe unlock admin
Linux
./livecms unlock admin
如果是其他用戶登錄被鎖定,管理員可以登錄系統操作 >【用戶管理】>【編輯用戶】或者【重置用戶密碼】來為指定用戶解鎖登錄
LiveQing