[發明專利]一種視頻切換清晰度的方法及相關裝置有效
| 申請號: | 201910431254.1 | 申請日: | 2019-05-22 |
| 公開(公告)號: | CN110139148B | 公開(公告)日: | 2021-05-28 |
| 發明(設計)人: | 何水霞 | 申請(專利權)人: | 武漢甌越網視有限公司 |
| 主分類號: | H04N21/44 | 分類號: | H04N21/44;H04N21/4402;H04N21/8405 |
| 代理公司: | 北京眾達德權知識產權代理有限公司 11570 | 代理人: | 徐松 |
| 地址: | 430000 湖北省武漢市東湖新技術開*** | 國省代碼: | 湖北;42 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 視頻 切換 清晰度 方法 相關 裝置 | ||
1.一種視頻切換清晰度的方法,其特征在于,包括:
接收用戶發送的清晰度切換指令,所述清晰度切換指令用于指示將當前播放視頻從第一清晰度切換至第二清晰度,所述第一清晰度對應所述當前播放視頻的第一視頻流,所述第二清晰度對應所述當前播放視頻的第二視頻流;
響應于所述清晰度切換指令,根據所述第一視頻流中的關鍵幀和非關鍵幀確定所述第一視頻流的最終顯示幀的第一補充增強信息SEI時間戳,并確定所述第二視頻流的第一個關鍵幀的第二SEI時間戳和所述第二視頻流的第一個關鍵幀的顯示時間戳PTS;
根據時間差值和所述第二視頻流的第一個關鍵幀的PTS確定所述第二視頻流中第一個非重復視頻幀的PTS,所述時間差值為所述第一SEI時間戳和所述第二SEI時間戳的差值,所述非重復視頻幀不包含于所述第一視頻流;
將所述第二視頻流中所述第一個非重復視頻幀之前的幀丟棄,并顯示所述第一個非重復視頻幀;
所述根據所述第一視頻流中的關鍵幀和非關鍵幀確定所述第一視頻流的最終顯示幀的第一SEI時間戳包括:
解析所述第一視頻流中各關鍵幀的SEI時間戳、所述各關鍵幀的PTS和各非關鍵幀的PTS;
將所述第一視頻流中各關鍵幀的SEI時間戳、所述各關鍵幀的PTS和各非關鍵幀的PTS轉換為相同的時間基準time_base;
根據所述第一視頻流中各關鍵幀的SEI時間戳、所述各關鍵幀的PTS和各非關鍵幀的PTS計算所述第一SEI時間戳;
所述根據所述第一視頻流中各關鍵幀的SEI時間戳、所述各關鍵幀的PTS和各非關鍵幀的PTS計算所述第一SEI時間戳包括:
通過以下公式計算所述第一SEI時間戳:
frame_sei=m_last_key_sei+(pts-m_last_key_pts);
所述frame_sei用于表示所述第一視頻流的最終顯示幀的第一SEI時間戳,所述m_last_key_sei用于表示所述第一視頻流中最終顯示幀的上一個關鍵幀的SEI時間戳,所述m_last_key_pts用于表示所述上一個關鍵幀的PTS,所述pts用于表示所述最終顯示幀的上一個非關鍵幀的PTS;
所述根據時間差值和所述第二視頻流的第一個幀的PTS確定所述第二視頻流中第一個非重復視頻幀的PTS包括:
根據以下公式計算所述時間差值:
repeate_time=m_last_player_decode_sei-first_keyframe_sei;
其中,所述repeate_time用于表示所述時間差值,所述m_last_player_decode_sei用于表示所述第一視頻流的最終顯示幀的第一SEI時間戳,所述first_keyframe_sei用于表示所述第二視頻流的第一個關鍵幀的第二SEI時間戳;
當所述repeate_time大于0時,根據以下公式計算所述第二視頻流中第一個非重復視頻幀的PTS:
m_dst_video_pts=first_keyframe_pts+repeate_time;
其中,所述m_dst_video_pts用于表示所述第二視頻流中第一個非重復視頻幀的PTS,所述first_keyframe_pts用于表示所述第二視頻流的第一個關鍵幀的PTS。
2.根據權利要求1所述的方法,其特征在于,所述將所述第一視頻流中各關鍵幀的SEI時間戳、所述各關鍵幀的PTS和各非關鍵幀的PTS轉換為相同的時間基準time_base包括:
通過調用接口av_rescale_q(a,b,c)將所述第一視頻流中各關鍵幀的SEI時間戳、所述各關鍵幀的PTS和各非關鍵幀的PTS轉換為相同的time_base,其中所述接口av_rescale_q(a,b,c)用于將時間基準c表示的數值a轉換成以時間基準b來表示的數值。
3.根據權利要求1所述的方法,其特征在于,所述顯示所述第一個非重復視頻幀之前,所述方法還包括:
將當前解碼完的重復視頻幀的時長和當前解碼完的音頻的時長轉換為相同的時間基準,所述重復視頻幀為所述第一視頻流和所述第二視頻流都包括的視頻幀;
判斷所述重復視頻幀的時長與所述當前解碼完的音頻的時長的差值是否大于0;
若所述差值大于0,通過調用函數av_usleep()設置暫停解碼所述音頻,且暫停的時長值為所述差值。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于武漢甌越網視有限公司,未經武漢甌越網視有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910431254.1/1.html,轉載請聲明來源鉆瓜專利網。





