[发明专利]一种视频切换清晰度的方法及相关装置有效
申请号: | 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.vipzhuanli.com/pat/books/201910431254.1/1.html,转载请声明来源钻瓜专利网。