專利名稱::一種基于以太網(wǎng)的四維影院同步播放方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及一種基于以太網(wǎng)的四維影院同步播放方法,屬于通信
技術(shù)領(lǐng)域:
。
背景技術(shù):
:電影放映技術(shù)由二維平面、三維立體發(fā)展至目前的四維動感電影。四維動感電影是指在三維立體電影的基礎(chǔ)上加環(huán)境特效模擬仿真而組成的新型影視產(chǎn)品。四維系指三維立體電影加上周圍環(huán)境模擬而組成四維空間。觀眾在看立體電影時,順著影視內(nèi)容的變化,可實時感受到風(fēng)暴、雷電、下雨、撞擊、噴灑水霧、拍腿等身邊所發(fā)生與立體影象對應(yīng)的事件。目前四維電影經(jīng)過多年的發(fā)展,技術(shù)已經(jīng)相對成熟?;镜乃木S電影系統(tǒng)邏輯上由影視系統(tǒng)、音響系統(tǒng)、座椅運動系統(tǒng)、控制系統(tǒng)四部分組成。例如,以下為目前普通的四維影院的組成。影視系統(tǒng)電影放映機/高清晰度數(shù)字液晶投映儀+視頻主機屏幕音響系統(tǒng)5.1聲道立體聲音響系統(tǒng),具有左、右、中、左環(huán)、右環(huán)、重低音六個獨立聲道。座椅運動系統(tǒng)三自由度座椅系統(tǒng)控制系統(tǒng)專用通訊設(shè)備在四維電影技術(shù)中,核心技術(shù)之一為同步控制技術(shù),包括左右兩路視頻流、音頻流外加事件流的同步。目前四維影院系統(tǒng)中的同步為采用專用的通信設(shè)備,串行接口(RS232)傳輸同步控制數(shù)據(jù),即將對應(yīng)于左右兩路視頻的播放情況通過專用設(shè)備的串行接口傳遞?,F(xiàn)有的四維影院中的同步控制技術(shù)主要存在以下不足(1)需要采用專用的通訊設(shè)備。目前的四維影院中同步信息是采用專用的硬件通信設(shè)備進行傳遞的。(2)采用RS232串行接口傳遞數(shù)據(jù),速度較慢,易延遲,從而導(dǎo)致同步控制信息不能及時到達而影響同步效果。(3)與RS232串行接口連接的通信線傳輸距離較短。在無中繼的情況下,RS232接口接線的傳輸距離一般為15m以內(nèi)。因此,這限制了同步控制系統(tǒng)與影視、音響系統(tǒng)之間的距離。(4)RS232串行接口接線的抗干擾能力相對于以太網(wǎng)的雙絞線來說較弱。
發(fā)明內(nèi)容要解決的技術(shù)問題為了避免現(xiàn)有技術(shù)的不足之處,本發(fā)明提出一種基于以太網(wǎng)的四維影院同步播放方法,采用計算機終端智能實時檢測影院系統(tǒng)當(dāng)前播放狀態(tài)、判斷同步信息、產(chǎn)生與發(fā)送同步指令,采用RJ41以太網(wǎng)卡接口,以雙絞線為鏈路接線,通過以太網(wǎng)傳遞指令,從而實現(xiàn)及時、準確的同步控制。技術(shù)方案本發(fā)明的基本思想是在一個控制器與兩個播放器形成的系統(tǒng)中,兩個播放器的播放窗口分別對應(yīng)左右路的內(nèi)容??刂破鞫硕〞r發(fā)送査詢控制指令到兩個播放器,兩個播放器在收到指令后將目前的播放進度信息采樣后發(fā)送至控制器端,控制器根據(jù)所收到的信息判定播放器的播放進度,協(xié)調(diào)與控制端播放器兩個播放窗口的播放行為,形成了一個閉環(huán)反饋結(jié)構(gòu)。本發(fā)明方法的特征在于采用一個控制機A控制兩個播放機B和C,并采用100Mbps的以太網(wǎng)卡傳遞同步數(shù)據(jù),具體步驟如下步驟1:控制機A每隔4秒分別向左眼播放機B和右眼播放機C發(fā)送進度查詢指令;步驟2:兩播放機B和C接收到進度査詢指令后,査詢自己當(dāng)前播放進度值Tb和Tc,并向控制機A發(fā)送當(dāng)前播放進度值Tb和Tc;步驟3:控制機A接收到B機和C機的進度Tb和Te后,計算兩進度差值A(chǔ)T:Tb-Tc;步驟4:若IATI大于40ms,且AT為正數(shù)時,控制機向播放機B發(fā)出暫停播放AT時間指令;若AT是負數(shù),控制機向播放機A發(fā)出暫停播放厶T時間指令;步驟5:播放機A或B接收到指令后,暫停播放AT時間后恢復(fù)播放,達到A或B播放機的同步。有益效果本發(fā)明提出的基于以太網(wǎng)的四維影院同步播放方法,同步控制信號采用通用的以太網(wǎng)卡傳遞,傳輸距離可達100m。傳輸采用雙絞線,因在其外具有屏蔽層,可以有效地抗電磁干擾。本發(fā)明與現(xiàn)有技術(shù)的比較-<table>tableseeoriginaldocumentpage5</column></row><table>本發(fā)明采用計算機終端智能實時檢測影院系統(tǒng)當(dāng)前播放狀態(tài)、判斷同步信息、產(chǎn)生與發(fā)送同步指令,采用RJ41以太網(wǎng)卡接口,以雙絞線為鏈路接線,通過以太網(wǎng)傳遞指令,從而實現(xiàn)及時、準確的同步控制。圖1:本發(fā)明方法流程圖圖2:本發(fā)明方法發(fā)送査詢指令流程圖圖3:播放器發(fā)送進度流程圖圖4:控制器判斷是否同步流程圖圖5:播放器響應(yīng)同步指令流程圖具體實施例方式現(xiàn)結(jié)合實施例、附圖對本發(fā)明作進一步描述1)播放器采樣發(fā)送算法文字描述控制器每隔一段時間將向播放器發(fā)送同步指令,播放器收到指令后將當(dāng)前的播放信息傳送給控制器。(1)發(fā)送査詢指令流程控制器端每隔一段時間要對播放器發(fā)送一次査詢命令,流程如錯誤!未找到引用源。所示。主要運行步驟如下a)控制器設(shè)定查詢指令;b)控制器向左眼播放器發(fā)送查詢命令;C)控制器向右眼播放器發(fā)送查詢命令。核心代碼如下〃設(shè)定查詢指令sendBytes=Encoding.ASCII.GetBytes("");try//向左眼播放器發(fā)送査詢指令udpClientll.Send(sendBytes,sendBytes.Length);〃向右眼播放器發(fā)送査詢指令udpClientrl.Send(sendBytes,sendBytes.Length);catch(Exceptionel)〃報告錯誤信息MessageBox.Show(el.Message);(2)播放器發(fā)送響應(yīng)流程當(dāng)播放器接收到査詢指令后,向控制器端發(fā)送當(dāng)前進度,流程如錯誤!未找到引用源。所示主要運行步驟如下a)播放器同步控制線程阻塞,直到接收到查詢命令;b)當(dāng)播放器接收到査詢命令后,向控制器發(fā)送當(dāng)前進度。核心代碼如下〃如果接收到査詢命令,則進行查詢if(temp[O]=='')〃查詢當(dāng)前進度IAsyncResultiar=this.Beginlnvoke(mi);this.Endlnvoke(iar);//發(fā)送當(dāng)前進度byte[]send=Encoding.ASCII.GetBytes(lr+":"+pos);us.Send(send,send丄ength);2)控制器協(xié)調(diào)控制的算法文字描述控制器得到兩個播放器的進度后,要對播放器的進度進行比對,當(dāng)時間差大于一定值時,向播放器發(fā)送同步命令,播放器進行同步。(1)控制器同步流程控制器接收到兩個播放器的進度后,對兩個進度進行比對,若時間大于40ms則向稍快的播放器發(fā)送同步命令,否則不用同步,流程如錯誤!未找到引用源。所示-運行步驟如下a)控制器接收到兩個播放器的進度信息;b)將兩個進度信息提取并轉(zhuǎn)化為可計算格式;C)計算兩個播放器進度的差值;d)判斷差值是否大于40ms,若小于則不用同步,結(jié)束本次同步;e)若大于,則要判斷哪個播放器進度過快;f)向過快的播放器發(fā)送同步命令,其中包括同步時間。核心代碼如下〃取得左眼播放器的播放進度—t=t;〃取得右眼播放器的播放進度一tl=U;〃將播放進度規(guī)范化,去掉進度的前綴一t=一t.Substring(5);_tl=—tl.Substring(6);longi,il;try〃將播放進度轉(zhuǎn)換為長整形i=long.Parse(一t);il=long.Parse(_tl);catch(Exception〃報告錯誤信息MessageBox.Show(e.Message);return;〃計算進度差值i=i-il;i='i/10000;〃判斷是哪邊的進度比較快,且是否超過40msif(i<-40)i=陽i;〃設(shè)定同步指令,里面包括同步時長byte[]temp=Encoding.ASCII.GetBytes("$"+i);try〃發(fā)送同步指令udpClientrl.Send(temp,temp丄ength);catch(Exceptione)〃報告錯誤信息MessageBox.Show(e.Message);elseif(i>40)〃設(shè)定同步指令,里面包括同步時長byte[]temp=Encoding.ASCII.GetBytes("$"+i);try〃發(fā)送同步指令udpClientll.Send(temp,temp丄ength);catch(Exceptione)〃報告錯誤信息MessageBox.Show(e.Message);(2)播放器響應(yīng)同步命令,進行同步播放器接收到同步命令后,按照命令中的時間長度進行同步,流程錯誤!未找到引用源。如所示主要步驟如下a)播放器同步控制線程阻塞,直到接收到同步命令;b)播放器提取同步命令中的同步時間;C)播放器按照同步時間進行同步。核心代碼如下〃如果接收到的是同步指令,則進行同步10elseif(temp[O]'$')〃提取同步時間strings=newstring(Encoding.ASCII.GetChars(temp));s=s.Substring(l);inti=int.Parse(s);time=i;〃按照同步時間進行同步IAsyncResultiar=this.Beginlnvoke(mil);this.EndInvoke(iar);運行步驟如下a)控制機每隔4秒分別向兩個播放機發(fā)送進度査詢指令;所述的兩個播放機分別播放左右兩路視頻流;b)兩個播放機接收到査詢指令后,査詢當(dāng)前播放進度并將當(dāng)前進度值發(fā)送控制機;c)控制機將接收到兩個進度值進行比較,當(dāng)兩個進度的差值大于40ms,控制機向發(fā)送暫停d)小于40ms時,e)若則不進行同步操作,函數(shù)結(jié)束;f)若差值則計算兩端的差值;g)向快的那端發(fā)送同步指令和同步時間;h)播放器接收到同步指令后,開始同步。權(quán)利要求1.一種基于以太網(wǎng)的四維影院同步播放方法,其特征在于采用一個控制機A控制兩個播放機B和C,并采用100Mbps的以太網(wǎng)卡傳遞同步數(shù)據(jù),具體步驟如下步驟1控制機A每隔4秒分別向左眼播放機B和右眼播放機C發(fā)送進度查詢指令;步驟2兩播放機B和C接收到進度查詢指令后,查詢自己當(dāng)前播放進度值Tb和Tc,并向控制機A發(fā)送當(dāng)前播放進度值Tb和Tc;步驟3控制機A接收到B機和C機的進度Tb和Tc后,計算兩進度差值ΔT=Tb-Tc;步驟4若|ΔT|大于40ms,且ΔT為正數(shù)時,控制機向播放機B發(fā)出暫停播放ΔT時間指令;若ΔT是負數(shù),控制機向播放機A發(fā)出暫停播放ΔT時間指令;步驟5播放機A或B接收到指令后,暫停播放ΔT時間后恢復(fù)播放,達到A或B播放機的同步。全文摘要本發(fā)明涉及一種基于以太網(wǎng)的四維影院同步播放方法,本發(fā)明的基本思想是在一個控制器與兩個播放器形成的系統(tǒng)中,兩個播放器的播放窗口分別對應(yīng)左右路的內(nèi)容??刂破鞫硕〞r發(fā)送查詢控制指令到兩個播放器,兩個播放器在收到指令后將目前的播放進度信息采樣后發(fā)送至控制器端,控制器根據(jù)所收到的信息判定播放器的播放進度,協(xié)調(diào)與控制端播放器兩個播放窗口的播放行為,形成了一個閉環(huán)反饋結(jié)構(gòu)。本發(fā)明采用RJ41以太網(wǎng)卡接口,以雙絞線為鏈路接線,通過以太網(wǎng)傳遞指令,從而實現(xiàn)及時、準確的同步控制。文檔編號A63J25/00GK101554537SQ200910022210公開日2009年10月14日申請日期2009年4月28日優(yōu)先權(quán)日2009年4月28日發(fā)明者趙俊嘯申請人:西安和利德軟件有限公司