本發(fā)明屬于拼接屏,具體涉及一種在拼接屏播放視頻文件并可進行遠程播放控制的系統(tǒng)。
背景技術:
1、隨著信息技術的飛速發(fā)展,多媒體展示系統(tǒng)逐漸成為信息傳播的重要手段之一,尤其是在公共信息展示、廣告宣傳、教育培訓等領域得到了廣泛應用。其中,拼接屏系統(tǒng)以其大尺寸、高清晰度的優(yōu)勢,成為大型展示場景中的首選解決方案。然而,隨著應用場景的多樣化和技術要求的提高,現有的拼接屏視頻播放技術面臨諸多挑戰(zhàn)。
2、一方面,傳統(tǒng)拼接屏系統(tǒng)的視頻播放方式通常依賴于中心化的控制機制,即視頻文件被預先加載至播放控制終端及各拼接屏處理器中。如專利cn104918137a所述,該方法通過播放控制終端作為同步節(jié)點,廣播每一幀的顯示時間戳來控制各個拼接屏處理器在每個時刻顯示同一幀的圖像(具體可參考專利文獻:[1]潘攀.一種拼接屏系統(tǒng)播放視頻的方法:cn201510298728.1[p].cn104918137a[2024-10-17].)。雖然這種方法能夠在一定程度上保證視頻播放的同步性,但其存在明顯的不足:首先,由于需要在每個拼接屏處理器中存儲視頻文件副本,導致存儲資源的大量浪費;其次,隨著拼接屏數量的增加,系統(tǒng)復雜度和維護成本也會相應上升,影響了系統(tǒng)的擴展性和經濟性。
3、另一方面,隨著網絡技術的進步,基于流媒體的視頻傳輸方案開始應用于拼接屏系統(tǒng)中,例如專利cn118264840a介紹了一種針對充電樁屏幕端的視頻播放方法,該方法采用視頻推流至流媒體服務器的方式,由各屏幕終端主動從流媒體服務器拉取數據流,利用實時流協(xié)議特性,使得各屏幕間實現1s誤差范圍內的同步,并且可簡單實現播放和停止播放功能(具體可參考專利文獻:[2]王昊明,王昊月,李嘉.一種遠程控制充電樁屏幕端同步播放視頻的方法:202410369088[p][2024-10-17].)。這種方法解決了存儲資源浪費的問題,提高了系統(tǒng)的靈活性和可維護性。但是,無法滿足在顯示控制領域用戶需要快進、快退、倍速、逐幀播放等更高的播放要求,限制了用戶體驗的提升。
4、基于此,本發(fā)明提出了一種在拼接屏播放視頻文件并可進行遠程播放控制的系統(tǒng),通過流化,讓多個解碼節(jié)點同時解碼,避免多個顯示器間畫面撕裂,實現了拼接屏幕播放、暫停、快進、快退、倍速、逐幀播放等需求,并降低解碼節(jié)點的存儲配置。
技術實現思路
1、為了解決現有技術中的上述問題,即為了解決現有技術在拼接大屏進行視頻播放時無法滿足用戶需要快進、快退、倍速、逐幀播放等播放要求,以及需要配置大空間的存儲設備和容易出現多個顯示器間畫面撕裂的問題,本發(fā)明提供了一種在拼接屏播放視頻文件并可進行遠程播放控制的系統(tǒng),包括:用戶操作終端、播放控制節(jié)點、時間同步服務器、交換機、多個解碼節(jié)點和多個顯示屏;
2、所述用戶操作終端、所述時間同步服務器、所述播放控制節(jié)點、各解碼節(jié)點均通過網線與所述交換機連接;各解碼節(jié)點與各顯示器一對一通過視頻線連接;多個顯示器組成拼接屏幕;
3、所述用戶操作終端,用于訪問系統(tǒng)頁面并通過所述系統(tǒng)頁面進行操控;操控包括拼接屏幕開窗、關窗、視頻文件上傳、控制拼接屏幕播放視頻文件、對播放的視頻文件進行監(jiān)看和控制;
4、所述時間同步服務器,用于對系統(tǒng)中的各設備進行時鐘同步;
5、所述解碼節(jié)點,用于解碼視頻流,并在對應顯示器的指定區(qū)域顯示;
6、所述播放控制節(jié)點,用于控制各解碼節(jié)點解析指定視頻流并在顯示屏指定區(qū)域渲染圖像;還用于將視頻文件流化播放。
7、在一些優(yōu)選的實施方式中,所述系統(tǒng)在所述拼接屏幕上播放視頻文件的過程為:
8、用戶在所述系統(tǒng)頁面上傳的視頻文件;
9、所述播放控制節(jié)點對上傳的視頻文件進行預處理;預處理后將視頻文件切片,得到切片文件,并生成切片索引文件,記錄每個切片文件相對整個視頻文件的起止時間;
10、所述播放控制節(jié)點解析所述切片索引文件;
11、解析后,根據用戶選擇的播放起點定位流化的首個切片文件,并計算播放起點相對于該切片文件視頻起點偏移量t;
12、解析所述切片文件,并從t處解析視頻裸流;
13、將所述視頻裸流封裝為rtp報文,并將文件時間戳映射到系統(tǒng)時間戳上作為rtp報文的時間戳;
14、使用實時流協(xié)議傳輸所述rtp報文,將實時流推送到所述播放控制節(jié)點上的流媒體服務;每發(fā)送一個視頻幀,更新一次當前視頻播放進度;
15、所述播放控制節(jié)點通知需要顯示視頻畫面的顯示器對應的一個或多個解碼節(jié)點拉流;
16、各解碼節(jié)點拉流并解析所述rtp報文,拉流的所有解碼節(jié)點拉流成功后,所有解碼節(jié)點同步渲染首幀;后續(xù)的視頻幀經過當前rtp報文的時間戳與前一幀rtp報文的時間戳的時間間隔后在顯示器上同步渲染;
17、所述系統(tǒng)頁面拉流并渲染當前視頻播放畫面。
18、在一些優(yōu)選的實施方式中,所述預處理包括去除b幀。
19、在一些優(yōu)選的實施方式中,所述當前視頻播放進度等于當前流化的切片文件的開始時間加上當前流化的切片文件中所有已經發(fā)送的幀與前一幀顯示時間的差。
20、在一些優(yōu)選的實施方式中,在所述視頻文件播放過程中確定需要流化的視頻幀的方法為:
21、a10,若剛開始播放,則推斷需要流化的切片文件為首個切片文件;若在播放過程中,則推斷需要流化的切片文件為正在播放的切片文件;所述播放過程中包括播放過程中進行快進、快退、seek時;
22、a20,從所述切片索引文件中獲取當前切片文件的起止時間;
23、a30,若定位時間小于當前切片文件的開始時間,則向前查找切片文件,并跳轉a20,否則,跳轉a40;
24、a40,若所述定位時間大于當前切片文件的結束時間,則向后查找切片文件,并跳轉a20,否則,確定當前切片文件為待流化的切片文件,跳轉a50;
25、a50,計算播放起點時間t1相對于所述待流化的切片文件的起點時間t2的偏移量t3;
26、a60,從所述待流化的切片文件首幀開始遍歷視頻幀,解析視頻幀計算顯示時間t4,幀間隔時間t5;若t4>=t3-t5且t4<=t3+t5,則該幀為需要流化的視頻幀;
27、a70,判斷a60獲取的需要流化的視頻幀是否為關鍵幀,若不是,則分別向前向后遍歷,找到最近的前一個關鍵幀和后一個關鍵幀,并從兩個關鍵幀中找到時間更近的一幀作為最終需要流化的視頻幀。
28、在一些優(yōu)選的實施方式中,所述系統(tǒng)控制所述視頻文件進行倍速播放的方法為:
29、所述播放控制節(jié)點接收到所述系統(tǒng)頁面以倍速s播放得的請求后,獲取已經發(fā)送的上一幀的顯示時間t6;
30、從原視頻中獲取上一幀和當前幀得時間差t7;
31、基于所述t6、所述t7以及所述s,計算并修改rtp報文當前幀中的顯示時間、rtp報文的發(fā)送頻率t7/s;
32、其中,倍速播放下視頻播放進度仍等于當前流化的切片文件的開始時間加上當前流化的切片文件中所有已經發(fā)送的幀與前一幀顯示時間的差。
33、在一些優(yōu)選的實施方式中,所述rtp報文當前幀中的顯示時間=t6+t7/s。
34、在一些優(yōu)選的實施方式中,所述系統(tǒng)控制所述視頻文件進行暫停播放的方法為:
35、b10,所述播放控制節(jié)點接收到所述系統(tǒng)頁面的暫停請求后,獲取已經發(fā)送的上一幀以及上一幀的顯示時間t8;
36、b20,基于已經發(fā)送的上一幀、所述上一幀前最近的一個關鍵幀及兩幀中間所有p幀構建的圖像作為當前的關鍵幀;
37、b30,構建與b20獲取的當前的關鍵幀無變化的p幀,作為空p幀;
38、b40,獲取播放倍速s、幀間隔時間t9,定義已經發(fā)送的自定義幀數量n=1;
39、b50,依據空p幀構建rtp報文,幀顯示時間為t8+t9/s*n,時間t9/s后發(fā)送rtp報文;
40、b60,確認是否接收到取消暫?;蛱幚砥渌埱蟛僮鳎魺o,則令n=n+1,重復執(zhí)行b50;暫停播放下視頻播放進度不再變化,以已經發(fā)送上一幀的進度為當前進度;
41、b70,在取消暫停播放時,退出本流程,繼續(xù)播放原視頻下一幀。
42、在一些優(yōu)選的實施方式中,所述系統(tǒng)控制所述視頻文件進行逐幀播放的方法為:
43、在逐幀播放時、每收到一次播放下一幀或上一幀的請求,則向前或向后播放一幀而后繼續(xù)重復b10-b60。
44、本發(fā)明的有益效果:
45、(1)本發(fā)明通過將視頻文件流化,解碼節(jié)點無需存儲文件,也無需為各個解碼節(jié)點配置大空間的存儲設備,即可實現在拼接大屏播放視頻文件以及與視頻播放相關的全部控制功能,即暫停、快進、快退、倍速、逐幀播放等;并讓多個解碼節(jié)點同時解碼,避免多個顯示器間畫面撕裂;
46、(2)本發(fā)明在需要進行大文件播放的場景,無需變更解碼節(jié)點,只需為播放控制節(jié)點配置滿足文件大小的硬盤即可。在不支持播放文件的拼接系統(tǒng)中,只需要外掛本系統(tǒng)中的播放控制節(jié)點就能實現在拼接大屏上播放視頻文件。