
技术摘要:
本申请公开了一种流媒体管道切音轨的优化方法及显示设备,用以在显示设备中切换音轨时,通过复用原来的播放器管道,避免切管道引入的播放卡顿的问题。该方法包括:解封装模块在监听到协议解封装子模块发送的所述切音轨事件时,删除旧音轨的播放链,当协议解封装子模块 全部
背景技术:
Gstreamer是用来构建流媒体应用的开源多媒体框架。采用Gstreamer对多音轨的 流媒体片源进行播放时,通常采用多路音轨同时下载的方案,基于选择器插件对多路音频 同步处理,输出当前音轨对应的音频流媒体数据。此种方案虽然切音轨速度较快,但由于需 要下载和解析多路音频流媒体数据,会增加播放器的内存和CPU占用,且并不符合认证机构 仅下载一路音频的需求。 针对上述问题,如果采用仅下载一路音频流媒体数据的方案,当切音轨时,由于新 下载的音频流媒体数据的格式发生变化,导致Gstreamer播放器会基于新的音频流媒体数 据动态连接新的插件,进行切管道处理。 由于切管道时同时会断开当前视频已建立好的播放通路,从而会导致出现播放卡 顿问题。如果因旧管道中的数据消耗不尽而导致管道切换失败,还会造成播放卡死的问题。
技术实现要素:
有鉴于此,本申请提供一种流媒体管道切音轨的优化方法及显示设备,用以实现 切音轨时不用切管道,避免播放卡顿。 具体地,本申请是通过如下技术方案实现的: 第一方面,本申请提供一种显示设备,包括: 显示器; 网络模块,用于从服务器浏览和/或下载服务内容; 基本流输出模块,用于将从服务内容中获取的基本流数据输出至解码器; 解封装模块,包括协议解封装子模块和格式解封装子模块;其中, 协议解封装子模块,用于在检测到播放器管道的切音轨开始事件时,删除协议解 封装子模块内部的旧音轨对应的旧音频流媒体数据,向格式解封装子模块发送切音轨事 件,断开与格式解封装子模块的管道连接,下载新音轨对应的新音频流媒体数据,针对所述 新音频流媒体数据创建向所述格式解封装子模块输出的第一衬垫; 格式解封装子模块,用于针对从所述第一衬垫输出的新音频流媒体数据进行格式 解封装得到新音频基本流数据; 解封装模块,用于在监听到协议解封装子模块发送的所述切音轨事件时,删除旧 音轨的播放链,当协议解封装子模块下载所述新音频流媒体数据时,基于所述新音频流媒 体数据在所述旧音轨的播放链所在的原总分组下建立新音轨的播放链,通过复用解封装模 块中保存的输出旧音轨对应的第二衬垫将所述格式解封装子模块输出的所述新音频基本 流数据转发至基本流输出模块。 4 CN 111601158 A 说 明 书 2/12 页 第二方面,本申请提供一种流媒体管道切音轨的优化方法,所述方法包括: 协议解封装子模块在检测到播放器管道的切音轨开始事件时,删除协议解封装子 模块内部的旧音轨对应的旧音频流媒体数据,向格式解封装子模块发送切音轨事件,断开 与格式解封装子模块的管道连接,下载新音轨对应的新音频流媒体数据,针对所述新音频 流媒体数据创建向所述格式解封装子模块输出的第一衬垫; 格式解封装子模块针对从所述第一衬垫输出的新音频流媒体数据进行格式解封 装得到新音频基本流数据; 解封装模块在监听到协议解封装子模块发送的所述切音轨事件时,删除旧音轨的 播放链,当协议解封装子模块下载所述新音频流媒体数据时,基于所述新音频流媒体数据 在所述旧音轨的播放链所在的原总分组下建立新音轨的播放链,通过复用解封装模块中保 存的输出旧音轨对应的第二衬垫将所述格式解封装子模块输出的所述新音频基本流数据 转发至基本流输出模块。 在上述实施例中,显示设备可以在切换音轨时通过解封装模块删除旧音轨的播放 链,当协议解封装子模块下载所述新音频流媒体数据时,基于所述新音频流媒体数据在所 述旧音轨的播放链所在的原总分组下建立新音轨的播放链,通过复用解封装模块中保存的 输出旧音轨对应的第二衬垫将所述格式解封装子模块输出的所述新音频基本流数据转发 至基本流输出模块,因此本申请可以仅下载单个音轨,在切音轨时通过复用原来的播放器 管道,避免切管道引入的播放卡顿、卡死问题,同时缩短了切音轨的时长。 附图说明 图1A中示例性示出了显示设备200与控制100之间操作场景的示意图; 图1B中示例性示出了图1A中控制装置100的配置框图; 图1C中示例性示出了图1A中显示设备200的配置框图; 图1D中示例性示出了显示设备200存储器中操作系统的架构配置框图。 图2中示例性示出了下载多音轨的播放器管道结构示意图; 图3中示例性示出了下载一音轨的播放器管道结构示意图; 图4中示例性示出了一种流媒体管道切音轨的优化方法的处理流程图; 图5中示例性示出了本申请提供的播放器管道在切音轨时的交互示意图; 图6A中示例性示出了一种播放链的结构示意图; 图6B中示例性示出了另一种播放链的结构示意图; 图7中示例性示出了一种流媒体管道切音轨的完整处理流程图。