本發(fā)明涉及流媒體播放領(lǐng)域,特別是涉及一種獲取監(jiān)控視頻的方法和系統(tǒng)。
背景技術(shù):
越來越多的視頻監(jiān)控系統(tǒng)都有B/S(瀏覽器/服務(wù)器模式)的頁面,這能極大方便用戶的使用。但很多視頻監(jiān)控設(shè)備的生產(chǎn)廠商的監(jiān)控硬件使用的是自己的私有協(xié)議,用戶需要使用廠商的私有協(xié)議的播放軟件才能完成視頻解碼播放。當用戶在通過網(wǎng)頁瀏覽器查看監(jiān)控視頻時,需要下載安裝監(jiān)控設(shè)備廠商的控件安裝包才能進行查看,使用較為繁瑣,而且控件容易被網(wǎng)頁瀏覽器或殺毒軟件攔截,這就給用戶的使用帶來不便。
技術(shù)實現(xiàn)要素:
基于此,有必要提供一種操作方便的獲取監(jiān)視視頻的方法和系統(tǒng)。
一種獲取監(jiān)控視頻的方法,包括:
第一服務(wù)器接收視頻查看請求,視頻查看請求包括請求查看的監(jiān)控設(shè)備信息;
獲取對應(yīng)的監(jiān)控設(shè)備的第一視頻數(shù)據(jù);
根據(jù)與第一視頻數(shù)據(jù)對應(yīng)的監(jiān)控設(shè)備信息,將第一視頻數(shù)據(jù)轉(zhuǎn)換為標準視頻流;
采用RTMP協(xié)議對標準視頻流進行封裝;
將封裝后的標準視頻流發(fā)送至視頻查看請求的發(fā)送方。
在其中一種實施方式中,在第一服務(wù)器接收視頻查看請求的步驟之前,還包括:
第二服務(wù)器接收登陸請求,根據(jù)登陸請求攜帶的用戶標識驗證請求用戶是否有查看監(jiān)控視頻的權(quán)限;
若驗證通過,則根據(jù)用戶標識查找預(yù)先存儲的與用戶標識對應(yīng)的監(jiān)控設(shè)備 信息,監(jiān)控設(shè)備信息包括監(jiān)控設(shè)備ID和通道ID;
獲取與用戶標識關(guān)聯(lián)的監(jiān)控設(shè)備的通道ID對應(yīng)的驗證碼;
將驗證碼和第一服務(wù)器的信息發(fā)送給登陸請求的發(fā)送方;第一服務(wù)器的信息包括第一服務(wù)器的IP地址和端口;
第一服務(wù)器接收連接請求;
第一服務(wù)器接收的視頻查看請求具體包括監(jiān)控設(shè)備ID和驗證碼,第一服務(wù)器根據(jù)驗證碼查找并獲取與驗證碼對應(yīng)的監(jiān)控設(shè)備的通道的第一視頻數(shù)據(jù)。
在其中一種實施方式中,獲取與用戶標識關(guān)聯(lián)的監(jiān)控設(shè)備的通道ID對應(yīng)的驗證碼的步驟具體包括:查找是否存儲有與用戶標識關(guān)聯(lián)的監(jiān)控設(shè)備的通道ID對應(yīng)的驗證碼;若否,則生成并存儲與監(jiān)控設(shè)備的通道ID對應(yīng)的驗證碼;若是,則獲取存儲的與用戶標識關(guān)聯(lián)的監(jiān)控設(shè)備的通道ID對應(yīng)的驗證碼;
在生成并存儲與監(jiān)控設(shè)備的通道ID對應(yīng)的驗證碼的步驟之后還包括:將監(jiān)控設(shè)備信息和驗證碼發(fā)送給第一服務(wù)器;第一服務(wù)器建立以驗證碼為任務(wù)標識的任務(wù);接收并存儲驗證碼對應(yīng)的監(jiān)控設(shè)備的通道的第一視頻數(shù)據(jù)。
在其中一種實施方式中,在第一服務(wù)器接收視頻查看請求的步驟之前,還包括:
第一服務(wù)器接收登陸請求,并根據(jù)登陸請求攜帶的用戶標識驗證請求用戶是否有查看監(jiān)控視頻的權(quán)限;
若驗證通過,則根據(jù)用戶標識查找預(yù)先存儲的與用戶標識對應(yīng)的監(jiān)控設(shè)備信息,監(jiān)控設(shè)備信息包括監(jiān)控設(shè)備ID和通道ID;
獲取與用戶標識關(guān)聯(lián)的監(jiān)控設(shè)備的通道ID對應(yīng)的識別碼;
第一服務(wù)器接收的視頻查看請求具體包括監(jiān)控設(shè)備ID和識別碼;第一服務(wù)器根據(jù)識別碼查找并獲取與識別碼對應(yīng)的監(jiān)控設(shè)備的通道的第一視頻數(shù)據(jù)。
在其中一種實施方式中,獲取與用戶標識關(guān)聯(lián)的監(jiān)控設(shè)備的通道ID對應(yīng)的識別碼的步驟具體包括:查找是否存儲有與用戶標識關(guān)聯(lián)的監(jiān)控設(shè)備的通道ID對應(yīng)的識別碼;若否,則第一服務(wù)器生成并存儲與監(jiān)控設(shè)備的通道ID對應(yīng)的識別碼;若是,則第一服務(wù)器獲取存儲的與用戶標識關(guān)聯(lián)的監(jiān)控設(shè)備的通道ID對應(yīng)的識別碼;
在生成并存儲與監(jiān)控設(shè)備的通道ID對應(yīng)的識別碼的步驟之后還包括:建立以識別碼為任務(wù)標識的任務(wù);接收并存儲識別碼對應(yīng)的監(jiān)控設(shè)備的通道的第一視頻數(shù)據(jù)。
一種獲取監(jiān)控視頻的系統(tǒng),包括第一服務(wù)器,第一服務(wù)器包括:
查看請求接收模塊,用于接收視頻查看請求,視頻查看請求包括請求查看的監(jiān)控設(shè)備信息;
第一獲取模塊,用于獲取對應(yīng)的監(jiān)控設(shè)備的第一視頻數(shù)據(jù);
轉(zhuǎn)換模塊,用于根據(jù)與第一視頻數(shù)據(jù)對應(yīng)的監(jiān)控設(shè)備信息,將第一視頻數(shù)據(jù)轉(zhuǎn)換為標準視頻流;
RTMP模塊,用于采用RTMP協(xié)議對標準視頻流進行封裝;
第一發(fā)送模塊,用于將封裝后的標準視頻流發(fā)送至視頻查看請求的發(fā)送方。
在其中一種實施方式中,還包括第二服務(wù)器,第二服務(wù)器與第一服務(wù)器通信連接;第二服務(wù)器包括:
第一驗證模塊,用于接收登陸請求,并根據(jù)登陸請求攜帶的用戶標識驗證請求用戶是否有查看監(jiān)控視頻的權(quán)限;
第一查找模塊,用于在第一驗證模塊驗證通過時,根據(jù)用戶標識查找預(yù)先存儲的與用戶標識對應(yīng)的監(jiān)控設(shè)備信息,監(jiān)控設(shè)備信息包括監(jiān)控設(shè)備ID和通道ID;
第二獲取模塊,用于獲取與用戶標識關(guān)聯(lián)的監(jiān)控設(shè)備的通道ID對應(yīng)的驗證碼;
第二發(fā)送模塊,用于將驗證碼和第一服務(wù)器的信息發(fā)送給登陸請求的發(fā)送方;第一服務(wù)器的信息包括第一服務(wù)器的IP地址和端口;
第一服務(wù)器還包括:
連接接收模塊,用于接收連接請求;
查看請求接收模塊接收的視頻查看請求具體包括監(jiān)控設(shè)備ID和驗證碼;
第一獲取模塊,具體用于根據(jù)驗證碼查找并獲取與驗證碼對應(yīng)的監(jiān)控設(shè)備的通道的第一視頻數(shù)據(jù)。
在其中一種實施方式中,第一查找模塊具體包括:第一查找單元,用于查 找是否存儲有與用戶標識關(guān)聯(lián)的監(jiān)控設(shè)備的通道ID對應(yīng)的驗證碼;
第一獲取單元,用于在第一查找單元的查找結(jié)果為是時,獲取存儲的與用戶標識關(guān)聯(lián)的監(jiān)控設(shè)備的通道ID對應(yīng)的驗證碼;
驗證碼生成單元,用于在第一查找單元的查找結(jié)果為否時,生成并存儲與監(jiān)控設(shè)備的通道ID對應(yīng)的驗證碼;
第二發(fā)送模塊,還用于將監(jiān)控設(shè)備信息和驗證碼發(fā)送給第一服務(wù)器;
第一服務(wù)器還包括:
第一任務(wù)創(chuàng)建模塊,用于建立以驗證碼為任務(wù)標識的任務(wù);
第一存儲模塊,用于接收并存儲驗證碼對應(yīng)的監(jiān)控設(shè)備的通道的第一視頻數(shù)據(jù)。
在其中一種實施方式中,第一服務(wù)器還包括:
第二驗證模塊,用于接收登陸請求,并根據(jù)登陸請求攜帶的用戶標識驗證請求用戶是否有查看監(jiān)控視頻的權(quán)限;
第二查找模塊,用于在第二驗證模塊驗證通過時,根據(jù)用戶標識查找預(yù)先存儲的與用戶標識對應(yīng)的監(jiān)控設(shè)備信息,監(jiān)控設(shè)備信息包括監(jiān)控設(shè)備ID和通道ID;
第三獲取模塊,用于獲取與用戶標識關(guān)聯(lián)的監(jiān)控設(shè)備的通道ID對應(yīng)的識別碼;
查看請求接收模塊接收的視頻查看請求具體包括監(jiān)控設(shè)備ID和識別碼;
第一獲取模塊,具體用于根據(jù)識別碼查找并獲取與識別碼對應(yīng)的監(jiān)控設(shè)備的通道的第一視頻數(shù)據(jù)。
在其中一種實施方式中,第二查找模塊包括:
第二查找單元,用于查找是否存儲有與用戶標識關(guān)聯(lián)的監(jiān)控設(shè)備的通道ID對應(yīng)的識別碼;
第二獲取單元,用于在第二查找單元的查找結(jié)果為是時,獲取存儲的與用戶標識關(guān)聯(lián)的監(jiān)控設(shè)備的通道ID對應(yīng)的識別碼;
識別碼生成單元,用于在第二查找單元的查找結(jié)果為否時,生成并存儲與監(jiān)控設(shè)備的通道ID對應(yīng)的識別碼;
第一服務(wù)器還包括:
第二任務(wù)創(chuàng)建模塊,用于建立以識別碼為任務(wù)標識的任務(wù);
第二存儲模塊,用于接收并存儲識別碼對應(yīng)的監(jiān)控設(shè)備的通道的第一視頻數(shù)據(jù)。
上述獲取監(jiān)控視頻的方法,通過將根據(jù)監(jiān)控設(shè)備廠家私有協(xié)議編碼形成的第一視頻數(shù)據(jù)進行轉(zhuǎn)換,轉(zhuǎn)換為標準視頻流,再將標準視頻流采用RTMP協(xié)議進行封裝。由于FLASH流媒體為目前應(yīng)用最廣泛的流媒體,網(wǎng)頁瀏覽器都直接支持FLASH視頻流的播放,當用戶在網(wǎng)頁上查看相應(yīng)的監(jiān)控視頻時,無需下載廠家的控件即可在網(wǎng)頁上直接用FLASH播放器播放,給用戶帶來極大的便捷。
附圖說明
圖1為一種實施方式的獲取監(jiān)控視頻的方法的流程圖;
圖2為另一種實施方式的獲取監(jiān)控視頻的方法的流程圖;
圖3為圖2的獲取監(jiān)控視頻的方法的時序流程圖;
圖4為另一種實施方式的獲取監(jiān)控視頻的方法的流程圖;
圖5為圖4的獲取監(jiān)控視頻的方法的時序流程圖;
圖6為另一種實施方式的獲取監(jiān)控視頻的方法的流程圖;
圖7為圖6的獲取監(jiān)控視頻的方法的時序流程圖;
圖8為另一種實施方式的獲取監(jiān)控視頻的方法的流程圖;
圖9為圖8的獲取監(jiān)控視頻的方法的時序流程圖;
圖10為一種實施方式的獲取監(jiān)控視頻的系統(tǒng)的模塊示意圖;
圖11為一種實施方式的獲取監(jiān)控視頻的系統(tǒng)中的第二服務(wù)器的模塊示意圖;
圖12為一種實施方式的獲取監(jiān)控視頻的系統(tǒng)中的第一服務(wù)器的模塊示意圖;
圖13為另一種實施方式的獲取監(jiān)控視頻的系統(tǒng)中的第一服務(wù)器的模塊示意圖;
圖14為另一種實施方式的獲取監(jiān)控視頻的系統(tǒng)的第一服務(wù)器模塊示意圖;
圖15為另一種實施方式的獲取監(jiān)控視頻的系統(tǒng)的第一服務(wù)器模塊示意圖。
具體實施方式
如圖1所示,一種獲取監(jiān)控視頻的方法,包括:
S101:第一服務(wù)器接收視頻查看請求。
視頻查看請求包括請求查看的監(jiān)控設(shè)備信息。
S102:獲取對應(yīng)的監(jiān)控設(shè)備的第一視頻數(shù)據(jù)。
第一服務(wù)器已預(yù)先與監(jiān)控設(shè)備連接,監(jiān)控設(shè)備將采集的視頻和音頻根據(jù)廠家的私有協(xié)議編碼生成第一視頻數(shù)據(jù)實時發(fā)送給第一服務(wù)器。根據(jù)接收到的請求查看的監(jiān)控設(shè)備信息查找并獲取對應(yīng)的監(jiān)控設(shè)備的第一視頻數(shù)據(jù)。
S103:根據(jù)與第一視頻數(shù)據(jù)對應(yīng)的監(jiān)控設(shè)備信息,將第一視頻數(shù)據(jù)轉(zhuǎn)換為標準視頻流。
不同監(jiān)控設(shè)備的生產(chǎn)廠家所采用的協(xié)議不同,當獲取到第一視頻數(shù)據(jù)時,第一服務(wù)器根據(jù)第一視頻數(shù)據(jù)對應(yīng)的監(jiān)控設(shè)備信息,如監(jiān)控設(shè)備的名稱,使用對應(yīng)的解碼器對第一視頻數(shù)據(jù)進行解碼,生成標準視頻流。
S104:采用RTMP協(xié)議對標準視頻流進行封裝。
RTMP(Real Time Messaging Protocol)協(xié)議,即實時消息傳輸協(xié)議,該協(xié)議基于TCP(Transmission Control Protocol傳輸控制協(xié)議),主要用來在FLASH平臺和支持RTMP協(xié)議的流媒體之間進行音視頻和數(shù)據(jù)通信。而且目前應(yīng)用最廣泛的流媒體為FLASH流媒體,網(wǎng)頁瀏覽器都直接支持FLASH視頻流的播放。
S105:將封裝后的標準視頻流發(fā)送至視頻查看請求的發(fā)送方。
上述獲取監(jiān)控視頻的方法,通過將根據(jù)監(jiān)控設(shè)備廠家私有協(xié)議編碼形成的第一視頻數(shù)據(jù)進行轉(zhuǎn)換,轉(zhuǎn)換為標準視頻流,再將標準視頻流采用RTMP協(xié)議進行封裝。由于FLASH流媒體為目前應(yīng)用最廣泛的流媒體,網(wǎng)頁瀏覽器都直接支持FLASH視頻流的播放,當用戶在網(wǎng)頁上查看相應(yīng)的監(jiān)控視頻時,無需下載廠家的控件即可在網(wǎng)頁上直接用FLASH播放器播放,給用戶帶來極大的便捷。
如圖2和圖3所示,在具體的實施方式中,一種獲取監(jiān)控視頻的方法,包 括以下步驟:
S201:第二服務(wù)器接收登陸請求,根據(jù)登陸請求攜帶的用戶標識驗證用戶是否有查看監(jiān)控視頻的權(quán)限。
用戶預(yù)先進行注冊,注冊成功后填寫與用戶相關(guān)的監(jiān)控設(shè)備的信息,并將用戶與監(jiān)控設(shè)備信息關(guān)聯(lián)。監(jiān)控設(shè)備信息包括:監(jiān)控設(shè)備名稱,設(shè)備ID,監(jiān)控通道和通道ID等。在用戶進行登陸時,根據(jù)登陸請求攜帶的用戶標識驗證用戶是否有查看監(jiān)控視頻的權(quán)限,只有預(yù)先注冊成功的用戶才有查看監(jiān)控視頻的權(quán)限。
若驗證成功,則執(zhí)行步驟S202:根據(jù)用戶標識查找預(yù)先存儲的與用戶標識對應(yīng)的監(jiān)控設(shè)備信息。
此處的用戶識標可以為用戶名,也可以為用戶在注冊時生成的用戶ID,由于已事先建立用戶與監(jiān)控設(shè)備信息之間的關(guān)聯(lián),通過用戶標識可獲取對應(yīng)的監(jiān)控設(shè)備信息,監(jiān)控設(shè)備信息包括:監(jiān)控設(shè)備名稱,設(shè)備ID,監(jiān)控通道和通道ID等。
S203:獲取與用戶標識關(guān)聯(lián)的監(jiān)控設(shè)備的通道ID對應(yīng)的驗證碼。
監(jiān)控設(shè)備的每一通道ID有不同的驗證碼,若與用戶標識對應(yīng)的監(jiān)控設(shè)備有多個通道,則獲取多個驗證碼。
S204:將驗證碼和第一服務(wù)器的信息發(fā)送給登陸請求的發(fā)送方。
在用戶權(quán)限驗證通過后,第二服務(wù)器還將驗證碼和第一服務(wù)器的信息發(fā)送給登陸請求的發(fā)送方。第一服務(wù)器的信息包括第一服務(wù)器的IP地址和端口。
S205:第一服務(wù)器接收用戶端的連接請求。
用戶登陸成功后,獲得第一服務(wù)器的IP地址和端口,根據(jù)該IP地址和端口與第一服務(wù)器進行通信,請求連接第一服務(wù)器。在一個具體的實施例中,請求的格式可以為:
rtmp://RelaySrvIP:RelaySrvPort/simpleLive。
S206:接收視頻查看請求。
用戶端在與第一服務(wù)器連接成功后,向第一服務(wù)器發(fā)送視頻查看請求。視頻查看請求具體包括監(jiān)控設(shè)備ID和驗證碼,在一個具體的實施例中,查看請求 的格式可以為:
dvsLive/驗證碼/設(shè)備ID。
S207:第一服務(wù)器根據(jù)驗證碼查找并獲取與驗證碼對應(yīng)的監(jiān)控設(shè)備的通道的第一視頻數(shù)據(jù)。
第一服務(wù)器已預(yù)先與監(jiān)控設(shè)備建立關(guān)聯(lián),實時接收并存儲監(jiān)控設(shè)備的不同通道的視頻數(shù)據(jù),并以每個通道對應(yīng)的驗證碼為標識。當?shù)谝环?wù)器接收到查看請求時,根據(jù)查看請求的驗證碼查找并獲取與驗證碼對應(yīng)的監(jiān)控設(shè)備的通道的第一視頻數(shù)據(jù)。
S208:將第一視頻數(shù)據(jù)轉(zhuǎn)換為標準視頻流。
標準視頻流的標準為H.264或MPEG-4。
將第一視頻數(shù)據(jù)轉(zhuǎn)換為標準視頻流時,根據(jù)第一視頻數(shù)據(jù)對應(yīng)的監(jiān)控設(shè)備的信息進行相應(yīng)的轉(zhuǎn)換成H.264格式的標準視頻流或MPEG-4格式的視頻流。本實施方式以H.264格式的視頻流為例,不同監(jiān)控設(shè)備的生產(chǎn)廠家所采用的協(xié)議不同,當獲取到第一視頻數(shù)據(jù)時,第一服務(wù)器根據(jù)第一視頻數(shù)據(jù)對應(yīng)的監(jiān)控設(shè)備信息,如監(jiān)控設(shè)備的名稱,使用對應(yīng)的解碼器對第一視頻數(shù)據(jù)進行解碼,生成H.264格式的視頻流。
S209:采用RTMP協(xié)議對標準視頻流進行封裝。
S210:將封裝后的標準視頻流發(fā)送至視頻查看請求的發(fā)送方。
應(yīng)當理解的是,考慮到數(shù)據(jù)龐大,為提高服務(wù)器的處理效率和響應(yīng)速度,本發(fā)明采用分布式的架構(gòu),由第二服務(wù)器進行權(quán)限驗證,第一服務(wù)器進行視頻轉(zhuǎn)換。采用分布式的架構(gòu),隨著數(shù)據(jù)的不斷增加,可相應(yīng)增加服務(wù)器數(shù)量,由第二服務(wù)器進行分配,發(fā)送相應(yīng)的服務(wù)器的IP地址和端口給用戶端,用戶端再與分配的服務(wù)器進行連接。
上述的獲取監(jiān)控視頻的方法,采用分布式的架構(gòu),通過預(yù)先建立用戶與監(jiān)控設(shè)備之間的關(guān)聯(lián),第二服務(wù)器用于驗證請求用戶的權(quán)限,在驗證請求用戶有查看視頻的權(quán)限后,將相關(guān)信息發(fā)送分別發(fā)送給第一服務(wù)器和用戶端,用戶端向第一服務(wù)器請求查看視頻,第一服務(wù)器將根據(jù)監(jiān)控設(shè)備廠家私有協(xié)議編碼形成的第一視頻數(shù)據(jù)進行轉(zhuǎn)換,轉(zhuǎn)換為標準視頻流,再將標準視頻流采用RTMP 協(xié)議進行封裝。由于FLASH流媒體為目前應(yīng)用最廣泛的流媒體,網(wǎng)頁瀏覽器都直接支持FLASH視頻流的播放,當用戶在網(wǎng)頁上查看相應(yīng)的監(jiān)控視頻時,無需下載廠家的控件即可在網(wǎng)頁上直接用FLASH播放器播放,給用戶帶來極大的便捷。對于想在自己網(wǎng)站上展示產(chǎn)品、展示公司形象、網(wǎng)頁視頻監(jiān)控等等應(yīng)用需求的用戶來說,使用上述方法,無需安裝其它控件,即可輕松完成網(wǎng)站嵌入需求。
在另一種實施方式中,如圖4和圖5所示,步驟S203具體包括:
S2031:查找是否存儲有與用戶標識關(guān)聯(lián)的監(jiān)控設(shè)備的通道ID對應(yīng)的驗證碼。
若是,則執(zhí)行步驟S2032:獲取存儲的與用戶標識關(guān)聯(lián)的監(jiān)控設(shè)備的通道ID對應(yīng)的驗證碼,并繼續(xù)執(zhí)行S204及其之后的步驟。
若否,則執(zhí)行步驟S2033:生成并存儲與監(jiān)控設(shè)備的通道ID對應(yīng)的驗證碼。
生成監(jiān)控設(shè)備的通道ID對應(yīng)的驗證碼后還將存儲該驗證碼,用戶每次請求查看該通道對應(yīng)的視頻數(shù)據(jù)時,使用的是相同的驗證碼,且多個用戶請求查看該通道對應(yīng)的視頻數(shù)據(jù)時,使用的是相同的驗證碼。
在步驟S2033之后還包括步驟:
S2034:將監(jiān)控設(shè)備信息和驗證碼發(fā)送給第一服務(wù)器。
S2035:第一服務(wù)器建立以驗證碼為任務(wù)標識的任務(wù)。
S2036:接收并存儲驗證碼對應(yīng)的監(jiān)控設(shè)備的通道的第一視頻數(shù)據(jù)。
用戶首次關(guān)聯(lián)監(jiān)控設(shè)備的某一通道時,第一服務(wù)器還未獲取該通道的數(shù)據(jù),則第二服務(wù)器在驗證請求用戶權(quán)限通過后,將生成監(jiān)控設(shè)備的通道ID對應(yīng)的驗證碼,并將監(jiān)控設(shè)備信息和驗證碼發(fā)送給第一服務(wù)器,第一服務(wù)器創(chuàng)建以驗證碼為任務(wù)標識的任務(wù),第一服務(wù)器實時存儲監(jiān)控設(shè)備發(fā)送對應(yīng)通道的第一視頻數(shù)據(jù)。當接收到視頻查看請求時,根據(jù)查看請求的驗證碼查找并獲取該驗證碼對應(yīng)的監(jiān)控設(shè)備的通道的第一視頻數(shù)據(jù)。
在步驟S2036后繼續(xù)執(zhí)行步驟S204及其之后的步驟。需要注意的是,上述執(zhí)行步驟的標號并不用于限定執(zhí)行的步驟的順序,以本實施方式為例,在驗證用戶具有查看監(jiān)控視頻的權(quán)限并生成驗證碼后,第二服務(wù)器將驗證碼和第一服 務(wù)器的信息發(fā)送給用戶端,第二服務(wù)器還將監(jiān)控設(shè)備信息和驗證碼發(fā)送給第一服務(wù)器,都是由第二服務(wù)器執(zhí)行,執(zhí)行順序不做限定。
如圖6和圖7所示,本發(fā)明還提供另一種獲取監(jiān)控視頻的方法,包括以下步驟:
S301:第一服務(wù)器接收登陸請求,并根據(jù)登陸請求攜帶的用戶標識驗證用戶是否有查看監(jiān)控視頻的權(quán)限。
若驗證通過,則執(zhí)行步驟S302:根據(jù)用戶標識查找預(yù)先存儲的與用戶標識對應(yīng)的監(jiān)控設(shè)備信息,監(jiān)控設(shè)備信息包括監(jiān)控設(shè)備ID和通道ID。
S303:獲取與用戶標識關(guān)聯(lián)的監(jiān)控設(shè)備的通道ID對應(yīng)的識別碼。
S304:接收視頻查看請求。
視頻查看請求具體包括監(jiān)控設(shè)備ID和識別碼。
S305:第一服務(wù)器根據(jù)識別碼查找并獲取與識別碼對應(yīng)的監(jiān)控設(shè)備的通道的第一視頻數(shù)據(jù)。
S306:將第一視頻數(shù)據(jù)轉(zhuǎn)換為標準視頻流。
S307:采用RTMP協(xié)議對標準視頻流進行封裝。
S308:將封裝后的標準視頻流發(fā)送至視頻查看請求的發(fā)送方。
本實施方式中,僅采用一個服務(wù)器進行驗證和轉(zhuǎn)換,識別碼用于區(qū)分識別不同監(jiān)控設(shè)備的通道的第一視頻數(shù)據(jù),第一服務(wù)器在獲取與用戶關(guān)聯(lián)的監(jiān)控設(shè)備的通道ID對應(yīng)的識別碼后,根據(jù)識別碼查找并獲取對應(yīng)的監(jiān)控設(shè)備的通道的第一視頻數(shù)據(jù),并將第一視頻數(shù)據(jù)轉(zhuǎn)換為標準視頻流,采用RTMP協(xié)議封裝后發(fā)送至視頻查看請求的發(fā)送方。由于FLASH流媒體為目前應(yīng)用最廣泛的流媒體,網(wǎng)頁瀏覽器都直接支持FLASH視頻流的播放,當用戶在網(wǎng)頁上查看相應(yīng)的監(jiān)控視頻時,無需下載廠家的控件即可在網(wǎng)頁上直接用FLASH播放器播放,給用戶帶來極大的便捷。
如圖8和圖9所示,具體的,S303包括以下步驟:
S3031:查找是否存儲有與用戶標識關(guān)聯(lián)的監(jiān)控設(shè)備的通道ID對應(yīng)的識別碼。
若是,則執(zhí)行步驟S3032:獲取存儲的與用戶標識關(guān)聯(lián)的監(jiān)控設(shè)備的通道ID 對應(yīng)的識別碼,并繼續(xù)執(zhí)行步驟S204及其之后的步驟。
若否,則執(zhí)行步驟S3033:生成并存儲與監(jiān)控設(shè)備的通道ID對應(yīng)的識別碼。
生成監(jiān)控設(shè)備的通道ID對應(yīng)的識別碼后還將存儲該識別碼,用戶每次請求查看該通道對應(yīng)的視頻數(shù)據(jù)時,使用的是相同的識別碼,且多個用戶請求查看該通道對應(yīng)的視頻數(shù)據(jù)時,使用的是相同的識別碼。
在步驟S3033之后還包括步驟:
S3034:建立以識別碼為任務(wù)標識的任務(wù);
S3035:接收并存儲識別碼對應(yīng)的監(jiān)控設(shè)備的通道的第一視頻數(shù)據(jù)。
在步驟S3035后繼續(xù)執(zhí)行步驟S304及其之后的步驟。
上述獲取監(jiān)控視頻的方法,僅使用一臺服務(wù)器,用戶首次關(guān)聯(lián)監(jiān)控設(shè)備的某一通道時,第一服務(wù)器還未獲取該通道的數(shù)據(jù),則第一服務(wù)器在驗證用戶權(quán)限通過后,將生成監(jiān)控設(shè)備的通道ID對應(yīng)的識別碼,第一服務(wù)器創(chuàng)建以識別碼為任務(wù)標識的任務(wù),第一服務(wù)器實時存儲監(jiān)控設(shè)備發(fā)送對應(yīng)通道的第一視頻數(shù)據(jù)。在獲取識別碼對應(yīng)的監(jiān)控設(shè)備的通道的第一視頻數(shù)據(jù)后,轉(zhuǎn)換為標準視頻流并采用RTMP協(xié)議封裝后發(fā)送至用戶端顯示。由于FLASH流媒體為目前應(yīng)用最廣泛的流媒體,網(wǎng)頁瀏覽器都直接支持FLASH視頻流的播放,當用戶在網(wǎng)頁上查看相應(yīng)的監(jiān)控視頻時,無需下載廠家的控件即可在網(wǎng)頁上直接用FLASH播放器播放,給用戶帶來極大的便捷。
基于相同的發(fā)明構(gòu)思,本發(fā)明還提供一種獲取監(jiān)控視頻的系統(tǒng)。
一種獲取監(jiān)控視頻的系統(tǒng),包括第一服務(wù)器,如圖10所示,第一服務(wù)器10包括:
查看請求接收模塊11,用于接收視頻查看請求。
視頻查看請求包括請求查看的監(jiān)控設(shè)備信息。
第一獲取模塊12,用于獲取對應(yīng)的監(jiān)控設(shè)備的第一視頻數(shù)據(jù)。
第一服務(wù)器已預(yù)先與監(jiān)控設(shè)備連接,監(jiān)控設(shè)備將采集的視頻和音頻根據(jù)廠家的私有協(xié)議編碼生成第一視頻數(shù)據(jù)實時發(fā)送給第一服務(wù)器。根據(jù)接收到的請求查看的監(jiān)控設(shè)備信息查找并獲取對應(yīng)的監(jiān)控設(shè)備的第一視頻數(shù)據(jù)。
轉(zhuǎn)換模塊13,用于根據(jù)與第一視頻數(shù)據(jù)對應(yīng)的監(jiān)控設(shè)備信息,將第一視頻 數(shù)據(jù)轉(zhuǎn)換為標準視頻流。
不同監(jiān)控設(shè)備的生產(chǎn)廠家所采用的協(xié)議不同,當獲取到第一視頻數(shù)據(jù)時,第一服務(wù)器根據(jù)第一視頻數(shù)據(jù)對應(yīng)的監(jiān)控設(shè)備信息,如監(jiān)控設(shè)備的名稱,使用對應(yīng)的解碼器對第一視頻數(shù)據(jù)進行解碼,生成標準視頻流。
RTMP模塊14,用于采用RTMP協(xié)議對標準視頻流進行封裝。
RTMP(Real Time Messaging Protocol)協(xié)議,即實時消息傳輸協(xié)議,該協(xié)議基于TCP(Transmission Control Protocol傳輸控制協(xié)議),主要用來在FLASH平臺和支持RTMP協(xié)議的流媒體之間進行音視頻和數(shù)據(jù)通信。而且目前應(yīng)用最廣泛的流媒體為FLASH流媒體,網(wǎng)頁瀏覽器都直接支持FLASH視頻流的播放。
第一發(fā)送模塊15,用于將封裝后的標準視頻流發(fā)送至視頻查看請求的發(fā)送方。
上述獲取監(jiān)控視頻的系統(tǒng),通過將根據(jù)監(jiān)控設(shè)備廠家私有協(xié)議編碼形成的第一視頻數(shù)據(jù)進行轉(zhuǎn)換,轉(zhuǎn)換為標準視頻流,再將標準視頻流采用RTMP協(xié)議進行封裝。由于FLASH流媒體為目前應(yīng)用最廣泛的流媒體,網(wǎng)頁瀏覽器都直接支持FLASH視頻流的播放,當用戶在網(wǎng)頁上查看相應(yīng)的監(jiān)控視頻時,無需下載廠家的控件即可在網(wǎng)頁上直接用FLASH播放器播放,給用戶帶來極大的便捷。
在具體的實施方式中,一種獲取監(jiān)控視頻的系統(tǒng),還包括:
第二服務(wù)器20,第二服務(wù)器20與第一服務(wù)器10通信連接。
如圖11所示,第二服務(wù)器20包括:
第一驗證模塊201,用于接收登陸請求,并根據(jù)登陸請求攜帶的用戶標識驗證用戶是否有查看監(jiān)控視頻的權(quán)限。
用戶預(yù)先進行注冊,注冊成功后填寫與用戶相關(guān)的監(jiān)控設(shè)備的信息,并將用戶與監(jiān)控設(shè)備信息關(guān)聯(lián)。監(jiān)控設(shè)備信息包括:監(jiān)控設(shè)備名稱,設(shè)備ID,監(jiān)控通道和通道ID等。在用戶進行登陸時,根據(jù)登陸請求攜帶的用戶標識驗證用戶是否有查看監(jiān)控視頻的權(quán)限,只有預(yù)先注冊成功的用戶才有查看監(jiān)控視頻的權(quán)限。
第一查找模塊202,用于在第一驗證模塊201驗證通過時,根據(jù)用戶標識查找預(yù)先存儲的與用戶標識對應(yīng)的監(jiān)控設(shè)備信息。
此處的用戶識標可以為用戶名,也可以為用戶在注冊時生成的用戶ID,由于已事先建立用戶與監(jiān)控設(shè)備信息之間的關(guān)聯(lián),通過用戶標識可獲取對應(yīng)的監(jiān)控設(shè)備信息,監(jiān)控設(shè)備信息包括:監(jiān)控設(shè)備名稱,設(shè)備ID,監(jiān)控通道和通道ID等。
第二獲取模塊203,用于獲取與用戶標識關(guān)聯(lián)的監(jiān)控設(shè)備的通道ID對應(yīng)的驗證碼。
監(jiān)控設(shè)備的每一通道ID有不同的驗證碼,若與用戶標識對應(yīng)的監(jiān)控設(shè)備有多個通道,則獲取多個驗證碼。
第二發(fā)送模塊204,用于將驗證碼和第一服務(wù)器的信息發(fā)送給登陸請求的發(fā)送方。第一服務(wù)器的信息包括第一服務(wù)器的IP地址和端口。
在用戶權(quán)限驗證通過后,第二服務(wù)器還將驗證碼和第一服務(wù)器的信息發(fā)送給登陸請求的發(fā)送方。第一服務(wù)器的信息包括第一服務(wù)器的IP地址和端口。
如圖12所示,第一服務(wù)器10包括:
連接接收模塊111,用于接收用戶端的連接請求。
用戶端在獲取第一服務(wù)器的IP地址和端口后,與第一服務(wù)器進行通信,請求連接第一服務(wù)器。在一個具體的實施例中,請求的格式可以為:
rtmp://RelaySrvIP:RelaySrvPort/simpleLive。
查看請求接收模塊112接收的視頻查看請求具體包括監(jiān)控設(shè)備ID和驗證碼。
用戶端在與第一服務(wù)器連接成功后,向第一服務(wù)器發(fā)送視頻查看請求。視頻查看請求具體包括監(jiān)控設(shè)備ID和驗證碼,在一個具體的實施例中,查看請求的格式可以為:
dvsLive/驗證碼/設(shè)備ID。
第一獲取模塊113,具體用于根據(jù)驗證碼查找并獲取與驗證碼對應(yīng)的監(jiān)控設(shè)備的通道的第一視頻數(shù)據(jù)。
第一服務(wù)器已預(yù)先與監(jiān)控設(shè)備建立關(guān)聯(lián),實時接收并存儲監(jiān)控設(shè)備的不同通道的視頻數(shù)據(jù),并以每個通道對應(yīng)的驗證碼為標識。當?shù)谝环?wù)器接收到查看請求時,根據(jù)查看請求的驗證碼查找并獲取驗證碼對應(yīng)的監(jiān)控設(shè)備的通道的 第一視頻數(shù)據(jù)。
轉(zhuǎn)換模塊114,用于將第一視頻數(shù)據(jù)轉(zhuǎn)換為標準視頻流,標準視頻流的格式為H.264或MPEG-4。
將第一視頻數(shù)據(jù)轉(zhuǎn)換為標準視頻流時,根據(jù)第一視頻數(shù)據(jù)對應(yīng)的監(jiān)控設(shè)備的信息進行相應(yīng)的轉(zhuǎn)換成H.264格式的標準視頻流或MPEG-4格式的視頻流。本實施方式以H.264格式的視頻流為例,不同監(jiān)控設(shè)備的生產(chǎn)廠家所采用的協(xié)議不同,當獲取到第一視頻數(shù)據(jù)時,第一服務(wù)器根據(jù)第一視頻數(shù)據(jù)對應(yīng)的監(jiān)控設(shè)備信息,如監(jiān)控設(shè)備的名稱,對第一視頻數(shù)據(jù)進行解碼,生成H.264格式的視頻流。
可以理解的是,轉(zhuǎn)換模塊114中有多個與不同監(jiān)控設(shè)備信息相匹配的轉(zhuǎn)換單元,獲取到第一視頻數(shù)據(jù)后,根據(jù)第一視頻數(shù)據(jù)對應(yīng)的監(jiān)控設(shè)備信息選擇匹配的轉(zhuǎn)換單元進行轉(zhuǎn)換,轉(zhuǎn)換為標準視頻流。
RTMP模塊115,用于采用RTMP協(xié)議對標準視頻流進行封裝。
第一發(fā)送模塊116,用于將封裝后的標準視頻流發(fā)送至視頻查看請求的發(fā)送方。
應(yīng)當理解的是,考慮到數(shù)據(jù)龐大,為提高服務(wù)器的處理效率和響應(yīng)速度,本發(fā)明采用分布式的架構(gòu),由第二服務(wù)器進行權(quán)限驗證,第一服務(wù)器進行視頻轉(zhuǎn)換。采用分布式的架構(gòu),隨著數(shù)據(jù)的不斷增加,可相應(yīng)增加服務(wù)器數(shù)量,由第二服務(wù)器進行分配,發(fā)送相應(yīng)的服務(wù)器的IP地址和端口給視頻查看請求的發(fā)送方,視頻查看請求的發(fā)送方再與分配的服務(wù)器進行連接。
上述的獲取監(jiān)控視頻的系統(tǒng),采用分布式的架構(gòu),通過預(yù)先建立用戶與監(jiān)控設(shè)備之間的關(guān)聯(lián),第二服務(wù)器用于驗證請求用戶的權(quán)限,在驗證請求用戶有查看視頻的權(quán)限后,將相關(guān)信息發(fā)送分別發(fā)送給第一服務(wù)器和用戶端,用戶端向第一服務(wù)器請求查看視頻,第一服務(wù)器將根據(jù)監(jiān)控設(shè)備廠家私有協(xié)議編碼形成的第一視頻數(shù)據(jù)進行轉(zhuǎn)換,轉(zhuǎn)換為標準視頻流,再將標準視頻流采用RTMP協(xié)議進行封裝。由于,F(xiàn)LASH流媒體為目前應(yīng)用最廣泛的流媒體,網(wǎng)頁瀏覽器都直接支持FLASH視頻流的播放,當用戶在網(wǎng)頁上查看相應(yīng)的監(jiān)控視頻時,無需下載廠家的控件即可在網(wǎng)頁上直接用FLASH播放器播放,給用戶帶來極大的 便捷。對于想在自己網(wǎng)站上展示產(chǎn)品、展示公司形象、網(wǎng)頁視頻監(jiān)控等等應(yīng)用需求的用戶來說,使用上述方法,無需安裝其它控件,即可輕松完成網(wǎng)站嵌入需求。
具體的,第一查找模塊202具體包括:
第一查找單元,用于查找是否存儲有與用戶標識關(guān)聯(lián)的監(jiān)控設(shè)備的通道ID對應(yīng)的驗證碼。
驗證碼生成單元,用于在第一查找單元的查找結(jié)果為否時,生成并存儲與監(jiān)控設(shè)備的通道ID對應(yīng)的驗證碼。
第一獲取單元,用于在第一查找單元的查找結(jié)果為是時,獲取存儲的與用戶標識關(guān)聯(lián)的監(jiān)控設(shè)備的通道ID對應(yīng)的驗證碼。
生成監(jiān)控設(shè)備的通道ID對應(yīng)的驗證碼后還將存儲該驗證碼,用戶每次請求查看該通道對應(yīng)的視頻數(shù)據(jù)時,使用的是相同的驗證碼,且多個用戶請求查看該通道對應(yīng)的視頻數(shù)據(jù)時,使用的是相同的驗證碼。
第二發(fā)送模塊204,還用于將監(jiān)控設(shè)備信息和驗證碼發(fā)送給第一服務(wù)器。
如圖13所示,第一服務(wù)器10還包括:
第一任務(wù)創(chuàng)建模塊117,用于建立以驗證碼為任務(wù)標識的任務(wù)。
第一存儲模塊118,用于接收并存儲驗證碼對應(yīng)的監(jiān)控設(shè)備的通道的第一視頻數(shù)據(jù)。
用戶首次關(guān)聯(lián)監(jiān)控設(shè)備的某一通道時,第一服務(wù)器還未獲取該通道的數(shù)據(jù),則第二服務(wù)器在驗證請求用戶權(quán)限通過后,將生成監(jiān)控設(shè)備的通道ID對應(yīng)的驗證碼,并將監(jiān)控設(shè)備信息和驗證碼發(fā)送給第一服務(wù)器,第一服務(wù)器創(chuàng)建以驗證碼為任務(wù)標識的任務(wù),第一服務(wù)器實時存儲監(jiān)控設(shè)備發(fā)送對應(yīng)通道的第一視頻數(shù)據(jù)。當接收到視頻查看請求時,根據(jù)查看請求的驗證碼查找并獲取該驗證碼對應(yīng)的監(jiān)控設(shè)備的通道的第一視頻數(shù)據(jù)。
如圖14所示,在另一實施方式中,第一服務(wù)器10還包括:
第二驗證模塊306,用于接收登陸請求,并根據(jù)登陸請求攜帶的用戶標識驗證請求用戶是否有查看監(jiān)控視頻的權(quán)限。
第二查找模塊307,用于在第二驗證模塊306驗證通過時,根據(jù)用戶標識查 找預(yù)先存儲的與用戶標識對應(yīng)的監(jiān)控設(shè)備信息,監(jiān)控設(shè)備信息包括監(jiān)控設(shè)備ID和通道ID。
第三獲取模塊308,用于獲取與用戶標識關(guān)聯(lián)的監(jiān)控設(shè)備的通道ID對應(yīng)的識別碼。
查看請求接收模塊301接收的視頻查看請求具體包括監(jiān)控設(shè)備ID和識別碼。
第一獲取模塊302具體用于根據(jù)識別碼查找并獲取與識別碼對應(yīng)的監(jiān)控設(shè)備的通道的第一視頻數(shù)據(jù)。
轉(zhuǎn)換模塊303,用于將第一視頻數(shù)據(jù)轉(zhuǎn)換為標準視頻流,標準視頻流的格式為H.264或MPEG-4。
可以理解的是,轉(zhuǎn)換模塊303中有多個與不同監(jiān)控設(shè)備信息相匹配的轉(zhuǎn)換單元,獲取到第一視頻數(shù)據(jù)后,根據(jù)第一視頻數(shù)據(jù)對應(yīng)的監(jiān)控設(shè)備信息選擇匹配的轉(zhuǎn)換單元進行轉(zhuǎn)換,轉(zhuǎn)換為標準視頻流。
RTMP模塊304,用于采用RTMP協(xié)議對標準視頻流進行封裝。
第一發(fā)送模塊305,用于將封裝后的標準視頻流發(fā)送至視頻查看請求的發(fā)送方。
本實施方式中,僅采用一個服務(wù)器進行驗證和轉(zhuǎn)換,識別碼用于區(qū)分識別不同監(jiān)控設(shè)備的通道的第一視頻數(shù)據(jù),第一服務(wù)器在獲取與用戶關(guān)聯(lián)的監(jiān)控設(shè)備的通道ID對應(yīng)的識別碼后,根據(jù)識別碼查找并獲取對應(yīng)的監(jiān)控設(shè)備的通道的第一視頻數(shù)據(jù),并將第一視頻數(shù)據(jù)轉(zhuǎn)換為標準視頻流,采用RTMP協(xié)議封裝后發(fā)送至用戶端顯示。由于FLASH流媒體為目前應(yīng)用最廣泛的流媒體,網(wǎng)頁瀏覽器都直接支持FLASH視頻流的播放,當用戶在網(wǎng)頁上查看相應(yīng)的監(jiān)控視頻時,無需下載廠家的控件即可在網(wǎng)頁上直接用FLASH播放器播放,給用戶帶來極大的便捷。
具體的,第二查找模塊307包括:
第二查找單元,用于查找是否存儲有與用戶標識關(guān)聯(lián)的監(jiān)控設(shè)備的通道ID對應(yīng)的識別碼。
第二獲取單元,用于在第二查找單元的查找結(jié)果為是時,獲取存儲的與用 戶標識關(guān)聯(lián)的監(jiān)控設(shè)備的通道ID對應(yīng)的識別碼。
識別碼生成單元,用于在第二查找單元的查找結(jié)果為否時,生成并存儲與監(jiān)控設(shè)備的通道ID對應(yīng)的識別碼。
如圖15所示,第一服務(wù)器還包括:
第二任務(wù)創(chuàng)建模塊309,用于建立以識別碼為任務(wù)標識的任務(wù)。
第二存儲模塊310,用于接收并存儲識別碼對應(yīng)的監(jiān)控設(shè)備的通道的第一視頻數(shù)據(jù)。
上這獲取監(jiān)控視頻的系統(tǒng),僅使用一臺服務(wù)器,用戶首次關(guān)聯(lián)監(jiān)控設(shè)備的某一通道時,第一服務(wù)器還未獲取該通道的數(shù)據(jù),則第一服務(wù)器在驗證用戶權(quán)限通過后,將生成監(jiān)控設(shè)備的通道ID對應(yīng)的識別碼,第一服務(wù)器創(chuàng)建以識別碼為任務(wù)標識的任務(wù),第一服務(wù)器實時存儲監(jiān)控設(shè)備發(fā)送對應(yīng)通道的第一視頻數(shù)據(jù)。在獲取識別碼對應(yīng)的監(jiān)控設(shè)備的通道的第一視頻數(shù)據(jù)后,轉(zhuǎn)換為標準視頻流并采用RTMP協(xié)議封裝后發(fā)送至用戶端顯示。由于FLASH流媒體為目前應(yīng)用最廣泛的流媒體,網(wǎng)頁瀏覽器都直接支持FLASH視頻流的播放,當用戶在網(wǎng)頁上查看相應(yīng)的監(jiān)控視頻時,無需下載廠家的控件即可在網(wǎng)頁上直接用FLASH播放器播放,給用戶帶來極大的便捷。
以上所述實施例的各技術(shù)特征可以進行任意的組合,為使描述簡潔,未對上述實施例中的各個技術(shù)特征所有可能的組合都進行描述,然而,只要這些技術(shù)特征的組合不存在矛盾,都應(yīng)當認為是本說明書記載的范圍。
以上所述實施例僅表達了本發(fā)明的幾種實施方式,其描述較為具體和詳細,但并不能因此而理解為對發(fā)明專利范圍的限制。應(yīng)當指出的是,對于本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進,這些都屬于本發(fā)明的保護范圍。因此,本發(fā)明專利的保護范圍應(yīng)以所附權(quán)利要求為準。