一種網(wǎng)絡(luò)攝像機視頻傳輸方法
【技術(shù)領(lǐng)域】
[0001 ] 本發(fā)明涉及一種網(wǎng)絡(luò)攝像機視頻傳輸方法。
【背景技術(shù)】
[0002]目前常用的網(wǎng)絡(luò)攝像機,其分辨率可達到300萬至1200萬,隨著用戶需求的不斷提高,對分辨率、幀率的要求還會越來越高。經(jīng)過編碼壓縮技術(shù)得到的視頻流,及時上傳到網(wǎng)絡(luò)中,發(fā)送給其他終端,實現(xiàn)用戶的實時觀看,而這樣的功能,需要每秒發(fā)送高達8Mbit甚至更高的數(shù)據(jù)流。
[0003]網(wǎng)絡(luò)攝像機的實時視頻播放功能,是根據(jù)用戶的請求協(xié)議,將實時拍攝到的畫面圖像壓縮編碼成視頻流(如H.264/H.265/MPEG4等),在按照某種協(xié)議(如RTSP/私有協(xié)議等),通過網(wǎng)絡(luò)發(fā)送給用戶使用的終端,再進行解碼播放,使用戶能遠距離實時地觀看拍攝場景畫面。
[0004]對于全景像機,由于其拍攝畫面特殊,存在大量畸變,需要特殊的圖像處理來顯示才能使觀看者較容易接受。圖1就是一種透視效果對全景圖像進行處理,模擬云臺PTZ來顯示其中的一小部分區(qū)域(左下角全景圖像的框體內(nèi)部)。
[0005]隨著硬件技術(shù)的發(fā)展,目前攝像機的分辨率越來越高,導(dǎo)致視頻編碼與解碼開銷增大,視頻流數(shù)據(jù)量也變大,在某些場合下,網(wǎng)絡(luò)提供的帶寬與編解碼提供的硬件資源不能滿足完整的視頻傳輸要求。這個問題在全景像機應(yīng)用時尤為突出(全景攝像機主要功能是通過特殊的成像系統(tǒng)拍攝周圍180°甚至360°的圖像,將采集到的圖像數(shù)字化,在進行壓縮編碼,通過網(wǎng)絡(luò)發(fā)送給用戶觀看。由于拍攝的范圍想當(dāng)廣泛,其分辨率需求也比一般攝像機要求更高)。
[0006]在傳輸高質(zhì)量、高流暢度、高清晰度的視頻時,其數(shù)據(jù)流量也會相應(yīng)提高,而正因如此,視頻的整體觀看效果受到網(wǎng)絡(luò)帶寬條件、流量條件以及編碼設(shè)備和播放設(shè)備軟硬件條件的嚴(yán)格限制。
[0007]在局域網(wǎng)(或其他專用網(wǎng)絡(luò))條件下,由于帶寬資源豐富,所以能夠承受高碼流的視頻數(shù)據(jù)傳輸,但是在廣域網(wǎng)應(yīng)用時(如基于互聯(lián)網(wǎng)的應(yīng)用),通常提供的傳輸帶寬極為有限,不能滿足視頻傳輸所需要的帶寬要求。目前基于3G、4G的無線互聯(lián)網(wǎng)應(yīng)用也同樣很難滿足要求,況且其按流量收費的方式也給用戶帶來比較大的負擔(dān)。
[0008]隨著分辨率的提高,編碼設(shè)備輸出的幀率會有所下降(如同樣價格成本的編碼芯片,針對130萬象素的視頻可以做到30幀,而針對500萬象素的視頻只能做到15幀)。
[0009]此外,隨著智能終端的普及,手機、PAD在很多時候成為互聯(lián)網(wǎng)應(yīng)用像機的視頻觀察屏幕,限于終端設(shè)備的處理能力限制,這些基于智能終端的應(yīng)用在處理視頻時(如對圖形進行畸變修正),如果圖像的分辨率高,也會帶來壓力。
[0010]目前已存在一種基于ROI區(qū)域的編碼技術(shù),根據(jù)自動或手動設(shè)置的感興趣區(qū)域,通過參數(shù)調(diào)節(jié)甚至算法修改,只對區(qū)域內(nèi)進行精細編碼,進而降低碼流量,減少對帶寬的需求。即使采用ROI區(qū)域編碼,雖然能降低帶寬需求,但因為實現(xiàn)圖像的分辨率并沒有改變,也無法提高幀率和降低硬件性能需求。
[0011]受到視頻顯示終端的限制,高分辨率圖像在設(shè)備端顯示時,經(jīng)常只顯示其中一部分,傳統(tǒng)的編解碼、傳輸、處理整個圖像的方法實際造成資源浪費。
【發(fā)明內(nèi)容】
[0012]為了解決上述的技術(shù)問題,本發(fā)明的目的是提供一種網(wǎng)絡(luò)攝像機視頻傳輸方法,該方法基于用戶的觀看視頻的需求,在盡可能保證用戶觀看質(zhì)量的前提下,利用有限的網(wǎng)絡(luò)資源,實現(xiàn)視頻的傳輸,解決了帶寬不足時,保持向用戶提供高質(zhì)量、高流暢度、高清晰度的視頻。
[0013]為了實現(xiàn)上述的目的,本發(fā)明采用了以下的技術(shù)方案:
一種網(wǎng)絡(luò)攝像機視頻傳輸方法,該方法包括以下的步驟:
1)通過互聯(lián)網(wǎng),網(wǎng)絡(luò)像機與客戶端程序建立連接;
2)客戶端根據(jù)當(dāng)前的自動或手動操作,生成控制信息,發(fā)送給網(wǎng)絡(luò)像機,所述的信息包括客戶端的圖像需求分辨率、播放區(qū)域和圖像質(zhì)量設(shè)置中的一種或多種;
3)網(wǎng)絡(luò)像機根據(jù)收到的指令,對傳感器采集到的畫面進行處理,以滿足客戶播放需求;
4)網(wǎng)絡(luò)像機對處理后的圖像序列進行視頻流編碼;
5)將視頻流處理所依據(jù)的播放信息內(nèi)嵌入視頻流一起發(fā)送給客戶端;或者通過網(wǎng)絡(luò)協(xié)議,以單獨的數(shù)據(jù)形式發(fā)送給客戶端;
6)客戶端根據(jù)收到的視頻流以及播放信息進行解碼和顯示;
7)當(dāng)客戶端的播放信息發(fā)生變動時,重復(fù)第二步到第六步。
[0014]通過以上方法,可以根據(jù)用戶的瀏覽需求,動態(tài)調(diào)整傳輸內(nèi)容,一方面降低了對傳輸帶寬的要求,同時也降低接收端的視頻解碼和運算壓力。
[0015]作為優(yōu)選,所述的步驟3)中網(wǎng)絡(luò)像機對畫面進行處理的手段包括剪裁畫面和圖像縮放中的一種或2種。
[0016]作為優(yōu)選,所述的步驟3)中網(wǎng)絡(luò)攝像機進行高清完整圖像的采集和本地存儲。
[0017]作為優(yōu)選,所述的步驟4)中視頻流編碼采用H264視頻流編碼。
[0018]作為優(yōu)選,所述的步驟5)中播放信息包括視頻在全局中的位置、邊界和當(dāng)前視頻分辨率、幀率。
[0019]作為優(yōu)選,所述的網(wǎng)絡(luò)攝像機為普通攝像機或全景攝像機,所述的全景攝像機的視場角為120°以上。
[0020]上述技術(shù)需要通過網(wǎng)絡(luò)傳輸,將客戶端控制指令發(fā)往IPC,IPC改變局部視頻編碼后再傳輸給客戶端。由于存在網(wǎng)絡(luò)通信延遲、視頻編碼延遲等問題,可能會導(dǎo)致用戶感覺控制響應(yīng)延遲,體驗感較差,而且由于局部碼流的編碼區(qū)域延遲,會導(dǎo)致用戶操作時,當(dāng)前顯示區(qū)在延遲時間內(nèi)沒有圖像顯示。
[0021]為了解決上述的技術(shù)問題,本發(fā)明的進一步改進方案是:
在客戶端播放完整圖像時,根據(jù)顯示設(shè)備的分辨率尺寸,合理設(shè)置縮放比例,發(fā)送給網(wǎng)絡(luò)像機;網(wǎng)絡(luò)攝像機生成完整圖像的縮放視頻,傳輸給客戶端,類似目前常用的子碼流,稱為StreamOri ;將步驟4)獲得視頻流編碼稱為StreamLocal,在執(zhí)行步驟5)的同時仍然進行StreamOri的編碼,并將StreamOri與StreamLocal視頻流混合;步驟6)客戶端根據(jù)收到的混合視頻流后,分檢出完整圖像縮放視頻和局部剪裁縮放視頻,以及相關(guān)的播放信息;得到不同的圖像FrameOri和FrameLocal再根據(jù)播放需要,顯示在不同區(qū)域:當(dāng)需要播放全圖時,顯示FrameOri,當(dāng)需要顯示局部矯正視頻,則顯示FrameLocal,當(dāng)FrameLocal與需要顯示的區(qū)域不一致時,使用FrameOri進行臨時填充。
[0022]作為優(yōu)選,根據(jù)設(shè)置信息調(diào)整StreamLocal和StreamOri的碼流量比例和\或幀率比例,將兩路視頻流按照時序進行混合。
[0023]作為優(yōu)選,根據(jù)資源限制或其他控制,將StreamOri幀率調(diào)低,然后嵌入StreamLocal視頻流中,并通過特定協(xié)議或視頻流標(biāo)準(zhǔn)協(xié)議的部分信息加以區(qū)分,在客戶端時針對不同的視頻分別解碼。
[0024]目前的大部分視頻播放設(shè)備實際分辨率在1080P (約200萬像素)或720P (約100像素)左右即可提供很好的觀看效果,這一分辨率基本都小于高分辨網(wǎng)絡(luò)攝像機的拍攝分辨率(通??梢蕴峁?00萬或更高像素),所以在播放視頻時,或者顯示視頻的局部細節(jié)而忽略其他區(qū)域,或者忽略細節(jié)而播放整體場景。本發(fā)明由于采用了上述的技術(shù)方案,當(dāng)用戶需要觀看整體畫面時,可以根據(jù)用戶發(fā)送的顯示分辨率信息對圖像的縮小,再進行編碼;而如果用戶需要觀看局部時,則根據(jù)用戶發(fā)來的顯示區(qū)域信息以及顯示分辨率信息對圖像進行裁剪縮放,分割出局部圖像進行編碼。另外通過技術(shù)處理實現(xiàn)兩種情況的自然過渡,最終實現(xiàn)根據(jù)用戶的實時需求,在滿足需求的條件下減少碼流數(shù)據(jù),降低帶寬或流量需求。本發(fā)明的方法基于用戶的觀看視頻的需求,在盡可能保證用戶觀看質(zhì)量的前提下,利用有限的網(wǎng)絡(luò)資源,實現(xiàn)視頻的傳輸,解決了帶寬不足時,保持向用戶提供高質(zhì)量、高流暢度、高清晰度的視頻。
【附圖說明】
[0025]圖1為全景視頻處理效果圖。
[0026]圖2為網(wǎng)絡(luò)攝像機的畫面整體顯示和局部放大顯示。
【具體實施方式】
[0027]實施例1網(wǎng)絡(luò)攝像機局部放大(如圖2所示)
I)在網(wǎng)絡(luò)像機與客戶端程序間建立連接。
[0028]2)客戶端獲取當(dāng)前將要播放的窗口分辨率(width,height )、用戶手動或自動設(shè)置的播放視頻區(qū)域中心在原始圖像(WIDTH, HEIGHT )中的像素(cx,cy ),視頻顯示放大倍數(shù)rate (rate>=l:按比例播放局部;rate=0:播放全圖)。并發(fā)送給網(wǎng)絡(luò)像機。
[0029]3)網(wǎng)絡(luò)像機收到參數(shù)后,計算剪裁區(qū)域(left, top, right, bottom),縮放比例(fx, fy )ο
[0030]rate = 0 時: fx = width / WIDTH fy = height / HEIGHT left = 0
top = 0right = WIDTHbottom = HEIGHT
rate != 0 時:
顯示放大系數(shù)
rate = max(rate, width / WIDHT )rate = max(rate, height / HEIGHT )
顯示播放區(qū)域不能超過原始圖像范圍
cx = max(cx, width * 0.5 / rate )
cx = min( cx, WIDTH - width * 0.5 / rate )
cy = max(cy, height * 0.5 / rate )
cy = min( cy, HEIGHT - height