一种视频流无缝切换方法及装置制造方法及图纸

技术编号:20164913 阅读:42 留言:0更新日期:2019-01-19 00:18
本发明专利技术公开了一种视频流无缝切换方法及装置,属于流媒体实时处理技术领域。所述方法包括:进行旧视频流的播放时,根据新视频流的切换请求,进行相应新视频流的切换准备和打开操作,所述切换准备包括确定所述新视频流的切换条件;所述新视频流打开后,持续获取所述旧视频流和所述新视频流的播放相关数据;重置解码器,获取所述新视频流的媒体数据;在所述新视频流的相应切换时间点,进行无缝切换。本发明专利技术实现了较为流畅的无缝切换,相比传统的切码流方案,极大的提高的用户的播放体验,具有广阔的应用前景。

【技术实现步骤摘要】
一种视频流无缝切换方法及装置
本专利技术涉及流媒体实时处理
,特别涉及一种视频流无缝切换方法及装置。
技术介绍
目前主流视频app应用中,实现无缝切换大多采用双播放器来实现。即当前播放器播放原始清晰度的码流,用户点击切换后,app后台额外启动一个播放器实例来加载新清晰度的码流,播放过程中,按照切换策略(比如按帧号切换,当前时间点的关键帧切换),选择合适的切换点来进行两个播放器的拼接,以达到无缝切换的效果。在线视频点直播应用中,流媒体服务器会根据app用户的请求推送相对应规格的媒体流,比如用户请求蓝光码流,后端系统推送蓝光画质的码流给到app端,用户请求超清码流,后端系统推送超清码流给到app端。然而随着app用户自身运行环境的改变,比如用户自身网络从蜂窝移动网切换到wifi网络,app终端系统负载变化等等,用户可能在观看的过程中,随时向上或是向下切换不同清晰度的码流。在之前主流视频app处理这种场景的常用做法是,先关闭之前原始码流的播放,然后在重新启播新规格的码流。这种传统的做法存在的缺陷是,在关闭原始码流和加载新码流的过程中,不可避免的会造成播放页面短暂的黑屏,整个流程又是串行执行的,新码流的加载可能会造成卡顿,用户再次等待的概率加大,从而呈现给app用户的观感体验较差。
技术实现思路
为了解决现有技术的问题,本专利技术实施例提供了一种视频流无缝切换方法及装置,较为流畅的无缝切换,相比传统的切码流方案,极大的提高的用户的播放体验。所述技术方案如下:第一方面,提供了一种视频流无缝切换方法,所述方法包括:进行旧视频流的播放时,根据新视频流的切换请求,进行相应新视频流的切换准备和打开操作,所述切换准备包括确定所述新视频流的切换条件;所述新视频流打开后,持续获取所述旧视频流和所述新视频流的播放相关数据;重置解码器,获取所述新视频流的媒体数据;在所述新视频流的相应切换时间点,进行无缝切换。结合第一方面,在第一种可能的实现方式中,通过P2P下载方式获取新旧视频流的媒体数据;根据通过传输层传输的新视频流的切换请求;对所述新旧视频流的媒体数据进行解封装,并根据播放请求进行流化封装;对所述媒体数据进行解复用,并进行解码显示。结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述新视频流的切换准备包括确定所述新视频流的切换条件,具体包括:根据满足新视频流切换请求,计算所述新视频流的切换时间点,所述新视频流的切换时间点为所述旧视频流的媒体数据的下一关键帧;和/或,所述新视频流的打开操作,包括:根据接收的相应清晰度参数,打开所述新视频流;新视频流如果打开失败,则进行结果反馈,并继续播放旧视频流。结合第一方面的第二种可能实现方式的,在第三种可能的实现方式中,所述切换请求包括清晰度一致和/或切换传输的会话ID有效。结合第一方面及第一方面的第一至三种可能实现方式的任一种,在第四至七种可能的实现方式中,在所述新视频流的相应切换时间点,进行无缝切换,包括:设旧视频流的当前播放时间为t0,播放器缓存时间为d,通过t0+d在当前视频流搜索该时间点后的第一个关键帧得到时间t1,同时异步打开新视频流,首先初设切换时间点定为t1,并在新视频流上搜索t0+d后的第一个关键帧得到时间t2,然后包括以下两种操作路径:第一、在旧视频流读取到t1之前打开了新视频流,如果abs(t1-t2)<=1000ms,此时时间戳变化不超过1s,进行切换;如果t1<t2,修正切换时间点为t2,并在t2的时间点进行切换;如果t1>t2,如果读取的时间点小于t2,修正切换时间点为t2,并在t2的时间点进行切换;如果读取的时间点小于t2,切换时间点设置为t1,并在t1的时间点进行切换;第二、在旧视频流读取的时间点t1之后打开了新视频流,新视频流打开成功后,从t0+d后的第一个关键帧t2开始发送新视频流的播放数据,待获取到下一个关键帧时,进行切换。第二方面,提供了一种视频流无缝切换装置,包括:切换预备模块,所述切换预备模块进一步包括切换准备模块及打开操作模块,所述切换准备模块和所述打开操作模块用于根据满足新视频流的切换条件的切换请求,进行相应新视频流的切换准备和打开操作,所述切换准备包括确定所述新视频流的切换条件;获取模块,用于所述新视频流打开后,持续获取所述旧视频流和所述新视频流的播放相关数据;解码模块,用于重置解码器,获取所述新视频流的媒体数据;切换模块,用于在所述新视频流的相应切换时间点,进行无缝切换。结合第二方面,在第一种可能的实现方式中,所述装置的播放流程架构由P2P下载层、传输层、播放层以及解码显示层构成,所述P2P下载层用于通过本地下载、本地代理和/或自身服务器调用提供媒体数据来源,所述传输层用于从所述P2P下载层获取媒体数据,并对媒体数据进行解封装,然后根据播放层的数据请求进行相应流化封装,所述播放层用于获取媒体数据后进行解复用,最后通过解码显示层进行解码显示。结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述切换准备模块进一步包括计算子模块,所述计算子模块用于确定所述新视频流的切换条件,所述计算子模块具体用于:根据满足新视频流切换请求,计算所述新视频流的切换时间点,所述新视频流的切换时间点为所述旧视频流的媒体数据的下一关键帧;和/或,所述打开操作模块进一步包括新视频流打开子模块和结果反馈子模块,所述新视频流打开子模块用于:根据接收的相应清晰度参数,打开所述新视频流;所述结果反馈子模块用于:新视频流如果打开失败,则进行结果反馈,并继续播放旧视频流。结合第二方面的第二种可能实现方式,在第三种可能的实现方式中,所述切换请求包括清晰度一致和/或切换传输的会话ID有效。结合第二方面及第二方面的第一至三种可能实现方式的任一种,在第四至七种可能的实现方式中,所述切换模块用于:设旧视频流的当前播放时间为t0,播放器缓存时间为d,通过t0+d在当前视频流搜索该时间点后的第一个关键帧得到时间t1,同时异步打开新视频流,首先初设切换时间点定为t1,并在新视频流上搜索t0+d后的第一个关键帧得到时间t2,然后包括以下两种操作路径:第一、在旧视频流读取到t1之前打开了新视频流,如果abs(t1-t2)<=1000ms,此时时间戳变化不超过1s,进行切换;如果t1<t2,修正切换时间点为t2,并在t2的时间点进行切换;如果t1>t2,如果读取的时间点小于t2,修正切换时间点为t2,并在t2的时间点进行切换;如果读取的时间点小于t2,切换时间点设置为t1,并在t1的时间点进行切换;第二、在旧视频流读取的时间点t1之后打开了新视频流,新视频流打开成功后,从t0+d后的第一个关键帧t2开始发送新视频流的播放数据,待获取到下一个关键帧时,进行切换。本专利技术实施例提供的技术方案带来的有益效果是:1、通过在流媒体旧视频的播放时,同时计算获取新视频流的切换时间点,后台打开新视频流,并持续获取旧视频流和新视频流的实时播放相关数据,从而为新旧视频流的切换提前做好充分准备,最终在新视频流的相应切换时间点,进行新旧视频流的切换,由于不同清晰度片源关键帧分布不均,该方案充分考虑了切换的时效性本文档来自技高网...

【技术保护点】
1.一种视频流无缝切换方法,其特征在于,所述方法包括:进行旧视频流的播放时,根据新视频流的切换请求,进行相应新视频流的切换准备和打开操作,所述切换准备包括确定所述新视频流的切换条件;所述新视频流打开后,持续获取所述旧视频流和所述新视频流的播放相关数据;重置解码器,获取所述新视频流的媒体数据;在所述新视频流的相应切换时间点,进行无缝切换。

【技术特征摘要】
1.一种视频流无缝切换方法,其特征在于,所述方法包括:进行旧视频流的播放时,根据新视频流的切换请求,进行相应新视频流的切换准备和打开操作,所述切换准备包括确定所述新视频流的切换条件;所述新视频流打开后,持续获取所述旧视频流和所述新视频流的播放相关数据;重置解码器,获取所述新视频流的媒体数据;在所述新视频流的相应切换时间点,进行无缝切换。2.根据权利要求1所述的方法,其特征在于,通过P2P下载方式获取新旧视频流的媒体数据;根据通过传输层传输的新视频流的切换请求;对所述新旧视频流的媒体数据进行解封装,并根据播放请求进行流化封装;对所述媒体数据进行解复用,并进行解码显示。3.根据权利要求2所述的方法,其特征在于,所述新视频流的切换准备包括确定所述新视频流的切换条件,具体包括:根据满足新视频流切换请求,计算所述新视频流的切换时间点,所述新视频流的切换时间点为所述旧视频流的媒体数据的下一关键帧;和/或,所述新视频流的打开操作,包括:根据接收的相应清晰度参数,打开所述新视频流;新视频流如果打开失败,则进行结果反馈,并继续播放旧视频流。4.根据权利要求3所述的方法,其特征在于,所述切换请求包括清晰度一致和/或切换传输的会话ID有效。5.根据权利要求1至4任一项所述的方法,其特征在于,在所述新视频流的相应切换时间点,进行无缝切换,包括:设旧视频流的当前播放时间为t0,播放器缓存时间为d,通过t0+d在当前视频流搜索该时间点后的第一个关键帧得到时间t1,同时异步打开新视频流,首先初设切换时间点定为t1,并在新视频流上搜索t0+d后的第一个关键帧得到时间t2,然后包括以下两种操作路径:第一、在旧视频流读取到t1之前打开了新视频流,如果abs(t1-t2)<=1000ms,此时时间戳变化不超过1s,进行切换;如果t1<t2,修正切换时间点为t2,并在t2的时间点进行切换;如果t1>t2,如果读取的时间点小于t2,修正切换时间点为t2,并在t2的时间点进行切换;如果读取的时间点小于t2,切换时间点设置为t1,并在t1的时间点进行切换;第二、在旧视频流读取的时间点t1之后打开了新视频流,新视频流打开成功后,从t0+d后的第一个关键帧t2开始发送新视频流的播放数据,待获取到下一个关键帧时,进行切换。6.一种视频流无缝切换装置,其特征在于,包括:切换预备模块,所述切换预备模块进一步包括切换准备模块及打开操作模块,所述切换准备模块和所述打开操作模块用于根据满足新视频流的切换条件的切换请...

【专利技术属性】
技术研发人员:周小军雷云张伟方亮雷震
申请(专利权)人:苏宁易购集团股份有限公司
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1