一種電視終端的視頻顯示方法及系統與流程
2023-04-29 20:02:52

本發明涉及電視終端領域,尤其涉及一種電視終端的視頻顯示方法及系統。
背景技術:
在手機上實現視頻旋轉,因手機的寬高固定,通過Android原生方案即可實現橫豎屏切換,目前通過多屏互動協議可以將手機上的視頻推送到電視上播放,在線視頻推送到電視時,會橫向顯示推送視頻,由硬體解碼實現,不需進行旋轉與拉伸處理。但是,手機拍攝視頻可分為橫向拍攝和豎向拍攝兩種拍攝模式,拍攝後的視頻長寬比與電視不對應,當通過多屏互動推送手機拍攝視頻到智能電視時,會出現因無法按比例縮放出現旋轉後被拉伸的情況。
另外,目前市場上手機旋轉視頻,一般採用軟體解碼,獲取視頻中目標物體的位置信息確定出縮放前像素值與旋轉後像素值間的函數關係後進行複雜的縮放旋轉運算。由於縮放算法的複雜,針對視頻源的解析度進行縮放時,需針對每一幀進行縮放嚴重消耗智能電視的CPU,經常出現花屏,黑屏與卡頓等問題。
因此,現有技術還有待於改進和發展。
技術實現要素:
本發明要解決的技術問題在於,針對現有技術的上述缺陷,提供一種電視終端的視頻顯示方法及系統,從而解決當前將手機錄製的視頻推送到的智能電視顯示時,視頻顯示比例與智能電視不匹配,導致視頻被拉伸變形;而採用軟體解碼時,由於縮放算法複雜,嚴重消耗智能電視的CPU,易出現花屏、黑屏和卡頓的問題。
本發明解決技術問題所採用的技術方案如下:
一種電視終端的視頻顯示方法,包括:
B、當電視終端的視頻播放器接收到移動終端發送的視頻URL地址時,解碼當前視頻的視頻信息,獲取當前視頻需要旋轉的角度;
C、電視終端根據所述旋轉角度,旋轉當前視頻得到旋轉後的視頻;
D、電視終端調用視頻旋轉顯示處理算法設置視頻顯示區域大小,並控制視頻播放器在調整大小後的視頻顯示區域內顯示旋轉後的視頻。
所述的電視終端的視頻顯示方法,其中,所述步驟B之前還包括:
A1、增加視頻播放器的消息回調類監聽器註冊到電視終端的系統層,用於當視頻播放器預加載完成時,回調通知視頻播放器解碼的相關信息;
A2、增加視頻播放器的視頻大小改變監聽類註冊到電視終端的系統層,用於當視頻播放大小改變時,回調通知視頻播放器調整顯示區域大小。
所述的電視終端的視頻顯示方法,其中,所述步驟B具體包括:
B1、接收用戶指令控制移動終端通過多屏互動協議發送視頻的URL地址給電視終端的視頻播放器;
B2、當接收到所述視頻的URL地址時,系統層以當前視頻URL地址為視頻數據源,解碼當前視頻的視頻信息;
B3、根據解碼的當前視頻的視頻信息,獲取當前視頻需要旋轉的角度。
所述的電視終端的視頻顯示方法,其中,所述步驟C具體包括:
C1、系統層根據所述旋轉角度,採用軟體解碼旋轉當前視頻得到旋轉後的視頻;
C2、消息回調類監聽器回調採用軟體解碼視頻通知給視頻播放器;
C3、當視頻播放器收到消息回調類監聽器回調的採用軟體解碼視頻通知後,保存一軟解標誌位;
C4、視頻大小改變監聽類回調調整顯示區域大小通知給視頻播放器。
所述的電視終端的視頻顯示方法,其中,所述步驟D具體包括:
D1、當視頻播放器接收到視頻大小改變監聽類回調的調整顯示區域大小通知時,檢測是否保存有軟解標誌位;
D2、當保存有軟解標誌位時,視頻播放器調用視頻旋轉顯示處理算法設置視頻顯示區域大小;
D3、在調整大小後的視頻顯示區域內顯示旋轉後的視頻。
所述的電視終端的視頻顯示方法,其中,所述視頻旋轉顯示處理算法為:
獲取電視終端的寬高解析度和移動終端發送的視頻的寬高;
設電視終端的寬高解析度分別為Wt和Ht,設移動終端發送的視頻的寬高分別為Wp和Hp;設視頻顯示區域的大小應調整到的寬高分別為Wt1和Ht1,當視頻按電視終端的寬高比例縮放時,Wt/Ht = Wp/Hp,當視頻被旋轉90°或270°時,則變為Wt/Ht =Hp/Wp,此時按公式推算得出視頻在電視終端上的寬為Wp=Ht * Hp/ Wt;按同比例縮放原則,將Ht替換為Hp,則視頻顯示區域的寬應調整為Wt1=Wp=Hp*Hp/Wt;而視頻顯示區域的高應調整為Ht1=Ht;
創建一個顯示區域布局對象將視頻顯示區域的寬高設置到布局,最後設置視頻顯示區域大小並居中顯示。
一種電視終端的視頻顯示系統,包括:
視頻信息提取模塊,用於當電視終端的視頻播放器接收到移動終端發送的視頻URL地址時,解碼當前視頻的視頻信息,獲取當前視頻需要旋轉的角度;
視頻旋轉模塊,用於根據所述旋轉角度,旋轉當前視頻得到旋轉後的視頻;
顯示區域調整模塊,用於調用視頻旋轉顯示處理算法設置視頻顯示區域大小,並控制視頻播放器在調整大小後的視頻顯示區域內顯示旋轉後的視頻。
所述的電視終端的視頻顯示系統,其中,所述視頻顯示系統還包括:
第一預先設置模塊,用於增加視頻播放器的消息回調類監聽器註冊到電視終端的系統層;
第二預先設置模塊,用於增加視頻播放器的消息回調類視頻大小改變監聽類註冊到電視終端的系統層。
所述的電視終端的視頻顯示系統,其中,所述視頻信息提取模塊包括:
視頻URL地址發送單元,用於接收用戶指令控制移動終端通過多屏互動協議發送視頻的URL地址給電視終端的視頻播放器;
視頻信息提取單元,用於當接收到所述視頻的URL地址時,以當前視頻URL地址為視頻數據源,解碼當前視頻的視頻信息;
旋轉角度獲取單元,用於根據解碼的當前視頻的視頻信息,獲取當前視頻需要旋轉的角度。
所述的電視終端的視頻顯示系統,其中,所述視頻旋轉模塊包括:
視頻旋轉單元,用於根據所述旋轉角度,採用軟體解碼旋轉當前視頻得到旋轉後的視頻;
第一回調通知單元,用於通過消息回調類監聽器回調採用軟體解碼視頻通知給視頻播放器;
軟解標誌位保存單元,用於當視頻播放器收到消息回調類監聽器回調的採用軟體解碼視頻通知後,保存一軟解標誌位;
第二回調通知單元,用於通過視頻大小改變監聽類回調調整顯示區域大小通知給視頻播放器;
所述顯示區域調整模塊包括:
檢測單元,用於當視頻播放器接收到視頻大小改變監聽類回調的調整顯示區域大小通知時,檢測是否保存有軟解標誌位;
顯示區域調整單元,用於當保存有軟解標誌位時,通過視頻播放器調用視頻旋轉顯示處理算法設置視頻顯示區域大小;
視頻顯示單元,用於在調整大小後的視頻顯示區域內顯示旋轉後的視頻。
綜上所述,本發明提供了一種電視終端的視頻顯示方法及系統,所述電視終端的視頻顯示方法,包括:當電視終端的視頻播放器接收到移動終端發送的視頻URL地址時,解碼當前視頻的視頻信息,獲取當前視頻需要旋轉的角度;電視終端根據所述旋轉角度,旋轉當前視頻得到旋轉後的視頻;電視終端調用視頻旋轉顯示處理算法設置視頻顯示區域大小,並控制視頻播放器在調整大小後的視頻顯示區域內顯示旋轉後的視頻。本發明所述電視終端的視頻顯示方法,能夠解決當視頻文件畫面的長寬與智能電視長寬比不對應時,播放產生的畫面被拉伸變形的問題,提升了播放器的播放質量;同時本發明將縮放放在顯示層計算,無需通過複雜的視頻幀運算,有效避免了智能電視出現花屏、黑屏及卡頓現象。
附圖說明
圖1是本發明電視終端的視頻顯示方法較佳實施例的流程圖。
圖2是本發明電視終端的視頻顯示方法具體應用實施例的流程圖。
圖3是本發明電視終端的視頻顯示系統較佳實施例的功能原理框圖。
具體實施方式
為使本發明的目的、技術方案及優點更加清楚、明確,以下參照附圖並舉實施例對本發明進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發明,並不用於限定本發明。
請參見圖1,圖1是本發明電視終端的視頻顯示方法較佳實施例的流程圖。圖1所示的電視終端的視頻顯示方法,包括:
步驟S200、當電視終端的視頻播放器接收到移動終端發送的視頻URL地址時,解碼當前視頻的視頻信息,獲取當前視頻需要旋轉的角度;
步驟S300、電視終端根據所述旋轉角度,旋轉當前視頻得到旋轉後的視頻;
步驟S400、電視終端調用視頻旋轉顯示處理算法設置視頻顯示區域大小,並控制視頻播放器在調整大小後的視頻顯示區域內顯示旋轉後的視頻。
本發明實施例的電視終端為智能電視,移動終端以手機為例進行說明,目前,智能電視的播放器對視頻進行解碼的方法包括硬解和軟解;硬解就是硬體解碼,指利用GPU來代替CPU進行解碼,而軟解就是軟體解碼,指利用軟體讓CPU來進行解碼;兩者的主要區別在於:硬體解碼是將原來全部交由CPU來處理的視頻數據交由GPU來做,而GPU的並行運算能力要遠遠高於CPU,這樣可以大大的降低對CPU的負載。尤其針對大文件或4K視頻時軟解很容易出現內存不足(out of memory)。正如以上背景技術中所述,硬解不能對視頻進行旋轉,而軟解又容易導致視頻被拉伸變形;且由於軟解縮放算法複雜,嚴重消耗智能電視的CPU,易出現花屏、黑屏和卡頓等現象。因此本發明創造性的首先採用對視頻進行旋轉,再對智能電視的顯示區域大小進行適應性調整,從而很好的解決了以上技術問題。
本發明在具體實施時,可以先對智能電視的視頻播放器進行初始化,當用戶使用多屏互動應用向視頻播放器推送視頻時,首先初始化視頻播放器的顯示區域,初始化多屏互動的服務,將視頻播放控制回調類(VideoPlayControlCallback)實例綁定到多屏互動服務,用於多屏互動的推送接口。同時,本發明實施例新增視頻播放器的消息回調類監聽器(OnInfoListener)註冊到智能電視的系統層(晶片),當視頻播放器預加載完成時,智能電視的系統層會回調通知視頻播放器解碼相關信息;本發明實施例還新增視頻播放器的視頻大小改變監聽類(OnVideoSizeChangedListener)註冊到智能電視的系統層,當視頻播放大小改變時,系統會回調通知視頻播放器調整顯示區域大小,而智能電視的系統層實現部分由mstar、MTK、Amlogic等廠商的晶片實現。
因此,本發明實施例中,所述步驟S200之前還包括:
S110、增加視頻播放器的消息回調類監聽器註冊到電視終端的系統層,用於當視頻播放器預加載完成時,回調通知視頻播放器解碼的相關信息。
S120、增加視頻播放器的視頻大小改變監聽類註冊到電視終端的系統層,用於當視頻播放大小改變時,回調通知視頻播放器調整顯示區域大小。
在步驟S200中,當智能電視的視頻播放器接收到手機發送的視頻URL地址時,解碼當前視頻的視頻信息,獲取當前視頻需要旋轉的角度;本發明實施例中是以URL地址作為視頻數據源(DataSource),URL地址內包含有大量視頻相關數據,例如,視頻的長度、拍攝角度、拍攝及上傳時間等,這些相關數據也即是視頻信息;如果拍攝角度為0°,也就是橫向拍攝,則在智能電視上播放時就不需要進行視頻旋轉,而當拍攝角度為90°,也就是豎向拍攝,則在智能電視上播放時必然要進行旋轉。需要說明的是,硬解無法進行旋轉,而軟解可以,當提取出拍攝角度為90°或270°時,則當前視頻播放需要旋轉,也就是當前視頻需要進行軟解。
進一步的,所述步驟S200具體包括:
S210、接收用戶指令控制移動終端通過多屏互動協議發送視頻的URL地址給電視終端的視頻播放器;所述的多屏互動協議為常用的多屏互動協議,例如,DLNA。
S220、當接收到所述視頻的URL地址時,系統層以當前視頻URL地址為視頻數據源,解碼當前視頻的視頻信息;在本發明實施例中實施時,電視終端的視頻播放器接收並獲取推送的URL地址,將URL地址作為視頻數據源設置到系統層(晶片),調用播放方法,系統層開始解析視頻信息,取得解碼後的視頻信息數據。
S230、根據解碼的當前視頻的視頻信息,獲取當前視頻需要旋轉的角度;在本發明實施例中實施時,根據解析後的視頻信息數據,提取當前視頻拍攝時的角度,根據拍攝角度獲取當前視頻需要旋轉的角度。
在步驟S300中,電視終端根據所述旋轉角度,旋轉當前視頻得到旋轉後的視頻;在本發明實施例中實施時,智能電視根據所述旋轉角度進行旋轉,旋轉的角度與拍攝角度相對應,例如拍攝時是豎直拍攝,拍攝角度為90°,則視頻播放時則要相應的旋轉90°。
進一步的,所述步驟S300具體包括:
S310、系統層根據所述旋轉角度,採用軟體解碼旋轉當前視頻得到旋轉後的視頻;在本發明實施例中實施時,由於拍攝的視頻因為要旋轉拉伸,硬解無法進行旋轉,只能使用軟解,因此系統層採用軟體解碼視頻,完成視頻旋轉。
S320、消息回調類監聽器回調採用軟體解碼視頻通知給視頻播放器;在本發明實施例中實施時,系統層對視頻旋轉完成的同時,回調採用軟體解碼視頻通知給視頻播放器。
S330、當視頻播放器收到消息回調類監聽器回調的採用軟體解碼視頻通知後,保存一軟解標誌位;在本發明實施例中實施時,系統層在旋轉完成的同時,會回調通知到視頻播放器,此時系統層通知視頻播放器此視頻採用軟解,並調用註冊的消息回調類監聽器,將軟體標誌位(VIDEO_DISPLAY_BY_SOFTWARE)返回到視頻播放器,視頻播放器收到後會保存一個軟解標誌位,用於標識採用軟解方法解碼視頻。
S340、視頻大小改變監聽類回調調整顯示區域大小通知給視頻播放器;在本發明實施例中實施時,系統層在旋轉完成的同時,也會回調調整顯示區域大小通知給視頻播放器,具體可以通過調用註冊的視頻大小改變監聽類,回調調整顯示區域大小通知給視頻播放器。
在步驟S400中,電視終端調用視頻旋轉顯示處理算法設置視頻顯示區域大小,並控制視頻播放器在調整大小後的視頻顯示區域內顯示旋轉後的視頻;其中,所述視頻旋轉顯示處理算法(setVideoDisplayRotate)為:
獲取電視終端的寬高解析度和移動終端發送的視頻的寬高;設電視終端的寬高解析度分別為Wt和Ht,設移動終端發送的視頻的寬高分別為Wp和Hp;設視頻顯示區域的大小應調整到的寬高分別為Wt1和Ht1,當視頻按電視終端的寬高比例縮放時,Wt/Ht = Wp/Hp,當視頻被旋轉90°或270°時,則變為Wt/Ht =Hp/Wp,此時按公式推算得出視頻在電視終端上的寬為Wp=Ht* Hp/ Wt(將手機轉換為電視寬高比);按同比例縮放原則,將Ht替換為Hp,則視頻顯示區域的寬應調整為Wt1=Wp=Hp*Hp/Wt,而視頻顯示區域的高應調整為Ht1=Ht(旋轉後視頻視圖的高應為電視的高,視頻視圖的寬則為計算出來的Wp);創建一個顯示區域布局對象(LayoutParams )將視頻顯示區域的寬高設置到布局,最後設置視頻顯示區域大小並居中顯示。
其中,所述等比例縮放原則也就是視頻的寬與高的比等於智能電視解析度寬與高的比;通過調用系統函數獲取電視寬高解析度。
簡單的說,視頻旋轉顯示處理算法(setVideoDisplayRotate),也就是先獲取電視終端的寬高解析度和移動終端發送的視頻的寬高,然後根據電視終端的寬高和視頻旋轉後的寬高,通過等比例縮放原則,計算得到旋轉後的視頻在電視終端上顯示所需區域的大小,最後根據計算得到的顯示所需區域的大小相應設置電視終端視頻顯示區域的大小。
進一步的,所述步驟S400具體包括:
S410、當視頻播放器接收到視頻大小改變監聽類回調的調整顯示區域大小通知時,檢測是否保存有軟解標誌位;在本發明實施例中實施時,是否保存有軟解標誌位決定了是否調用重新設置視頻顯示區域大小。
S420、當保存有軟解標誌位時,視頻播放器調用視頻旋轉顯示處理算法設置視頻顯示區域大小;在本發明實施例中實施時,調用算法重新適應性設置視頻顯示區域大小。
S430、在調整大小後的視頻顯示區域內顯示旋轉後的視頻;在本發明實施例中實施時,在重新設置的視頻顯示區域內播放旋轉後的視頻。
本發明當視頻顯示區域的視頻大小改變(VideoSizeChanged)時,調用視頻旋轉顯示處理算法設置視頻顯示區域大小,通過改變視頻顯示區域大小,達到了視頻正常顯示的目的。
本發明還提供了一種電視終端的視頻顯示方法的具體應用實施例, 如圖2所示,本具體實施例的電視終端的視頻顯示方法包括:
步驟S11、初始化布局區域;也即是預設視頻顯示區域;
步驟S12、綁定多屏互動服務;
步驟S13、初始化視頻播放器;
步驟S14、註冊OnInfoListener;
步驟S15、註冊OnVideoSizeChangedListener;
步驟S16、解析多屏互動推送URL;
步驟S17、調用播放方法;
步驟S18、解碼視頻信息,即獲取旋轉角度;
步驟S19、判斷是否軟解,也即是判斷旋轉角度是否為零,當否,則進入步驟S20;當是則進入步驟S21;
步驟S20、硬解並拉全屏顯示到播發器;
步驟S21、獲取旋轉角度;
步驟S22、旋轉並通知播放器;
步驟S23、播放器保存軟解標誌位;
步驟S24、判斷是否有軟解標誌位,當否,則進入步驟S25;當是,則進入步驟S26;
步驟S25、結束;
步驟S26、獲取電視屏幕大小;
步驟S27、計算視頻顯示區域寬高;
步驟S28、設置到視頻顯示。
因此,本發明提供的電視終端的視頻顯示方法,當手機豎向錄製視頻推送到的智能電視顯示而顯示比例與智能電視不匹配時,通過在特定消息返回時,按算法更改視頻顯示視圖區域大小,解決手機錄製的視頻推送到電視被拉伸全屏且圖像裡的景物和人都壓得很扁問題,通過在特定回調消息中按算法改變視頻顯示區域大小,達到正常顯示手機推送視頻目的。
本領域普通技術人員可以理解:實現上述方法實施例的全部或部分步驟可以通過程序指令相關的硬體來完成,前述的程序可以存儲與一計算機可讀取存儲介質中,該程序在執行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質可為磁碟、光碟、只讀存儲記憶體(Read-Only,ROM)或隨機存儲記憶體(Random Access Memory,RAM)等。
基於上述方法實施例,本發明實施例還提供了一種電視終端的視頻顯示系統,如圖3所示,所述電視終端的視頻顯示系統,包括:視頻信息提取模塊700、視頻旋轉模塊800和顯示區域調整模塊900,其中,
視頻信息提取模塊700,用於當電視終端的視頻播放器接收到移動終端發送的視頻URL地址時,解碼當前視頻的視頻信息,獲取當前視頻需要旋轉的角度;具體如上所述。
視頻旋轉模塊800,用於根據所述旋轉角度,旋轉當前視頻得到旋轉後的視頻;具體如上所述。
顯示區域調整模塊900,用於調用視頻旋轉顯示處理算法設置視頻顯示區域大小,並控制視頻播放器在調整大小後的視頻顯示區域內顯示旋轉後的視頻;具體如上所述。
所述視頻顯示系統還包括:
第一預先設置模塊,用於增加視頻播放器的消息回調類監聽器註冊到電視終端的系統層;具體如上所述。
第二預先設置模塊,用於增加視頻播放器的視頻大小改變監聽類註冊到電視終端的系統層;具體如上所述。
進一步的,所述視頻信息提取模塊700包括:
視頻URL地址發送單元,用於接收用戶指令控制移動終端通過多屏互動協議發送視頻的URL地址給電視終端的視頻播放器;具體如上所述。
視頻信息提取單元,用於當接收到所述視頻的URL地址時,以當前視頻URL地址為視頻數據源,解碼當前視頻的視頻信息;具體如上所述。
旋轉角度獲取單元,用於根據解碼的當前視頻的視頻信息,獲取當前視頻需要旋轉的角度;具體如上所述。
進一步的,所述視頻旋轉模塊800包括:
視頻旋轉單元,用於根據所述旋轉角度,採用軟體解碼旋轉當前視頻得到旋轉後的視頻;具體如上所述。
第一回調通知單元,用於通過消息回調類監聽器回調採用軟體解碼視頻通知給視頻播放器;具體如上所述。
軟解標誌位保存單元,用於當視頻播放器收到消息回調類監聽器回調的採用軟體解碼視頻通知後,保存一軟解標誌位;具體如上所述。
第二回調通知單元,用於通過視頻大小改變監聽類回調調整顯示區域大小通知給視頻播放器;具體如上所述。
進一步的,所述顯示區域調整模塊900包括:
檢測單元,用於當視頻播放器接收到視頻大小改變監聽類回調的調整顯示區域大小通知時,檢測是否保存有軟解標誌位;具體如上所述。
顯示區域調整單元,用於當保存有軟解標誌位時,通過視頻播放器調用視頻旋轉顯示處理算法設置視頻顯示區域大小;具體如上所述。
視頻顯示單元,用於在調整大小後的視頻顯示區域內顯示旋轉後的視頻;具體如上所述。
綜上所述,本發明提供了一種電視終端的視頻顯示方法及系統,所述電視終端的視頻顯示方法,包括:當電視終端的視頻播放器接收到移動終端發送的視頻URL地址時,解碼當前視頻的視頻信息,獲取當前視頻需要旋轉的角度;電視終端根據所述旋轉角度,旋轉當前視頻得到旋轉後的視頻;電視終端調用視頻旋轉顯示處理算法設置視頻顯示區域大小,並控制視頻播放器在調整大小後的視頻顯示區域內顯示旋轉後的視頻。本發明所述電視終端的視頻顯示方法,能夠解決當視頻文件畫面的長寬與智能電視長寬比不對應時,播放產生的畫面被拉伸變形的問題,提升了播放器的播放質量;同時本發明將縮放放在顯示層計算,無需通過複雜的視頻幀運算,有效避免了智能電視出現花屏、黑屏及卡頓現象。
應當理解的是,本發明的應用不限於上述的舉例,對本領域普通技術人員來說,可以根據上述說明加以改進或變換,所有這些改進和變換都應屬於本發明所附權利要求的保護範圍。