本發(fā)明涉及一種視頻文件播放的系統及方法,具體涉及一種視頻文件快速播放的系統及方法,屬于視頻播放技術領域。
背景技術:
在很多的商業(yè)公眾場合,人們總能看到各種各樣的視頻廣告,它們或者通過普通電視機進行播放,或者通過專業(yè)的廣告標牌機器進行播放。通過這類廣告視頻內容的持續(xù)播放,為宣傳和推廣商品起到了很大的作用。此類循環(huán)播放的視頻廣告,其內容多是由一個或多個獨立的視頻廣告源拼接而成,形成一個廣告源播放列表,并通過播放器對播放列表的文件進行無限循環(huán)播放而實現。
由于涉及多個片段的循環(huán)播放,片段之間銜接播放的處理方式就直接關系到整個觀影的體驗,若片段之間銜接播放出現卡頓或長時間緩沖,就會嚴重影響實際廣告的觀影體驗,并進而影響整個產品的廣告效應,因此提升廣告片段間銜接播放的效果是本技術領域重點研究方向之一。
為了提升廣告片段間銜接播放的效果,目前主要采用的技術手段是進行內容整合,以規(guī)避片段間的物理銜接播放過程。其實現手段就是在廣告視頻播放之前,通過專業(yè)的視頻編輯軟件,對所有視頻廣告文件進行重新編碼與合成,將多個廣告片段文件整合成一個廣告視頻文件,從而規(guī)避之前由多個視頻文件帶來的銜接播放過程,實現流暢銜接播放的觀影體驗。
但此種技術手段具有很大的局限性,首先是應用的局限性,多個視頻文件的整合編碼需要專業(yè)人員采用專業(yè)軟件工具才能完成,非專業(yè)人士無法完成,因此影響了此技術手段的大規(guī)模推廣與采用;其次是效率低,每次有新廣告片源要加入時,必須重新進行編碼、整合、制作,效率低下;再次是治標不治本,未能徹底規(guī)避銜接播放的過程,即使是整合成了一個廣告文件,廣告文件一次播放的時間是有限的,必然需要進行單個文件的循環(huán)播放,因此還是會涉及到單個文件首尾銜接播放的過程,銜接過程不流暢還是會影響整個觀影體驗。
技術實現要素:
為了克服當前技術手段中存在的技術缺陷、應用局限性以及效率低的弊端,本發(fā)明提出了一種實現單個視頻文件快速播放的系統及方法,通過本發(fā)明方法的實施,可以實現視頻文件的快速起播,減少視頻文件間銜接播放所需的等待時間,從而實現整個視頻廣告列表的流暢播放,提升視頻廣告觀影體驗。
本發(fā)明的目的之一在于提供一種視頻文件快速播放系統,所述視頻文件快速播放系統主要由三個部分組成,分別為預掃描模塊、視頻播放列表和視頻播放參數表;
其中預掃描模塊對視頻播放列表中的每個視頻文件進行解碼預掃描,通過預掃描獲取到每個視頻文件解碼的關鍵播放參數;
視頻播放列表用于構建和保存所有視頻文件,并保存包括視頻文件的特征值、視頻文件的存儲地址信息;
視頻播放參數表用于保存每個視頻文件的關鍵播放參數。
本發(fā)明的另一目的在于提供一種實現視頻文件快速播放的方法,是在本發(fā)明提供的視頻文件快速播放系統的基礎上,具體采用如下步驟實現的:
步驟1,在視頻播放設備啟動后,先加載視頻文件播放的列表,并以所有視頻文件構造一個視頻播放列表,所述視頻播放列表的每一項包括視頻文件的屬性信息;
步驟2,啟動預掃描模塊,預掃描模塊會遍歷掃描步驟1中構建的視頻播放列表中的每一個視頻文件,通過預掃描的方式獲取到視頻文件解碼播放的關鍵播放參數,并將通過預掃描模塊獲取到的關鍵播放參數都保存在視頻播放參數表中;
步驟3,加載視頻播放參數表,所述視頻播放參數表的每一項均包括視頻文件的特征值和關鍵播放參數,若該視頻播放參數表為空,則構造一個播放參數列表;
步驟4,獲取當前播放視頻文件的特征值,該特征值來自于步驟1中的視頻播放列表中;
步驟5,以特征值為比較對象,在視頻播放參數表中進行查找比對,確認視頻播放參數表中是否已經保存了當前視頻的關鍵播放參數,若已經保存了關鍵播放參數,則進入步驟8,若未保存該視頻的關鍵播放參數,則進入步驟6;
步驟6,若步驟5中沒有找到當前視頻文件的關鍵播放參數,則需要對播放器進行完整的初始化,并構造選擇正確的解碼器對視頻文件進行解碼和播放,并提取本次播放的所獲取到關鍵播放參數;
步驟7,存儲當前播放參數到視頻播放參數表,即把步驟6中所獲取到的關鍵播放參數進行保存,以當前視頻文件的特征值作為關鍵字,把播放參數信息保存在步驟3的視頻播放參數表中,若當前視頻的關鍵播放參數已經存儲在視頻播放參數表中,則更新為本次獲取到的最新關鍵播放參數;
步驟8,若步驟5中找到視頻文件的關鍵播放參數,則提取該視頻文件的關鍵播放參數,并將此關鍵播放參數傳遞給播放器,用于后續(xù)播放器的快速構造;
步驟9,利用步驟8傳入的關鍵播放參數,播放器直接跳過解碼播放等關鍵播放參數的嘗試獲取過程,實現播放器各解碼模塊的直接構造與設置,實現視頻文件的快速播放;
步驟10,當視頻文件播放完畢,則跳轉到播放列表的下一個視頻文件進行播放,然后循環(huán)進入步驟4繼續(xù)執(zhí)行。
以上步驟循環(huán)執(zhí)行,直到所有視頻的關鍵播放參數都獲取并存儲,當有新視頻文件加入播放列表時,按照如上步驟預掃描提取到關鍵播放參數,實現快速播放。
更進一步的方案是:
步驟1中,屬性信息包括:視頻文件的名字、視頻文件存儲的絕對路徑以及視頻文件的特征值。
更進一步的方案是:
步驟2中,關鍵播放參數包括:音視頻軌的pid值,視頻封裝參數,視頻編碼解碼參數,音頻編碼解碼參數。
更進一步的方案是:
所述視頻文件特征值的構造方法采用哈希算法實現。
更進一步的方案是:
所述用哈希算法實現,具體是讀取文件頭2k的數據量,通過哈希算法計算得到第一字符串,然后讀取視頻文件尾的2k數據量,通過哈希算法計算得到第二字符串,合并連接第一字符串和第二字符串,得到視頻文件的特征值。
更進一步的方案是:
步驟2中,預掃描模塊為后臺運行模塊,預掃描所取得的視頻文件解碼播放的關鍵播放參數將保存在視頻播放參數表中,并在后臺實現不斷的更新。
更進一步的方案是:
步驟2中,預掃描視頻文件的順序以視頻播放列表內視頻文件的先后順序為準,從第一個開始逐個在后臺完成掃描并保存。
更進一步的方案是:
步驟3中,視頻播放參數表由預掃描模塊在后臺負責構造和增刪記錄。
以上所述步驟的順序在具體實施時可以做靈活調整。
本發(fā)明的方法專注于單個視頻文件的啟播性能提升,通過對視頻文件進行播放前的預掃描來獲取解碼播放的關鍵參數,并在播放器初始化時直接設置這些播放解碼參數來降低播放器初始化耗時與解碼時關鍵參數嘗試的耗時,從而實現視頻文件的快速播放,并最終實現整個播放列表各視頻文件間的無縫銜接播放。
本發(fā)明方法徹底解決了視頻列表銜接播放不流暢的問題,整個過程完全通過軟件實現并自動完成,不需要人為參與,因此具有廣泛的適應性與很高的效率性。
附圖說明
圖1是視頻文件快速播放系統的組成圖;
圖2是實現視頻文件快速播放的方法的流程圖。
具體實施方式
本發(fā)明提出了一種實現視頻文件快速播放的方法,通過本發(fā)明的方法,可以實現視頻文件間快速流暢的銜接播放效果,提升廣告視頻循環(huán)播放的觀影體驗。下面結合附圖對本發(fā)明的具體實施方式進行詳細描述。
如附圖1所示是視頻文件快速播放系統的組成圖,本發(fā)明的快速播放方法由三個部分組成,具體描述如下:
預掃描模塊:本模塊負責完成所有視頻文件的解碼播放參數的預掃描,通過本模塊獲取到所有視頻文件的播放參數關鍵信息,并最終保存在視頻播放參數信息表中,本模塊采用的預掃描方法是播放器技術領域的通用方法。
視頻播放列表:本模塊負責保存所有視頻文件列表,列表中每一項信息中包括視頻文件的特征值信息、視頻文件的完整保存路徑等信息,視頻播放列表在本系統啟動最初完成構建,并以視頻文件的特征值作為關鍵屬性。
視頻播放參數表:本模塊保存預掃描模塊中獲取到的每個視頻文件播放的關鍵參數信息,并在實際播放過程中動態(tài)調整實際的播放參數信息,此表的每一項記錄都以視頻文件的特征值作為關鍵屬性。
下面結合附圖2對本發(fā)明具體的實施方式進行詳細闡述。
本實施方式屬于本發(fā)明方法實施方式的一種,本領域普通技術人員在沒有做出創(chuàng)造性勞動的前提下所獲得的所有其他實施方式,都應屬于本發(fā)明保護的范圍。
本發(fā)明提出了一種實現視頻文件快速播放的方法,其具體實施包括如下的步驟:
本發(fā)明適用于各種帶視頻播放功能的消費電子類設備,包括智能電視、視頻廣告機等,這里以視頻廣告機設備為例,視頻廣告機需要連續(xù)循環(huán)播放3個廣告視頻文件,名稱分別是“廣告片a”、“廣告片b”和“廣告片c”三個片源;
步驟1,視頻廣告機設備啟動后,加載3個視頻廣告文件,并構造一個視頻播放列表,該播放列表的每一項包括視頻文件的名字、存儲路徑及視頻文件的特征值等屬性信息,三個視頻廣告文件的特征值我們通過哈希算法計算得到,這里分別記錄為hashstr1、hashstr2、hashstr3;
步驟2,在后臺啟動預掃描模塊,預掃描模塊按照“廣告片a”、“廣告片b”和“廣告片c”的順序遍歷每一個視頻文件,通過視頻解碼播放預掃描方法獲取到視頻文件解碼播放的關鍵信息,如音視頻軌的pid值,視頻解碼格式,音頻格式等關鍵參數信息,并將這些參數信息保存在播放參數列表中;
步驟3,加載視頻文件播放參數列表,由于是首次播放此3個視頻廣告文件,尚未有播放參數列表,我們構造一個播放參數列表,此時列表成員為空;
步驟4,獲取當前播放視頻文件“廣告片a”的特征值,即為hashstr1,該特征值來自于步驟1中的播放列表中;
步驟5,以特征值hashstr1為比較對象,在視頻文件播放參數列表中進行查找比對,由于播放參數列表為空,未保存“廣告片a”視頻文件的播放參數信息,則進入步驟6;
步驟6,啟動播放器,并進行完整的參數初始化,并構造選擇正確的解碼器對視頻文件進行解碼和播放,提取到“廣告片a”的關鍵播放信息,封裝信息為ts、視頻編碼信息為h264、視頻幀率為25幀、音頻編碼信息為aac等;
步驟7,存儲當前播放參數到列表,以特征值hashstr1為關鍵字,將視頻廣告文件“廣告片a”的播放參數存入播放參數列表中,包括封裝信息ts,視頻編碼信息h264、視頻幀率25幀,音頻編碼信息aac等;
步驟8,當視頻文件播放完畢,則跳轉到播放列表的下一個視頻文件進行播放,即播放“廣告片b”,然后循環(huán)進入步驟4繼續(xù)執(zhí)行。
盡管這里參照本發(fā)明的解釋性實施例對本發(fā)明進行了描述,上述實施例僅為本發(fā)明較佳的實施方式,本發(fā)明的實施方式并不受上述實施例的限制,應該理解,本領域技術人員可以設計出很多其他的修改和實施方式,這些修改和實施方式將落在本申請公開的原則范圍和精神之內。