本發明視頻播放技術領域,更具體地,涉及一種視頻尺寸自動優化方法及系統。
背景技術:
目前,視頻的產生和公布繼續增加,這是因為視頻攝像機變得較不昂貴并且視頻托管和分發服務繼續擴展。同時,存在消費視頻的很多不同的設備。屏幕分辨率和高寬比在不同的設備當中廣泛地變化,并且常常不與視頻分辨率和屏幕尺寸相關。
為了在具有不同分辨率和高寬比的屏幕上顯示視頻,常常使用簡單的算法來拉伸或壓縮視頻以適合屏幕。然而,由通常視頻播放器調整視頻的算法通常固定不可變,通常這些變化(拉伸或壓縮)引起的原視頻失真可能使視頻變得觀看起來令人不滿意。
技術實現要素:
本發明為克服上述問題或者至少部分地解決上述問題,提供一種視頻尺寸自動優化方法及系統,在傳統視頻尺寸調整處理方法的基礎之上,增加了一個拉伸閾值的因子,可以帶給用戶更好的用戶觀看視頻的視覺體驗。
根據本發明的一個方面,提供一種視頻尺寸自動優化方法,包括:
步驟1,計算視頻播放器窗口寬高比與待調整視頻寬高比的標準差;
步驟2,當所述標準差小于等于拉伸閾值時,對所述待調整視頻尺寸進行拉伸;
步驟3,當所述標準差大于拉伸閾值時,計算播放器寬度w1相對視頻寬度w2的第一縮放倍數以及播放器高度h1與視頻高度h2的第二縮放倍數,利用所述第一縮放倍數與所述第二縮放倍數中較小的值對所述待調整視頻尺寸進行拉伸。
根據本發明的另一個方面,提供一種視頻尺寸自動優化系統,包括第一模塊、第二模塊和第三模塊:
所述第一模塊與所述第二模塊相連,用于計算視頻播放器窗口寬高比與待調整視頻寬高比的標準差;
所述第二模塊,分別與所述第一模塊和第三模塊相連,用于當所述標準差小于等于拉伸閾值時,對所述待調整視頻尺寸進行拉伸;
所述第三模塊,與所述第二模塊相連,用于當所述標準差大于拉伸閾值時,計算播放器寬度w1相對視頻寬度w2的第一縮放倍數以及播放器高度h1與視頻高度h2的第二縮放倍數,利用所述第一縮放倍數與所述第二縮放倍數中較小的值對所述待調整視頻尺寸進行拉伸。
本申請提出一種視頻尺寸自動優化方法及系統,所述方法包含以下步驟:計算視頻播放器窗口寬高比與待調整視頻寬高比的標準差;步驟2,當所述標準差小于等于拉伸閾值時,對所述待調整視頻尺寸進行拉伸;當所述標準差大于拉伸閾值時,執行步驟3;步驟3,計算播放器寬度w1相對視頻寬度w2的縮放倍數sx,以及播放器高度h1與視頻高度h2的縮放倍數sy,利用所述sx與sy中較小的值對所述待調整視頻尺寸進行拉伸。本發明在傳統視頻尺寸調整處理方法的基礎之上,增加了一個拉伸閾值的因子,相對傳統方案而言,對用戶體驗有明顯提升,同時靈活可控。如果將所述拉伸閾值因子設置為0,就等效于傳統方案。實際用戶在操作時,不需要將播放器大小調整到精確適配視頻大小(這對用戶來說是一件很難的事情),而是大致在一定范圍之內,播放器就會做出自適應處理,給予用戶最佳觀感。
附圖說明
圖1為根據本發明實施例一種視頻尺寸自動優化方法的整體流程示意圖;
圖2為根據本發明實施例一種視頻尺寸自動優化方法的總體流程示意圖;
圖3為根據本發明實施例一種視頻尺寸自動優化方法的尺寸調整示意圖;
圖4為根據本發明實施例一種視頻尺寸自動優化方法的調整前待調整視頻示意圖;
圖5為根據本發明實施例一種視頻尺寸自動優化方法的調整后待調整視頻示意圖;
圖6為根據本發明實施例一種視頻尺寸自動優化方法的整體框架示意圖。
具體實施方式
下面結合附圖和實施例,對本發明的具體實施方式作進一步詳細描述。以下實施例用于說明本發明,但不用來限制本發明的范圍。
在介紹本發明具體實施例時,首先對于本發明具體實施例中涉及的相關術語進行說明。
寬高比:寬度和高度的比值,視頻領域常用。
等比拉伸:保持寬高比不變的情況下,進行放大或者縮小操作。
黑邊:視頻左右或者上下的黑色填充區域。
標準差:概率統計中的概念,最常使用作為統計分布程度上的測量
用戶在使用視頻播放器觀看視頻時,由于視頻播放器的尺寸和視頻本身尺寸,都是不一定的,極有可能存在尺寸不一致的情況,本文介紹了一種方法,如何適配各種不同的尺寸,讓視頻能以最優的效果展示在播放器中。本文的改進在于,在傳統處理方法的基礎之上,增加了一個拉伸閾值的因子,可以帶給用戶更好的用戶體驗。
如圖1,在本發明一個具體實施例中,示出一種視頻尺寸自動優化方法整體流程示意圖。總體上,包括:
步驟1,計算視頻播放器窗口寬高比與待調整視頻寬高比的標準差;
步驟2,當所述標準差小于等于拉伸閾值時,對所述待調整視頻尺寸進行拉伸;
步驟3,當所述標準差大于拉伸閾值時,計算播放器寬度w1相對視頻寬度w2的第一縮放倍數以及播放器高度h1與視頻高度h2的第二縮放倍數,利用所述第一縮放倍數與所述第二縮放倍數中較小的值對所述待調整視頻尺寸進行拉伸。
在本發明另一個具體實施例中,一種視頻尺寸自動優化方法,所述步驟1前還包括:獲取視頻播放器寬度w1和高度h1;獲取待調整視頻寬度w2和高度h2。
在本發明另一個具體實施例中,一種視頻尺寸自動優化方法,所述步驟1中視頻播放器窗口寬高比與待調整視頻寬高比的標準差還包括:
其中σ為所述標準差,r1為所述視頻播放器寬高比,r2位所述待調整視頻寬高比。
在本發明另一個具體實施例中,一種視頻尺寸自動優化方法,所述步驟2前還包括:設定拉伸閾值。
在本發明另一個具體實施例中,一種視頻尺寸自動優化方法,所述拉伸閾值a取值范圍為:大于等于0,小于等于r1與r2中的最大值,其中r1為所述視頻播放器寬高比,r2位所述待調整視頻寬高比。
在本發明另一個具體實施例中,一種視頻尺寸自動優化方法,所述拉伸閾值為0.1。
在本發明另一個具體實施例中,一種視頻尺寸自動優化方法,所述步驟2中對所述待調整視頻尺寸進行拉伸還包括:將所述待調整視頻坐標定位到原點(0,0),將所述視頻寬度調整為所述視頻播放器寬度,將所述視頻高度設置為所述視頻播放器高度。
在本發明另一個具體實施例中,一種視頻尺寸自動優化方法,
所述步驟3中利用所述第一縮放倍數與所述第二縮放倍數中較小的值對所述待調整視頻尺寸進行拉伸還包括:
當sx<sy時,調整所述待調整視頻寬度為w2×sx,調整所述待調整視頻高度為h2×sx,設置待調整視頻坐標為(0,(h1-h2×sx)/2),其中sx為第一縮放倍數,sy為第二縮放倍數。
在本發明另一個具體實施例中,一種視頻尺寸自動優化方法,
所述步驟3中利用所述第一縮放倍數與所述第二縮放倍數中較小的值對所述待調整視頻尺寸進行拉伸還包括:
當sx>sy時,調整所述待調整視頻寬度為w2×sy,調整所述待調整視頻高度為h2×sy,調整所述待調整視頻坐標為((w1-w2×sy)/2,0),其中sx為第一縮放倍數,sy為第二縮放倍數。
如圖2,在本發明又一個具體實施例中,示出一種視頻尺寸自動優化方法整體流程示意圖,下面將以web端flash視頻播放器為例,逐步介紹實際操作步驟:
1、設定拉伸閾值a,值越大,優化效果越明顯,同時越容易出現畫面拉伸變形,需要根據實際情況靈活調整,本文設置為0.1。
所謂拉伸閾值,是一個用來判斷臨界范圍的值,在這個范圍之內,進行強制拉伸,超出這個范圍,則采用等比拉伸并增加黑邊。在本文中,拉伸閾值被設置為寬高比差值,拉伸閾值的取值很重要,如果值太小,優化效果不明顯,如果值太大,可能導致畫面嚴重變形,根據經驗和測試結果,本文中將拉伸閾值設置為0.1。引入此因子的原因是,盡可能在可控范圍內,讓用戶能看到滿屏的視頻,而非上下有黑邊或者左右有黑邊。如果播放器尺寸比例和視頻尺寸比例差距較大,比如播放器是21:9,視頻是4:3,這樣的情況下,使用黑邊填充在所難免。但是假如尺寸比例相差不大,比如播放器是4:3.1,視頻是4:3,傳統方案的處理中,由于比例沒有精確對上,也會進行黑邊處理,造成這種相差不大的情況下視頻周邊也有一條細細的黑邊,讓視頻畫面沖擊力下降,用戶無法沉浸到視頻內容中。如果引入了拉伸閾值因子,那么在一定范圍內的比例差異,將會被忽略,視頻仿佛被自動吸附到播放器中,讓用戶能沉浸到視頻內容中,帶給用戶良好體驗。
2、獲取播放器的尺寸,對于flash視頻播放器來說,直接取舞臺大小即可:
varw1:number=stage.stagewidth;//播放器寬度w1
varh1:number=stage.stageheight;//播放器高度h1
3、視頻加載緩沖好之后,通過video對象,獲取視頻的實際尺寸:
varw2:number=_video.videowidth;//視頻實際寬度w2
varh2:number=_video.videoheight;//視頻實際高度h2
4、根據以上參數,進行視頻位置及大小的調整。
4.1計算出播放器寬高比r1以及視頻寬高比r2,并計算出其標準差,然后與拉伸閾值a進行比較。
r1=w1/h1
r2=w2/h2
標準差是概率統計中的概念,最常使用作為統計分布程度(statisticaldispersion)上的測量。標準差定義是總體各單位標準值與其平均數離差平方的算術平均數的平方根。它反映組內個體間的離散程度。
假設有一組數值x1,x2,x3,......xn(皆為實數),其平均值(算術平均值)為μ,公式如下:
本步驟需要度量播放器尺寸和視頻尺寸的相差范圍,標準差正適合應用在此處。將r1、r2代入,計算出標準差,根據其與拉伸閾值a的大小對比,進入不同流程處理。
拉伸閾值a取值范圍0到max(r1,r2)即r1和r2中的較大者,其中取0代表此優化永遠不開啟,等效于傳統模式,取最大值代表此優化永遠開啟,可能導致畫面變形。
如果小于拉伸閾值,說明差異比較小,可以進行強制拉伸,用戶感知不明顯,可以直接將視頻坐標定位到原點(0,0),視頻寬度設置為播放器寬度,視頻高度設置為播放器高度。這其中也包括精確相等的情況,此時差值=0,同樣適用。至此,這種情況下的流程結束,用戶在這種情況下獲得了最好觀感。圖4、圖5分別為次情形下的調整前后視頻對比。
_video.width=w1;
_video.height=h1;
_video.x=0;
_video.y=0;
4.2如果4.1計算出的條件不滿足,說明差異比較大,此時如果像4.1一樣強制拉伸,會使得用戶感知到畫面變形,所以此時,我們需要進行另外一種處理,避免這種不好的體驗。
首先要計算出播放器寬度w1相對視頻寬度w2的縮放倍數sx,以及播放器高度h1與視頻高度h2的縮放倍數sy,將這兩個值進行一個比較,取其中較小者為基準,進行等比拉伸。
sx=w1/w2
sy=h1/h2
下面以sx<sy的情況為例。如圖3,這種情況下,說明寬度的拉伸程度要小于高度的拉伸程度,此時應該將畫面整體縮放sx倍。
_video.width=w2*sx;
_video.height=h2*sx;
這樣既保持了視頻的比例不變,不會畫面變形,又獲得了最適合這個播放器尺寸的大小,但是只進行縮放是不夠的,由于不是完全覆蓋整個播放器,視頻周邊可能有黑邊,此時需要將視頻位置調整為居中。在寬度拉伸程度小于高度拉伸程度的情況下,需要將橫向坐標置為0,高度居中。視頻縱向坐標應為(h1-h2*sx)/2。
_video.x=0;
_video.y=(h1-h2*sx)/2;
假如寬度的拉伸程度大于高度的拉伸程度,即sy<sx,依據上面的邏輯同樣可以推理出,視頻的位置的大小應該設置為:
_video.width=w2*sy;
_video.height=h2*sy;
_video.x=(w1-w2*sy)/2;
_video.y=0;
至此,全部流程結束。
本方法創新的引入拉伸閾值因子,同時,引入概率統計方法之中的標準差,進一步的提高了計算的精準度和科學性。相對傳統方案而言,對用戶體驗有明顯提升,同時靈活可控。如果將其設置為0,就等效于傳統方案。實際用戶在操作時,不需要將播放器大小調整到精確適配視頻大小(這對用戶來說是一件很難的事情),而是大致在一定范圍之內,播放器就會做出自適應處理,給予用戶最佳觀感。
如圖5,在本發明一個具體實施例中,示出一種視頻尺寸自動優化系統。總體上,包括第一模塊a1、第二模塊a2和第三模塊a3:
所述第一模塊a1與所述第二模塊a2相連,計算視頻播放器窗口寬高比與待調整視頻寬高比的標準差;
所述第二模塊a2,分別與所述第一模塊a1和第三模塊a3相連,用于當所述標準差小于等于拉伸閾值時,對所述待調整視頻尺寸進行拉伸;
所述第三模塊a3,與所述第二模塊a2相連,用于當所述標準差大于拉伸閾值時,計算播放器寬度w1相對視頻寬度w2的第一縮放倍數以及播放器高度h1與視頻高度h2的第二縮放倍數,利用所述第一縮放倍數與所述第二縮放倍數中較小的值對所述待調整視頻尺寸進行拉伸。
最后,本申請的方法僅為較佳的實施方案,并非用于限定本發明的保護范圍。凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護范圍之內。