[发明专利]流媒体终端的音频视频同步的方法无效
| 申请号: | 200610147834.0 | 申请日: | 2006-12-22 |
| 公开(公告)号: | CN101207822A | 公开(公告)日: | 2008-06-25 |
| 发明(设计)人: | 向荣 | 申请(专利权)人: | 上海晨兴电子科技有限公司 |
| 主分类号: | H04N7/62 | 分类号: | H04N7/62;H04N7/60;H04N7/52 |
| 代理公司: | 上海智信专利代理有限公司 | 代理人: | 薛琦 |
| 地址: | 201700*** | 国省代码: | 上海;31 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 流媒体 终端 音频视频 同步 方法 | ||
技术领域
本发明涉及一种流媒体技术,多媒体技术,特别是涉及关于具有流媒体功能的终端进行音频视频的同步方法。
背景技术
流媒体是一种在网络上在线播放多媒体的技术。由于其边下载边播放的特性,缩短了用户初始等待的延迟,但其数据也需要采用流式传输,具有较高的实时需求。因此,比起一般的本地播放处理更为复杂。客户端是流媒体系统中一个基本的组成部分,一般是一个具有网络通信功能的播放器。音频视频数据由于是分别传输的,所以,存在不同步的可能,这样,在播放时会破坏服务质量,因此,需要在播放前取出数据时对音视频进行重同步,同步方法的好坏直接决定了播放时的流畅程度。
发明内容
本发明的目的是提供一种方法,该方法能够对利用流媒体技术从网络服务器端接收到的毫无相关的音频和视频数据进行同步。
本发明的目的是通过以下技术方案实现的:
通过RTSP/RTP协议从网络流服务器得到的媒体数据流,首先需要进行缓冲,等到有足够数据才可以开始进行播放,所以先需要有一个缓冲队列,然后对从网络端来的数据进行存储,由于节省设备内存使用的目的,本发明使用循环队列,当一帧数据解码播放完毕后,其占用的内存也就随即释放供随后到来的数据使用。
当队列中的媒体数据流超过一定的阈值后,就可以开始对数据进行解码并送到输出设备进行播放,在解码的同时继续接收网络端的流媒体数据。要实现在线直播等功能,网络流服务器需要同时传输视频流和音频流,这两者是没有相关性的,对于每一帧数据都有一个时间戳,终端就需要通过这个时间戳来进行二者的同步,所以需要两个队列,当视频和音频流都达到预先分别制定的阈值后,开始解码并播放。
对于终端用户而言,感受最直接的就是音频是否连续,由于音频对播放速率的均匀性要求更严,因此,音频的播放是根据其本身的帧率按一定的速率不断地取出数据进行播放的,对于音频和视频数据,各有一个队列的索引值,到了开始解码的时间就对音频的索引值为0的帧进行解码播放,索引值相应增加,当设备中的音频数据播放完毕立即将当前索引值的数据送到输出设备进行播放,对于视频数据,判断当前索引值对应的数据帧的时间戳是否大于当前视频数据的时间戳,来决定是否丢弃相关帧或者是否解码当前帧。
本发明的优点是:用户初始延迟短,而且播放时流畅程度高。
附图说明
图1为实施例的数据缓冲示意图。
图2为实施例的跳帧处理示意图。
图3为实施例的播放过程示意图。
具体实施方式
如图1所示,步骤1000,1000′,网络端流媒体服务器传过来的数据分为两类:音频数据和视频数据,而且这些数据带有时间戳信息,步骤1001,1001′,将这些数据放入各自的缓冲队列,为了内存的再利用,本发明中使用循环队列,当数据的存储到达队尾之后又从头开始存储。当各自队列中的数据达到各自一定的阈值即步骤1002,1002′之后就执行步骤1003开始解码,否则,继续接收网络端的数据进入队列。
接下来运行程序200,如图2所示,首先执行步骤2000,初始化音频和视频数据队列的索引值Audio_index与Video_index,这两个值分别代表当前需要解码的音频和视频数据位置,在同步的时候,以音频的播放时间为基准,步骤2001首先取出音频的第一帧数据进行播放,以后每播放完一帧音频数据就相应地做如下的同样的处理:
步骤2002,取音频的数据,将索引值Audio_index增加1,步骤2003,2004~2008并得到取出的音频数据的时间戳,将其与当前索引值为Video_index的视频数据的时间戳进行比较,并计算出当前小于音频数据时间戳的视频的帧数num,如果多于1帧,就必须进行丢帧的处理,以保证视频能够跟上音频的播放速率。在做丢帧的动作时,需要将丢弃的帧所占的队列内存释放,相应地,索引值Video_index往后移动num。如果num=1,就取出当前的视频数据帧进行解码,索引值Video_index增加1,否则如果num=0,表示当前还未到需要解码视频数据的时间,就不做任何动作。要注意的是,在将索引值Audio_index与Video_index增加的时候,当他们的值超过了预先给定的队列的长度时,需要重新置为0。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海晨兴电子科技有限公司,未经上海晨兴电子科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200610147834.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种叠合板
- 下一篇:一种氨基吡啶树脂负载钯催化剂及其应用





