一種流媒體投放系統及方法與流程
2023-07-21 03:07:26
本發明屬於流媒體領域,尤其是涉及一種流媒體投放系統及方法。
背景技術:
當前的流媒體領域,流媒體投放系統是由播放器與遠程網絡伺服器交互實現的。即通過網頁瀏覽器(主要)內嵌的播放器,或電腦作業系統下其它客戶端(如itudou/愛奇藝)內嵌播放器,或移動通訊設備終端(如ipad、iphone、htc)內嵌的播放器,發起http請求,該請求攜帶流媒體信息(包含流媒體ID、流媒體時長、流媒體類型)、cookie、用戶信息(包含用戶ID、用戶IP、用戶當天訪問時長),通過網絡傳到遠程網絡伺服器,使用該請求信息構造參數處理器,伺服器通過不同的請求,返回不同的流媒體。每種流媒體類型的請求,伺服器端都有唯一對應的響應器(例如前貼響應器、中插響應器、暫停響應器、角標響應器、頁面響應器),處理相應的請求。因此響應器一般有五到八個(見附圖1)。但是,這些響應器集合,是與唯一播放器內核對應的,而隨著網絡的快速發展,以及移動客戶端近年飛速普及,出現了各種流媒體播放環境,導致流媒體投放環境也多種多樣,單一的播放器內核,以及對應的響應器集合,已無法滿足各種客戶端的流媒體播放、流媒體投放需求。按照現有的技術實現方式,不同的播放器內核,需要不同的響應器集合。即出現一種新播放器內核,需要重新開發一套流媒體投放響應器,成本消耗巨大,很可能因為播放器版本的切換或下線,導致產出價值大大降低。因此該實現方式的投入、產出比,是非常低的。隨著各種客戶端、播放器的差異化趨勢呈上升趨勢,響應器的開發人員將非常被動,開發任務越來越繁重。因此一種靈活的伺服器響應策略,用較低的開發成本,即可適應、兼容各種播放器、流媒體投放環境的不同需求,是非常必要的。流媒體系統適配器,正是為解決這個問題,設計出的一種方案,它以同一套響應器為基礎,通過適配器的開發,實現多個播放器、流媒體投放環境的不同需求,適配器的開發成本相對一套新的響應器集合,是非常低的。且靈活性非常強,每出現一種新的播放器內核,或流媒體投放環境,修改適配器即可實現兼容。見(附圖2)。
技術實現要素:
本發明提供了一種流媒體投放系統,該系統包括用於發起流媒體請求的播放器、用於存儲請求信息的參數處理器,對流媒體請求進行響應的前貼響應器、中插響應器、暫停響應器、角標響應器、頁面響應器,其特徵在於該系統為新的播放器配置對應的適配器,所述適配器包括:適配器響應器,用於根據轉換後的請求參數獲取流媒體素材並對流媒體素材信息進行拼裝整合,播放器接口協議的XML轉換;適配器轉換器,用於獲取播放器請求信息並使用參數處理器RequestParams進行存儲,並用於將參數處理器RequestParams中存儲的信息轉換為原系統請求參數並存儲在上述參數處理器中;參數處理器RequestParams,用於存儲播放器請求攜帶的信息。進一步,適配器轉換器的轉換包括:根據參數間的映射關係,將含義相同的值對應起來,新參數的值通過修改參數處理器RequestParams進行存儲。進一步,適配器響應器包括獲取素材模塊以及協議拼裝模塊,獲取素材模塊用於將轉換後的請求數據傳給投放引擎,根據不同素材類型,傳給投放引擎的不同模塊以進行素材的調取;返回給適配器響應器的為素材列表,該素材列表包含新的播放器所需的全部類型素材,所述協議拼裝模塊用於拼裝整合流媒體素材信息。進一步,適配器響應器在返回流媒體素材信息給播放器後,將釋放資源。本發明還提供了一種流媒體投放方法,其特徵在於:步驟(1)播放器發起流媒體請求;步驟(2)適配器轉換器獲取播放器請求信息並使用參數處理器RequestParams進行存儲,並用於將參數處理器RequestParams中存儲的信息轉換為原系統請求參數並存儲在參數處理器中;步驟(3)適配器響應器根據轉換後的請求參數獲取流媒體素材並對流媒體素材信息進行拼裝整合;步驟(4)適配器與播放器接口協議之間進行XML轉換以便將流媒體素材信息傳送給播放器。進一步,步驟(2)中所述適配器轉換器的轉換包括:根據參數間的映射關係,將含義相同的值對應起來,新參數的值通過修改參數處理器RequestParams進行存儲。進一步,步驟(3)中所述適配器響應器的獲取進一步包括其中的獲取素材模塊用於將轉換後的請求數據傳給投放引擎,根據不同素材類型,傳給投放引擎的不同模塊以進行素材的調取;所述拼裝整合包括返回給適配器響應器的為素材列表,該素材列表包含新的播放器所需的全部類型素材,其中的協議拼裝模塊用於拼裝整合流媒體素材信息。進一步,該方法包括:適配器響應器在返回流媒體素材信息給播放器後,將釋放資源。附圖說明圖1為現有的流媒體投放系統的結構圖。圖2為根據本發明的流媒體投放系統的結構圖。圖3是根據本發明方法的流程圖。圖4是根據本發明的基礎數據示意圖。圖5是根據本發明的適配器的結構圖。圖6是根據本發明的適配器響應器的結構圖。具體實施方式以下結合附圖和具體實施例對本發明作進一步說明。本發明為一種流媒體投放系統及方法,通過該發明增加流媒體系統的兼容性,降低播放器與投放引擎間的重耦合,使播放器與投放引擎間的通信更靈活。系統的概要流程如圖3所示,播放器發起流媒體請求,攜帶流媒體信息、cookie、用戶信息,如:流媒體ID——itemID、用戶ID——userID。適配器響應器Servlet收到請求後,傳給適配器轉換器Parser。適配器轉換器Parser解析請求參數,用所有請求信息構造參數處理器RequestParams(存儲了流媒體ID、用戶ID等播放器請求中有價值信息,並且該參數處理器RequestParams非真正的物理器件,該處理器為內存中一個對象,對象有自己的數據結構,有自己的屬性,屬性個數不限。請求信息分別存入RequestParams的屬性裡。)。適配器轉換器Parser拿到構造好的參數處理器RequestParams,原系統請求參數如:流媒體ID——sid、用戶ID——uid,適配器Parser實現參數的轉換,itemID轉為sid,userID轉為uid(轉換是為了構造現有的參數處理器,這樣投放引擎不需更改接口,即可識別。),構造現有的參數處理器,返回給適配器Servlet。適配器響應器Servlet向投放引擎獲取流媒體素材。拿到素材後,適配器響應器Servlet將整理素材信息。因為返回給播放器的協議與現有的協議不同,適配器響應器Servlet按照協議,將播放器所需數據通過字符串進行拼裝,將素材信息拼裝成新協議的格式,返回給播放器。每種適配器只是實現一對一協議的拼裝。適配器結構如圖5所示,包括了適配器響應器Servlet、適配器轉換器Parser,參數處理器RequestParams。適配器響應器(Servlet)內部還包括兩個模塊,如圖6所示,包括了獲取素材模塊和協議拼裝模塊。適配器中的各部件描述如下:1)參數處理器RequestParams:功能:存儲播放器請求攜帶的全部信息,含用戶信息、頁面信息、流媒體信息等。屬性:與播放器請求協議中參數對應。參數處理器RequestParams僅有存儲功能,構造值從無到有的過程。初始狀態是空的,沒有存儲任何信息,構造即存儲的過程。2)適配器轉換器Parser:功能:轉換參數處理器RequestParams存儲的信息,向投放引擎核心參數列錶轉化,屏蔽不同播放器請求帶來的信息差異性,為核心對象。屬性:request:請求信息;response:適配器返回信息。方法:get*對播放器請求信息,進行篩選。*是使用了正則表達式的概念,get*是多個方法的統稱,如getUnionId——獲取聯盟id方法,實現了聯盟id的Base64解密;getIP——獲取用戶IP方法,實現了從多次路由轉發中獲取源IP功能。通過這些方法適配器轉換器Parser能夠獲取播放器請求信息。perform實現請求信息轉換功能。perform從參數處理器RequestParams拿到存儲的數據,按照值的含義,轉換數據格式,存入現有的參數處理器。如果不轉換,投放引擎則無法識別,需再做一個差異化的投放引擎,開發成本巨大。參考圖3,不同播放器請求,所謂不同即協議不同,具體有兩種情況:一是參數名稱不同,二是參數列表不同(如新參數,或缺失某些參數),適配器轉換器Parser根據參數間的映射關係,將含義相同的值對應起來,新參數的值通過修改參數處理器RequestParams,進行存儲。屏蔽不同播放器請求帶來的信息差異化就是這樣實現的。例如:現有播放器參數ABC,新播放器參數ABD,對於新參數D,可映射至參數C,存入C的空間。如果新播放器參數為ABCD,則需要修改現有的參數處理器RequestParams,增加參數D。3)適配器響應器Servlet:功能:實現了適配器的主要功能,並扮演總體調度、把控的角色。使用process實現了參數處理器RequestParams的調用,流媒體素材的獲取,流媒體素材信息的拼裝整合,播放器接口協議的XML轉換。如圖2,現有的流媒體投放系統,是不同響應器返回不同素材,而在本發明中則返回給適配器為素材列表(是素材信息列表,每個素材信息包含一個素材地址)!該素材列表包含新的播放器所需的全部類型素材,如播放器甲僅投放前貼、暫停、角標,適配器響應器Servlet中的協議拼裝模塊將一次返回3種流媒體素材進行拼裝整合。獲取素材模塊用於獲取流媒體素材,數據集合包括:1)prerollIdeas:前貼流媒體素材集合。2)postrollIdeas:後貼流媒體素材集合。3)cornerIdeas:角標流媒體素材集合。4)pauseIdeas:暫停流媒體素材集合。5)minibannerIdeas:minibanner微流媒體欄素材集合。存儲在適配器響應器Servlet內,返回流媒體素材信息給播放器後,將釋放資源。集合中基礎數據的各個欄位如圖4所示,其中,adIdea:流媒體素材對象。存儲流媒體素材全部信息。cp:投放N+統計信息。showTimes:用戶已觀看次數。iesParam:第三方檢測參數。pl:前貼中表示前貼位置,其它類型中無意義,構造時默認為0,只能在後來設置,口播時固定為1,口播為一種流媒體形式,貼片流媒體的一種。但最後播放。adPos:流媒體位置(即流媒體在流媒體播放過程中,展現的順序位置),用於數據團隊統計。首先,適配器響應器中獲取素材模塊將轉換後的協議數據傳給投放引擎,根據不同素材類型,傳給投放引擎的不同模塊以進行素材的調取。投放引擎中有多個模塊對應多種流媒體類型,每種流媒體類型有一個素材列表獲取模塊。流媒體類型包括前貼、暫停、角標等等。例如,某播放器僅請求前貼流媒體,那麼適配器在構造現有參數處理器RequestParams後,將其傳給投放引擎的前貼素材列表獲取模塊,即返回對應的素材列表。將返回的流媒體素材信息存儲在各個Ideas裡。以土豆站內播放器為例,獲取前貼、後貼、角標、暫停、minibanner素材集合,由於土豆站內播放器不支持中插,因此適配器中的獲取素材模塊,略過中插素材。土豆站內播放器的minbanner,需要與前貼剝離開來,因此適配器對前貼素材prerollIdeas進行特殊處理。遍歷prerollIdeas,獲取綁定minibanner的素材A。將素材A轉換成minibanner類型,加入到minibanner素材集合。以土豆播放器為例進行對接口協議的XML轉換的流程簡介如下:適配器響應器拿到的素材數據格式,播放器是不能直接識別的,如前貼素材,需要按照協議轉換為ads節點(XML文本中的一種節點類型),素材ID為97256需轉為節點屬性id,流媒體時長30秒需轉為節點屬性dt,最終轉換為播放器能夠識別的XML文本。根據本發明的技術方案獲得的技術效果如下:本發明技術方案以極大的靈活性,極低的開發成本、維護成本,滿足日益增多的播放器內核、流媒體投放環境需求。每增加一種播放器內核,或增加一種流媒體投放環境,僅需修改流媒體系統適配器,增加1~2個類文件,即可實現相應的流媒體投放功能。降低了開發成本。以上所述僅為本發明的較佳實施例,並不用於限制本發明創造,凡在本發明創造精神和原則之內所做的任何修改、等同替換和改進等,均包含於本發明的保護範圍之內。