視頻內(nèi)容,滿足用戶需求。
[0120]進一步的,為了更好地利用視頻幀差異實現(xiàn)視頻預覽,參照圖3,為本發(fā)明實施例的另一種實施方式,基于上述第一實施例,本實施方式還包括:
[0121]步驟S22,根據(jù)所述播放起始位置匹配對應的起始幀位置,根據(jù)所述第二進度位置匹配對應的第二幀位置,所述幀位置區(qū)間為所述起始幀位置與所述第二幀位置之間的區(qū)間,其中所述起始幀位置和所述第二幀位置分別對應于一視頻幀。
[0122]具體地,在成功檢測用戶對目標視頻的進度位置的調(diào)整,獲取調(diào)整的進度段后,月艮務器根據(jù)所述播放起始位置匹配對應的起始幀位置,再根據(jù)所述第二進度位置匹配對應的第二幀位置,從而匹配到用戶對視頻進度進行調(diào)整的進度段所對應的幀位置區(qū)間。
[0123]在具體實現(xiàn)時,可以采取如下方式:
[0124]a.當用戶進行目標視頻播放時,服務器在檢測到用戶對目標視頻的進度從第一進度位置調(diào)整至第二進度位置時,可記錄起始進度位置為PO,第二進度位置為P2;
[0125]b.匹配與起始進度位置PO對應的起始幀位置FO和與第二進度位置P2對應的第二幀位置F2,幀位置區(qū)間即為第一幀位置Fl和所述第二幀位置F2之間的區(qū)間例如,服務器可以通過進度位置與視頻總時長之間的比例關系公式:
[0126]F/總幀數(shù)=P/視頻總時長;
[0127]進行計算,得到與起始進度位置PO對應的起始幀位置FO和與第二進度位置P2對應的第二幀位置F2,幀位置區(qū)間即為第一幀位置Fl和所述第二幀位置F2之間的區(qū)間。
[0128]基于步驟S22的實施,在成功匹配起始幀位置和第二幀位置后,服務器根據(jù)匹配得到的起始幀位置和第二幀位置,從預先建立的數(shù)據(jù)庫中獲取幀差異值較大的預設個數(shù)的幀差異值。
[0129]在具體實現(xiàn)時,可以采取如下方式:
[0130]設用戶對目標視頻的進度從第一進度位置Pl調(diào)整至第二進度位置P2,其中第二進度位置P2對應的幀位置記為F2。
[0131]同時,設用戶自行設定的獲取最大的幀差異值的個數(shù)為η。
[0132]此時,服務器根據(jù)播放起始位置PO對應的幀位置FO和第二進度位置Ρ2對應的幀位置F2,在預設的數(shù)組Label中,從Label[F0]到Label[F2]里獲取數(shù)值最大的η個幀差異值。
[0133]通過上述方案,本發(fā)明提供了一種利用視頻幀差異實現(xiàn)視頻預覽的方法,更好地實現(xiàn)了對有代表性的視頻幀進行預覽顯示,從而使用戶能快速地定位到感興趣的視頻內(nèi)容,滿足用戶需求。
[0134]如圖4所示,本發(fā)明第二實施例提出一種視頻播放進度的預覽方法,在基于如圖1所示第一實施例的步驟SI之前,還包括:
[0135]步驟S5,為所述目標視頻建立相應的所述數(shù)據(jù)庫,所述數(shù)據(jù)庫為一維數(shù)組,所述一維數(shù)組的長度為所述目標視頻中所包含的視頻幀的總幀數(shù)。
[0136]具體地,服務器為目標視頻建立相應的所述數(shù)據(jù)庫,該數(shù)據(jù)庫為一維數(shù)組,該一維數(shù)組的長度為目標視頻中所包含的視頻幀的總幀數(shù)。
[0137]其中,服務器獲取目標視頻所包含的視頻幀的總幀數(shù),建立一個初始化為空值,長度為所述視頻幀的總幀數(shù)的一維數(shù)組,用于存儲目標視頻中所有視頻幀對應的幀差異值;當用戶對目標視頻進行播放時,服務器獲取目標視頻中當前已緩存的視頻幀序列,然后計算視頻幀序列中相鄰視頻幀的圖像差異值,最后計算相鄰視頻幀的圖像差異值的方差,得到幀差異值。
[0138]在具體實現(xiàn)時,可以采取如下方式:
[0139]a.服務器獲取目標視頻所包含的視頻幀的總幀數(shù),為目標視頻分配一個一維數(shù)組,定義該數(shù)組為Label,將數(shù)組Label的長度設置為該視頻幀的總幀數(shù),并初始化為空;
[0140]b.當用戶對目標視頻進行播放時,服務器獲取當前目標視頻中已完成緩存的視頻幀序列,定義已完成緩存的視頻幀序列為V;
[0141]c.服務器計算視頻幀序列V中所有相鄰視頻幀的圖像差異值;
[0142]d.服務器計算相鄰視頻幀的圖像差異值的方差,得到對應的幀差異值;
[0143]e.服務器將計算得到的幀差異值保存至數(shù)組中對應的位置。
[0144]例如:目標視頻總幀數(shù)有1000幀,則設置數(shù)組Label的長度為1000,并初始化為空值;其中,假設用戶已經(jīng)緩存的視頻幀序列共有10幀,則視頻幀序列為V[10];在計算第i幀的幀差異值時,先通過V[i]-V[i_l]計算得到圖像差異值,再通過計算該圖像差異值的方差得到第i幀的幀差異值M;設第i幀在目標視頻中的第F個幀位置,則將幀差異值M保存到對應的位置 Label[F],即 Label[F]=M。
[0145]其中,數(shù)組Label的長度是有限的,當數(shù)組Label的每個值都被賦值后,結束服務器的視頻相似度學習過程。
[0146]其中,作為一種特殊情況,用戶在初期播放目標視頻時,服務器會檢測數(shù)組Label為空的幀;此時,服務器會將幀號隨機發(fā)送給用戶;用戶收到幀號后,在后續(xù)進行目標視頻播放緩沖時,服務器檢測是否包含上述發(fā)送的幀號,若包含,則通過上述計算幀差異值的方法計算對應視頻幀的幀差異值,再保存至數(shù)組Label中對應的位置中。
[0147]通過上述方案,本發(fā)明提供了一種利用視頻幀差異實現(xiàn)視頻預覽的方法,更好地實現(xiàn)了對有代表性的視頻幀進行預覽顯示,從而使用戶能快速地定位到感興趣的視頻內(nèi)容,滿足用戶需求。
[0148]進一步的,為了更好地利用視頻幀差異實現(xiàn)視頻預覽,參照圖5,為本發(fā)明實施例中為所述目標視頻建立相應的所述數(shù)據(jù)庫的一種實施方式,包括:
[0149]步驟S51,獲取所述目標視頻所包含的視頻幀的總幀數(shù),建立一個初始化為空值,長度為所述視頻幀的總幀數(shù)的一維數(shù)組。
[0150]具體地,服務器獲取目標視頻所包含的視頻幀的總幀數(shù),建立一個初始化為空值,長度為視頻幀的總幀數(shù)的一維數(shù)組。
[0151]在具體實現(xiàn)時,可采用如下方法:
[0152]服務器獲取目標視頻所包含的視頻幀的總幀數(shù),為目標視頻分配一個一維數(shù)組,定義該數(shù)組為Label,將數(shù)組Label的長度設置為該視頻幀的總幀數(shù),并初始化為空。
[0153]步驟S52,獲取用戶初始播放所述目標視頻中已緩沖的視頻幀序列。
[0154]具體地,在成功建立一個初始化為空值,長度為視頻幀的總幀數(shù)的一維數(shù)組后,月艮務器獲取當前目標視頻中已緩存的視頻幀序列。
[0155]步驟S53,依次計算已緩沖的所述視頻幀序列中每一視頻幀與相鄰視頻幀的圖像差異值。
[0156]具體地,在成功獲取當前目標視頻中已緩存的視頻幀序列后,服務器計算視頻幀序列中相鄰視頻幀的圖像差異值。
[0157]在具體實現(xiàn)時,可以采取如下方式:
[0158]設用戶已經(jīng)緩存的視頻幀序列共有10幀,則視頻幀序列為V[10];在計算第i幀的幀差異值時,通過V[i]-V[i_l]計算得到圖像差異值。
[0159]步驟S54,計算所述圖像差異值的方差,得到對應的幀差異值,并將所述幀差異值存儲至所述一維數(shù)組中。
[0160]具體地,在成功計算視頻幀序列中相鄰視頻幀的圖像差異值后,服務器通過計算相鄰視頻幀的圖像差異值的方差,得到幀差異值。
[0161]在具體實現(xiàn)時,可以采取如下方式:
[0162]通過計算該圖像差異值的方差得到第i幀的幀差異值M;設第i幀在目標視頻中的第F個幀位置,則將幀差異值M保存到對應的位置Label [F],即Label [F]=M。
[0163]步驟S55,判斷所述一維數(shù)組中是否已存儲有所述目標視頻中每一視頻幀對應的幀差異值,若否,則重復執(zhí)行計算所述幀差異值的步驟;若是,則結束為所述目標視頻建立相應的所述數(shù)據(jù)庫。
[0164]具體地,在成功存儲上述幀差異值后,服務器判斷一維數(shù)組中是否已存儲有目標視頻中每一視頻幀對應的幀差異值,若否,則重復執(zhí)行計算幀差異值的步驟;若是,則結束為目標視頻建立相應的數(shù)據(jù)庫。
[0165]其中,若服務器判斷一維數(shù)組中還未存儲有目標視頻中每一視頻幀對應的幀差異值,則執(zhí)行上述步驟S53;若服務器判斷一維數(shù)組中已存儲有目標視頻中每一視頻幀對應的幀差異值,則執(zhí)行步驟S56,結束為目標視頻建立相應的數(shù)據(jù)庫的操作。
[0166]另外,在執(zhí)行計算之前,服務器會對用戶的使用環(huán)境和CPU計算量是否造成計算超時進行判斷,若不造成計算超時,則執(zhí)行分配所述預設的數(shù)組給目標視頻的步驟,否則,則不執(zhí)行;上述用戶的使用環(huán)境包括溫度、濕度等會對用戶進行視頻播放的設備造成影響的外界環(huán)境因素。
[0167]通過上述方案,本發(fā)明提供了一種利用視頻幀差異實現(xiàn)視頻預覽的方法,更好地實現(xiàn)了對有代表性的視頻幀進行預覽顯示,從而使用戶能快速地定位到感興趣的視頻內(nèi)容,滿足用戶需求。
[0168]進一步的,為了更好地利用視頻幀差異實現(xiàn)視頻預覽,參照圖6,為本發(fā)明實施例中將查找到的預設個數(shù)的所述幀差異值對應的多個視頻幀,以預覽形式向用戶進行顯示的一種實施方式,包括:
[0169]步驟S41,將查找到的預設個數(shù)的所述幀差異值對應的多個視頻幀,以多宮格預覽形式或卡片式預覽形式向用戶進行顯示。
[0170]具體地,基于上述實施例方法的實施,在成功從預先建立的數(shù)據(jù)庫中查找所述幀位置區(qū)間所包含的每一視頻幀所對應的幀差異值中數(shù)值較大的預設個數(shù)的幀差異值后,月艮務器將查找到的預設個數(shù)的所述幀差異值對應的多個視頻幀,以多宮格預覽形式或卡片式預覽形式向用戶進行顯示。
[0171]其中,服務器根據(jù)獲取得到的預設個數(shù)的幀差異值從數(shù)據(jù)庫中匹配到對應的多個視頻幀,再將對應的多個視頻幀進行以預覽框的形式進行顯示,預覽框的顯示方式可以是九宮格式的矩陣形式排列顯示,還可以是卡片式的橫向或縱向排列顯示或者其他能實現(xiàn)多個視頻幀同時預覽的預覽顯示方式。
[0172]其中,當用戶對預覽框顯示的某一個視頻幀進行選擇操作時,則目標視頻跳轉至該視頻幀所對應的進度位置進行播放。
[0173]其中,當用戶對預覽顯示的某一個視頻幀進行選擇操作時,服務器還通過上述顯示預覽視頻幀的方式,以拓撲結構的方式進一步顯示預覽視頻幀。
[0174]在具體實現(xiàn)時,可以采取如下方式:
[0175]設用戶對目標視頻的進度從第一進度位置Pl調(diào)整至第二進度位置P2后,在預覽框顯示的視頻幀中選擇的視頻幀的進度位置記為P3,其中第一進度位置Pl對應的幀位置為記Fl,第二進度位置P2對應的幀位置記為F2,用戶選擇的視頻幀的進度位置P3對應的幀位置記為F3。
[0176]同時,設目標視頻起始進度位置PO對應的幀位置為FO;用戶自行設定的獲取最大的差異值的個數(shù)為H。
[0177]第一種實施方式:
[0178]服務器根據(jù)用戶選擇的視頻幀的進度位置P3對應的幀位置F3和起始進度位置PO