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