一种视频间无缝切换的方法技术

技术编号:14965211 阅读:430 留言:0更新日期:2017-04-02 19:47
本发明专利技术涉及一种视频间无缝切换的方法,包括以下步骤:按照播放顺序依次读取视频文件,并解析数据,从中分离出音频流和视频流,得到编码格式信息,同时分离出各个流的数据帧,调整数据帧的时间戳,使后一个文件的数据帧的时间戳与前一个文件的数据帧的时间戳按照递增的方式连续;根据编码格式信息初始化解码器,然后进行解码,得到解码后的数据帧;对比获取到的解码后的数据帧的参数和预先设定好的参数,进行格式调整,使输出的数据格式符合预先设定好的参数要求,并根据时间戳做音视频同步,在适当的时机输出到输出设备中。本发明专利技术可以避免在不同的视频切换的时候会有黑屏、卡顿的问题。

【技术实现步骤摘要】

本专利技术涉及视频处理
,特别是涉及一种视频间无缝切换的方法
技术介绍
随着计算机多媒体技术的快速发展,家庭宽带网络、无线宽带技术、以及终端设备性能不断的发展,基于多媒体的应用越来越广泛,提升视频的播放体验是一个非常重要的指标。目前的视频应用在播放的时候,前贴片广告与正片联播、电视剧剧集联播等功能十分普及,提升广告前贴片之间、广告前贴片与正片之间、正片与正片之间的切换体验也是非常重要的指标之一。目前现有的播放器在处理这种视频间切换的时候,一般是等前一个视频播放完后,然后重新初始化播放器,继续播放下一个,这种处理方式会在视频切换的时候有黑屏的现象,音频也会卡顿,这对于播放体验有很大的影响。
技术实现思路
本专利技术所要解决的技术问题是提供一种视频间无缝切换的方法,避免在不同的视频切换的时候会有黑屏、卡顿的问题。本专利技术解决其技术问题所采用的技术方案是:提供一种视频间无缝切换的方法,包括以下步骤:(1)按照播放顺序依次读取视频文件,并解析数据,从中分离出音频流和视频流,得到编码格式信息,同时分离出各个流的数据帧,调整数据帧的时间戳,使后一个文件的数据帧的时间戳与前一个文件的数据帧的时间戳按照递增的方式连续;(2)根据编码格式信息初始化解码器,然后进行解码,得到解码后的数据帧;(3)对比获取到的解码后的数据帧的参数和预先设定好的参数,进行格式调整,使输出的数据格式符合预先设定好的参数要求,并根据时间戳做音视频同步,在适当的时机输出到输出设备中。所述步骤(1)具体包括以下步骤:(11)根据当前的播放序列号打开需要播放的媒体文件;(12)解析文件数据,解析出各个流的编码信息,存储到对应流的输出队列;(13)读取数据帧,修正数据帧的时间戳,将各个流的数据帧存储到对应流的输出队列中;(14)文件读取完,判断当前读取的是否是播放列表的最后一个文件,如果是,结束;如果不是,打开下一个文件,跳转到步骤(12)。所述步骤(13)中修正数据帧的时间戳时,如果当前打开的是第一个视频文件,则不需要对数据帧的时间戳进行修正,记录当前数据帧的时间戳信息以后,直接将数据帧放到输出队列中即可;如果当前打开的不是第一个文件,则需要对数据帧的时间戳进行修正,修正时在数据帧的时间戳上增加一个偏移量即可。所述在数据帧的时间戳上增加一个偏移量是指上一个文件最后一个数据帧修正后的时间戳为LastFilePacketTs,上一个文件的最后一个数据帧的时长为LastFilePacketDuration,当前文件的第一个数据帧的时间戳为PacketTs,则时间戳的修正值offset=LastFilePacketTs+LastFilePacketDuration–PacketTs,当前文件的数据帧修正后的时间戳为PTS=PacketTs+offset;计算出时间戳的修正值offset后,时间戳的修正值offset在读取当前文件期间一直有效,从当前文件读取到数据帧后,都要用时间戳的修正值offset进行修正。所述步骤(2)具体包括以下步骤:(21)判断获取到的数据包是数据帧还是编码信息,如果是编码信息,执行步骤(22),否则执行步骤(24);(22)判断数据包中的编码格式是否和当前打开的解码器匹配,若是不匹配,执行步骤(23),若是匹配,执行步骤(24);(23)关闭当前解码器,根据当前数据帧的编码参数初始化新的解码器;(24)解码当前数据帧;(25)读取解码后的数据帧,将解码器输出的解码后的数据帧存储到输出队列。所述步骤(3)中对于音视数据的操作具体为:根据输出参数初始化音频输出设备,读取数据帧;判断当前的音频数据帧的采样率、声道数和量化位数是否和输出参数一致,若不一致进行音频重采样;若一致,则根据数据帧的时间戳做音视频同步,在合适的时机将数据输出到输出设备。所述步骤(3)中对于视频数据的操作具体为:根据输出参数初始化视频输出设备,读取数据帧;判断当前的视频数据帧的分辨率、颜色格式是否和输出参数一致;若不一致,则对视频数据帧进行颜色空间转换;若是一致,根据数据帧的时间戳做音视频同步,在合适的时机将数据输出到输出设备。有益效果由于采用了上述的技术方案,本专利技术与现有技术相比,具有以下的优点和积极效果:本专利技术能够完全解决目前多媒体播放器在视频切换的时候会有黑屏或者卡顿的问题;利用本专利技术方法处理的话,由于在播放上一个视频的时候也能预缓冲下一个视频,并且在视频之间切换的时候只需要重置解码器,不必重置整个播放器,格式调整模块会将解码器输出的数据调整为统一的格式。利用这种方法,可以在视频之间切换的时候达到视频内镜头切换的效果,丝毫不会有黑屏,卡顿的问题。具体实施方式下面结合具体实施例,进一步阐述本专利技术。应理解,这些实施例仅用于说明本专利技术而不用于限制本专利技术的范围。此外应理解,在阅读了本专利技术讲授的内容之后,本领域技术人员可以对本专利技术作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定的范围。本实施例方法主要描述无缝切换的方法,不对具体的文件格式解析和音视频流解码进行描述,具体的文件格式解析和解码可以参考各个格式的文档和现有的播放器SDK,本方法也适用于市面上现有的播放器SDK。本实施例方法中涉及到MP4、TS、MKV三种格式,实际使用中不仅仅局限于这三种文件格式,涉及到的视频编码格式有H.264、H.265,涉及到的音频编码格式有AAC,实际使用中不仅仅局限于这几种编码格式。本实施例方法按照三个模块进行描述,即文件解析模块,解码模块,格式转换和同步输出模块,其中解码模块分为视频解码和音频解码两个部分,两个部分针对的格式不一样,但是流程一样。以下对本方法的具体实现方式进行说明:1.首先,先说明一下视频文件的URL的表述方式:本方法中涉及到的视频文件的URL是指需要顺序播放的所有的视频文件的URL。其他程序在调用播放器播放文件的时候,需要在开始播放之前就要将所有的需要播放的URL设置给播放器,本专利技术中假设需要连续播放三个文件:1.ts、2.mp4、3.mkv。在这三个文件中,1.ts文件的音频编码格式AAC,视频编码格式为H.264。2.mp4的音频编码格式为AAC,视频编码格式为H.264。3.mkv的音频编码格式为AAC,视频编码格式为H.265。其中1.ts和2.mp4的文件格式不一样,但是音视频编码参数都是一样的,3.mkv的视频编码格式和1.ts、2.mp4不一样本文档来自技高网...

【技术保护点】
一种视频间无缝切换的方法,其特征在于,包括以下步骤:(1)按照播放顺序依次读取视频文件,并解析数据,从中分离出音频流和视频流,得到编码格式信息,同时分离出各个流的数据帧,调整数据帧的时间戳,使后一个文件的数据帧的时间戳与前一个文件的数据帧的时间戳按照递增的方式连续;(2)根据编码格式信息初始化解码器,然后进行解码,得到解码后的数据帧;(3)对比获取到的解码后的数据帧的参数和预先设定好的参数,进行格式调整,使输出的数据格式符合预先设定好的参数要求,并根据时间戳做音视频同步,在适当的时机输出到输出设备中。

【技术特征摘要】
1.一种视频间无缝切换的方法,其特征在于,包括以下步骤:
(1)按照播放顺序依次读取视频文件,并解析数据,从中分离出音频流和视频流,得
到编码格式信息,同时分离出各个流的数据帧,调整数据帧的时间戳,使后一个文件
的数据帧的时间戳与前一个文件的数据帧的时间戳按照递增的方式连续;
(2)根据编码格式信息初始化解码器,然后进行解码,得到解码后的数据帧;
(3)对比获取到的解码后的数据帧的参数和预先设定好的参数,进行格式调整,使输
出的数据格式符合预先设定好的参数要求,并根据时间戳做音视频同步,在适当的时
机输出到输出设备中。
2.根据权利要求1所述的视频间无缝切换的方法,其特征在于,所述步骤(1)具体包括
以下步骤:
(11)根据当前的播放序列号打开需要播放的媒体文件;
(12)解析文件数据,解析出各个流的编码信息,存储到对应流的输出队列;
(13)读取数据帧,修正数据帧的时间戳,将各个流的数据帧存储到对应流的输出队
列中;
(14)文件读取完,判断当前读取的是否是播放列表的最后一个文件,如果是,结束;
如果不是,打开下一个文件,跳转到步骤(12)。
3.根据权利要求2所述的视频间无缝切换的方法,其特征在于,所述步骤(13)中修正
数据帧的时间戳时,如果当前打开的是第一个视频文件,则不需要对数据帧的时间戳
进行修正,记录当前数据帧的时间戳信息以后,直接将数据帧放到输出队列中即可;
如果当前打开的不是第一个文件,则需要对数据帧的时间戳进行修正,修正时在数据
帧的时间戳上增加一个偏移量即可。
4.根据权利要求3所述的视频间无缝切换的方法,其特征在于,所述在数据帧的时间戳
上增加一个偏移量是指上一个文件最后一个数据帧修正后的时间戳为
LastFilePacketTs,上一个文件的最后一个数据帧的时长为LastFilePacketDuration,当前
...

【专利技术属性】
技术研发人员:魏洪昌
申请(专利权)人:上海视云网络科技有限公司
类型:发明
国别省市:上海;31

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

1