一種多屏視頻同步播放方法及裝置制造方法
【專利摘要】本發(fā)明公開一種多屏視頻同步播放方法及裝置,其方法包括:將超高分辨率視頻源切分成等份的小視頻放在不同的節(jié)點(diǎn)機(jī)上,將各視頻數(shù)據(jù)轉(zhuǎn)換成YUV圖像序列,各個(gè)小視頻的同一幀序列采用相同編號(hào)標(biāo)識(shí);將YUV圖像序列生成YUV文件;主控機(jī)發(fā)送命令到使所有節(jié)點(diǎn)機(jī)在同一時(shí)刻開始播放視頻;攝像頭開始同步拍攝整個(gè)視頻畫面,分析幀的編號(hào);當(dāng)有幀編號(hào)不一致時(shí)候,主控機(jī)發(fā)送命令到幀不一致的節(jié)點(diǎn)機(jī)修改需要播放的幀的序列號(hào),從該節(jié)點(diǎn)機(jī)取出要播放的幀圖像序列,達(dá)到同一畫面所有幀編號(hào)一致。本發(fā)明無需人工預(yù)調(diào)整視頻同步,使視頻同步播放具有智能化、幀速播放穩(wěn)定,在幀出現(xiàn)不同步時(shí),能夠快速選定哪幀進(jìn)行播放,無需暫停視頻重新開始播放。
【專利說明】一種多屏視頻同步播放方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及視頻處理領(lǐng)域,更具體地,涉及一種多屏視頻同步播放方法及裝置。
【背景技術(shù)】
[0002]隨著數(shù)字影院播放系統(tǒng)對(duì)清晰度的要求越來越高,輸出畫面的分辨率已經(jīng)遠(yuǎn)遠(yuǎn)超過一臺(tái)計(jì)算機(jī)或者說一個(gè)顯示設(shè)備的輸出分辨率,因此往往需要多臺(tái)設(shè)備一起拼接出一個(gè)超高分辨率的完整畫面,如何保證所有設(shè)備輸出的畫面的同步就成了一個(gè)關(guān)鍵問題。
[0003]傳統(tǒng)方法主要有兩種:
1、通過網(wǎng)絡(luò)或者其他通訊方式進(jìn)行協(xié)調(diào),保證所有機(jī)器在同一時(shí)刻繪一幀畫面。具體方法是:系統(tǒng)中有一臺(tái)稱作主控的機(jī)器,通過網(wǎng)絡(luò)通知其他所有機(jī)器生成某一幀畫面,所有機(jī)器生成好之后先不輸出,而是通知主控,主控知道所有機(jī)器都準(zhǔn)備好新的畫面以后再發(fā)送一個(gè)輸出的命令,所有繪制機(jī)器收到這個(gè)命令的時(shí)候一起輸出畫面,從而實(shí)現(xiàn)同步。該方法的缺陷是需要依賴機(jī)器之前的通訊,如果是通過網(wǎng)絡(luò)通訊,則每一幀至少會(huì)有兩次通信:主控-> 節(jié)點(diǎn),節(jié)點(diǎn)-> 主控,網(wǎng)絡(luò)的不穩(wěn)定,數(shù)據(jù)包的丟失、延時(shí),網(wǎng)絡(luò)命令的響應(yīng)時(shí)間、處理時(shí)間都會(huì)對(duì)同步播放造成影響,從而造成幀速不穩(wěn),影片播放不流暢,出現(xiàn)卡的效果。如果是通過別的高性能高穩(wěn)定性的通訊設(shè)備又會(huì)增加硬件成本。
[0004]2、通過每臺(tái)設(shè)備自身的計(jì)時(shí)器來觸發(fā)繪制:首先每臺(tái)機(jī)器上都有一個(gè)經(jīng)過校準(zhǔn)的計(jì)時(shí)器,開始播放前所有機(jī)器都會(huì)收到一個(gè)開始播放命令,命令要告知從哪一個(gè)時(shí)刻開始播放,由于所有機(jī)器的播放時(shí)鐘是經(jīng)過校準(zhǔn)的,因此大家都會(huì)在同一個(gè)時(shí)刻播放第一幀,之后按照自身計(jì)時(shí)器的時(shí)鐘每次輸出一幀新的畫面,只要計(jì)時(shí)器時(shí)鐘保持一致,就可以一直保持同步。該方法的缺點(diǎn)有兩點(diǎn):一是所有機(jī)器安裝精準(zhǔn)的定時(shí)器,增加成本太大。二是對(duì)于在計(jì)算機(jī)上播放數(shù)字影片來講,輸出畫面都要通過顯卡,而顯卡的輸出是跟顯卡的刷新直接相關(guān)的,即使計(jì)時(shí)器可以非常精確,還是要等待顯卡的刷新周期。
[0005]在解決傳統(tǒng)兩種方法時(shí)候,都要用人眼去觀察整個(gè)畫面是否同步,并且由于視頻播放幀率快,人眼經(jīng)常很難辨別視頻畫面是否同步,就算人眼容易看到連續(xù)幀不同步,也只能通過停止視頻播放進(jìn)行人工干預(yù)調(diào)整視頻同步,很少用到全智能化的方法進(jìn)行同步播放。
[0006]為了克服傳統(tǒng)方法的不足,有技術(shù)人員提出過“基于攝像頭拍攝的視頻同步方法”,該方法是通過將超高分辨率視頻源切分成小視頻,將小視頻放在不同的節(jié)點(diǎn)機(jī)上,各小視頻的同一幀采用相同編號(hào)標(biāo)識(shí);通過攝像頭拍攝視頻整個(gè)畫面是否一致進(jìn)行視頻同步處理。該方法無需采用網(wǎng)絡(luò)進(jìn)行通信,能極大的減少網(wǎng)絡(luò)通信異常和網(wǎng)絡(luò)響應(yīng)異常造成的同步問題。但當(dāng)存在幀不同步時(shí),則需要暫停視頻進(jìn)行調(diào)整后再重新播放。
【發(fā)明內(nèi)容】
[0007]為了上述現(xiàn)有技術(shù)的不足,本發(fā)明首先提出一種多屏視頻同步播放方法,該方法無需人工預(yù)調(diào)整視頻同步,使視頻同步播放具有智能化、幀速播放穩(wěn)定,在幀出現(xiàn)不同步時(shí),能夠快速選定哪幀進(jìn)行播放,無需暫停視頻重新開始播放。
[0008]本發(fā)明的又一目的是提出一種多屏視頻同步播放裝置。
[0009]為了實(shí)現(xiàn)上述目的,本發(fā)明的技術(shù)方案為:
一種多屏視頻同步播放方法,包括以下步驟:
S1:將超高分辨率視頻源切分成等份的小視頻放在不同的節(jié)點(diǎn)機(jī)上,將各視頻數(shù)據(jù)轉(zhuǎn)換成YUV圖像序列,各個(gè)小視頻的同一幀序列采用相同編號(hào)標(biāo)識(shí);
52:將YUV圖像序列按照設(shè)定的存儲(chǔ)規(guī)則生成YUV文件;
53:連接攝像頭的主控機(jī)發(fā)送命令到所有節(jié)點(diǎn)機(jī),使所有節(jié)點(diǎn)機(jī)在同一時(shí)刻開始播放視頻;
54:攝像頭開始同步拍攝整個(gè)視頻畫面,并且分析所有幀的編號(hào)是否一致;
S5:當(dāng)遇到有幀編號(hào)不一致時(shí)候,主控機(jī)發(fā)送命令到幀不一致的節(jié)點(diǎn)機(jī)修改需要播放的幀的序列號(hào),從該節(jié)點(diǎn)機(jī)取出要播放的幀圖像序列,達(dá)到同一畫面所有節(jié)點(diǎn)機(jī)的幀編號(hào)—致。
[0010]其中,步驟SI中超高分辨率視頻應(yīng)分成成幾個(gè)具有相同分辨率的小視頻,小視頻能拼接成原先的一幀超高畫面,各小視頻放在不同的節(jié)點(diǎn)機(jī)上,各視頻數(shù)據(jù)必須轉(zhuǎn)換為YUV格式,因?yàn)閅UV格式的數(shù)據(jù)都是一幀幀的,則在視頻播放的時(shí)候可以把視頻同步精確到每一幀,每個(gè)視頻編號(hào)的位置可根據(jù)需要進(jìn)行設(shè)置,盡量放到攝像頭能拍攝到的范圍內(nèi)。同時(shí),各個(gè)小視頻的同一幀采用相同的標(biāo)號(hào)標(biāo)識(shí),將編號(hào)與對(duì)應(yīng)的視頻幀保存,以便主控機(jī)查詢判斷,采用編號(hào)標(biāo)識(shí)小視頻使用攝像頭拍攝時(shí),根據(jù)拍攝的編號(hào)判斷視頻的同步性。
[0011]一種多屏視頻同步播放裝置,包括:
視頻切分模塊:用于將超高分辨率視頻源切分成等份的小視頻放在不同的節(jié)點(diǎn)機(jī)上,將各視頻數(shù)據(jù)轉(zhuǎn)換成YUV圖像序列,各個(gè)小視頻的同一幀序列采用相同編號(hào)標(biāo)識(shí);
YUV轉(zhuǎn)換模塊:將YUV圖像序列按照設(shè)定的存儲(chǔ)規(guī)則生成YUV文件;
控制模塊:連接攝像頭的主控機(jī)發(fā)送命令到所有節(jié)點(diǎn)機(jī),使所有節(jié)點(diǎn)機(jī)在同一時(shí)刻開始播放視頻;
視頻同步鑒別模塊:攝像頭開始同步拍攝整個(gè)視頻畫面,并且分析所有幀的編號(hào)是否一致;
校正模塊:當(dāng)遇到有幀編號(hào)不一致時(shí)候,主控機(jī)發(fā)送命令到幀不一致的節(jié)點(diǎn)機(jī)修改需要播放的幀的序列號(hào),從該節(jié)點(diǎn)機(jī)取出要播放的幀圖像序列,達(dá)到同一畫面所有節(jié)點(diǎn)機(jī)的中貞編號(hào)一致。
[0012]與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果為:首先,將視頻數(shù)據(jù)轉(zhuǎn)換為YUV格式,使得在視頻播放時(shí)可把視頻同步精確到每一幀;在存在不同步時(shí),能快速的讀取幀不同步節(jié)點(diǎn)機(jī)出錯(cuò)序列幀號(hào),無需通過計(jì)算機(jī)硬件設(shè)備的刷新率進(jìn)行調(diào)整;采用數(shù)據(jù)結(jié)構(gòu):StructFrameInfo來存儲(chǔ)YUV文件,能夠方便巾貞不同步時(shí)快速選定哪巾貞進(jìn)行播放,無需暫停視頻重新開發(fā)播放。其次攝像頭的幀率與整個(gè)畫面的幀率同步,能夠防止拍攝的畫面有閃爍。最后,通過攝像頭拍攝畫面上的畫面編號(hào)來進(jìn)行同步判定,減少人工干預(yù),實(shí)現(xiàn)調(diào)整自動(dòng)化;并能減少網(wǎng)絡(luò)異常和網(wǎng)絡(luò)響應(yīng)異常造成的同步問題;本發(fā)明采用攝像頭拍攝,不需要不停的發(fā)送同步命令,只需要有錯(cuò)誤才發(fā)送校準(zhǔn),能減少網(wǎng)絡(luò)系統(tǒng)資源的使用。
【專利附圖】
【附圖說明】
[0013]圖1為本發(fā)明實(shí)施例的流程圖。
[0014]圖2為本發(fā)明實(shí)施例的攝像頭拍攝切分后的視頻播放示意圖。
【具體實(shí)施方式】
[0015]下面結(jié)合附圖對(duì)本發(fā)明做進(jìn)一步的描述,但本發(fā)明的實(shí)施方式并不限于此。
實(shí)施例
[0016]如圖1,一種多屏視頻同步播放方法,包括以下步驟:
S1:將超高分辨率視頻源切分成等份的小視頻放在不同的節(jié)點(diǎn)機(jī)上,各個(gè)小視頻的同一幀用數(shù)字編號(hào),在本實(shí)施例中,各視頻的第一、二、……、N幀分別采用編號(hào)1、2、……、N標(biāo)識(shí);便于攝像頭拍攝;
52JfYUV圖像序列按照設(shè)定的存儲(chǔ)規(guī)則生成YUV文件,方便在視頻同步播放時(shí)候進(jìn)行同步處理;
53:連接攝像頭的主控機(jī)發(fā)送命令到所有節(jié)點(diǎn)機(jī),使所有節(jié)點(diǎn)機(jī)在同一時(shí)刻開始播放視頻;
54:攝像頭開始同步拍攝整個(gè)視頻畫面,并且分析所有幀的編號(hào)是否一致;
S5:當(dāng)遇到有幀編號(hào)不一致時(shí)候,主控機(jī)發(fā)送命令到幀不一致的節(jié)點(diǎn)機(jī)修改需要播放的幀的序列號(hào),從該節(jié)點(diǎn)機(jī)取出要播放的幀圖像序列,達(dá)到同一畫面所有節(jié)點(diǎn)機(jī)的幀編號(hào)—致。
[0017]其中,步驟SI中超高分辨率視頻應(yīng)分成等份的每個(gè)節(jié)點(diǎn)機(jī)的分辨率大小的視頻,本實(shí)施例如圖2,設(shè)置為2X2系統(tǒng),每個(gè)視頻分辨率為1024X768,各視頻數(shù)據(jù)必須轉(zhuǎn)換為YUV格式,因?yàn)閅UV格式的數(shù)據(jù)都是一幀幀的,則在視頻播放的時(shí)候可以把視頻同步精確到每一幀,每個(gè)視頻編號(hào)的位置可根據(jù)需要進(jìn)行設(shè)置,盡量放到攝像頭能拍攝到的范圍內(nèi)。
[0018]步驟S2涉及一種YUV文件的存儲(chǔ)方法,在本方法中預(yù)先設(shè)置如下數(shù)據(jù)結(jié)構(gòu):StructFrameInfo
{
framelndex;// (2字節(jié))巾貞序列號(hào) startPos;//(4字節(jié))片段數(shù)據(jù)的開始位置 endPos;//(4字節(jié))片段數(shù)據(jù)的結(jié)束位置 frameffeidth;//(2字節(jié))巾貞寬度 frameHeight;//(2字節(jié))巾貞高度 frameRate ;// (2字節(jié))巾貞速率 }
在第一巾貞的前16個(gè)字節(jié)用來存儲(chǔ)所有巾貞的信息,包括StructFrameInfo數(shù)據(jù)結(jié)構(gòu)的信息,這樣方便幀不同步時(shí)候快速選定哪幀進(jìn)行播放,無需暫停視頻重新開發(fā)播放。
[0019]步驟S3中主控機(jī)必須是接有攝像頭的節(jié)點(diǎn)機(jī),任何節(jié)點(diǎn)機(jī)都可接攝像頭作為主控機(jī);步驟S4中攝像頭的幀率必須跟整個(gè)拼接畫面的幀率同步,不然拍攝的畫面會(huì)有閃爍,所以在攝像頭拍攝前,主控機(jī)必須讀取一次整個(gè)畫面的顯示幀率。
[0020]步驟S5中,當(dāng)有某一節(jié)點(diǎn)機(jī)與當(dāng)前畫面幀不一致時(shí),進(jìn)行判斷,判斷不同步的節(jié)點(diǎn)機(jī)的編號(hào)是否大于當(dāng)前整個(gè)畫面編號(hào),如果是大于,則通過YUV文件存儲(chǔ)幀信息的前16字節(jié)讀取下一次需要播放的正常幀號(hào),并通過主控機(jī)將該幀號(hào)發(fā)送給不同步的節(jié)點(diǎn)機(jī)進(jìn)行校正。
[0021]由于網(wǎng)絡(luò)傳輸?shù)难訒r(shí)效應(yīng),需要計(jì)算發(fā)送到底傳輸哪一幀序列號(hào),假設(shè)網(wǎng)絡(luò)延時(shí)為Tl,巾貞播放速率從數(shù)據(jù)結(jié)構(gòu)StructFrameInfo中讀取,巾貞率為frameRate,當(dāng)前已經(jīng)播放的幀數(shù)為M,M=Tl/(60/frameRate),所以主控機(jī)發(fā)送的幀號(hào)必須在下一幀號(hào)的基礎(chǔ)上加上M,這就是該不同步節(jié)點(diǎn)機(jī)需要播放的幀號(hào)。
[0022]當(dāng)不同步的節(jié)點(diǎn)機(jī)的編號(hào)是小于當(dāng)前整個(gè)畫面編號(hào)時(shí),則通過YUV文件存儲(chǔ)幀信息的前16字節(jié)讀取下一次需要播放的正常幀號(hào),并通過主控機(jī)將該幀號(hào)發(fā)送給不同步的節(jié)點(diǎn)機(jī)進(jìn)行校正。
[0023]由于網(wǎng)絡(luò)傳輸?shù)难訒r(shí)效應(yīng),需要計(jì)算發(fā)送到底傳輸哪一幀序列號(hào),假設(shè)網(wǎng)絡(luò)延時(shí)為Tl,巾貞播放速率從數(shù)據(jù)結(jié)構(gòu)StructFrameInfo中讀取,巾貞率為frameRate,當(dāng)前已經(jīng)播放的幀數(shù)為M,M=Tl/(60/frameRate),所以主控機(jī)發(fā)送的幀號(hào)必須在下一幀號(hào)的基礎(chǔ)上加上M,這就是該不同步節(jié)點(diǎn)機(jī)需要播放的幀號(hào)。
[0024]以上所述的本發(fā)明的實(shí)施方式,并不構(gòu)成對(duì)本發(fā)明保護(hù)范圍的限定。任何在本發(fā)明的精神原則之內(nèi)所作出的修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的權(quán)利要求保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種多屏視頻同步播放方法,其特征在于,包括以下步驟: S1:將超高分辨率視頻源切分成等份的小視頻放在不同的節(jié)點(diǎn)機(jī)上,將各視頻數(shù)據(jù)轉(zhuǎn)換成YUV圖像序列,各個(gè)小視頻的同一幀序列采用相同編號(hào)標(biāo)識(shí); 52:將YUV圖像序列按照設(shè)定的存儲(chǔ)規(guī)則生成YUV文件; 53:連接攝像頭的主控機(jī)發(fā)送命令到所有節(jié)點(diǎn)機(jī),使所有節(jié)點(diǎn)機(jī)在同一時(shí)刻開始播放視頻; 54:攝像頭開始同步拍攝整個(gè)視頻畫面,并且分析所有幀的編號(hào)是否一致; S5:當(dāng)遇到有幀編號(hào)不一致時(shí)候,主控機(jī)發(fā)送命令到幀不一致的節(jié)點(diǎn)機(jī)修改需要播放的幀的序列號(hào),從該節(jié)點(diǎn)機(jī)取出要播放的幀圖像序列,達(dá)到同一畫面所有節(jié)點(diǎn)機(jī)的幀編號(hào)—致。
2.根據(jù)權(quán)利要求1所述的多屏視頻同步播放方法,其特征在于,所述步驟S2中“將YUV圖像序列按照設(shè)定的存儲(chǔ)規(guī)則生成YUV文件”的具體方式為: 預(yù)先設(shè)置如下數(shù)據(jù)結(jié)構(gòu):StructFrameInfo framelndex,占2個(gè)字節(jié),表示巾貞序列號(hào); startPos,占4個(gè)字節(jié),表示片段數(shù)據(jù)的開始位置; endPos,占4個(gè)字節(jié),表示片段數(shù)據(jù)的結(jié)束位置; frameffeidth,占2個(gè)字節(jié),表示巾貞寬度; frameHeight,占2個(gè)字節(jié),表示巾貞高度; frameRate,占2個(gè)字節(jié),表示巾貞速率; 即在第一巾貞的前16個(gè)字節(jié)用來存儲(chǔ)所有巾貞的信息,包括StructFrameInfo數(shù)據(jù)結(jié)構(gòu)的信息。
3.根據(jù)權(quán)利要求2所述的多屏視頻同步播放方法,其特征在于,所述主控機(jī)是接有攝像頭的節(jié)點(diǎn)機(jī),任何節(jié)點(diǎn)機(jī)都能夠接攝像頭作為主控機(jī)。
4.根據(jù)權(quán)利要求3所述的多屏視頻同步播放方法,其特征在于,所述攝像頭的幀率與整個(gè)視頻的幀率同步,即在攝像頭拍攝前,主控機(jī)需至少讀取一次整個(gè)畫面的顯示幀率。
5.根據(jù)權(quán)利要求4所述的多屏視頻同步播放方法,其特征在于,當(dāng)有某一節(jié)點(diǎn)機(jī)與當(dāng)前畫面幀不一致時(shí),通過YUV文件存儲(chǔ)幀信息的前16字節(jié)讀取下一次需要播放的正常幀號(hào),并通過主控機(jī)將該幀號(hào)發(fā)送給不同步的節(jié)點(diǎn)機(jī)進(jìn)行校正; 由于網(wǎng)絡(luò)傳輸?shù)难訒r(shí)效應(yīng),需要計(jì)算發(fā)送到底傳輸哪一幀序列號(hào),設(shè)網(wǎng)絡(luò)延時(shí)為Tl,幀播放速率從數(shù)據(jù)結(jié)構(gòu)StructFrameInfo中讀取,巾貞率為frameRate,當(dāng)前不同步的節(jié)點(diǎn)機(jī)已經(jīng)播放的巾貞數(shù)為M, M=Tl/ (60/frameRate),所以主控機(jī)發(fā)送的巾貞號(hào)必須在下一巾貞號(hào)的基礎(chǔ)上加上M,該不同步節(jié)點(diǎn)機(jī)播放該巾貞號(hào)的中貞。
6.一種多屏視頻同步播放裝置,其特征在于,包括: 視頻切分模塊:用于將超高分辨率視頻源切分成等份的小視頻放在不同的節(jié)點(diǎn)機(jī)上,將各視頻數(shù)據(jù)轉(zhuǎn)換成YUV圖像序列,各個(gè)小視頻的同一幀序列采用相同編號(hào)標(biāo)識(shí); YUV轉(zhuǎn)換模塊:將YUV圖像序列按照設(shè)定的存儲(chǔ)規(guī)則生成YUV文件; 控制模塊:連接攝像頭的主控機(jī)發(fā)送命令到所有節(jié)點(diǎn)機(jī),使所有節(jié)點(diǎn)機(jī)在同一時(shí)刻開始播放視頻; 視頻同步鑒別模塊:攝像頭開始同步拍攝整個(gè)視頻畫面,并且分析所有幀的編號(hào)是否一致;校正模塊:當(dāng)遇到有幀編號(hào)不一致時(shí)候,主控機(jī)發(fā)送命令到幀不一致的節(jié)點(diǎn)機(jī)修改需要播放的幀的序列號(hào),從該節(jié)點(diǎn)機(jī)取出要播放的幀圖像序列,達(dá)到同一畫面所有節(jié)點(diǎn)機(jī)的中貞編號(hào)一致。
【文檔編號(hào)】H04N21/23GK104168466SQ201410415455
【公開日】2014年11月26日 申請(qǐng)日期:2014年8月22日 優(yōu)先權(quán)日:2014年8月22日
【發(fā)明者】劉雄偉 申請(qǐng)人:廣東威創(chuàng)視訊科技股份有限公司