专利名称:一种改变流媒体文件播放速度的方法
技术领域:
本发明属于计算机网络电子通讯技术领域,特别涉及一种实现流媒体文件的加快或放慢播放的方法。
背景技术:
流媒体技术是近年来兴起的一种在线播放技术。在线播放,顾名思义就是边下载边播放,播放器并不用等到多媒体文件全部下载到本地硬盘以后再播放,而是在下载的同时进行播放。播放器在客户端的内存中开辟出一个缓冲区,通常是几兆字节的空间,播放器等到缓冲区中有足够的数据后开始解码播放,这个过程通常需要几秒钟的时间,同下载完后再播放相比大大节省了等待时间,而且由于没有下载到硬盘上,而是直接存储到内存中,播放完后即被播放器删除,因此对数字版权起到保护作用。在技术上在线播放器要比下载播放的播放器更复杂,它必须支持网络播放功能。
从网络上获取多媒体信息主要有两种方式下载播放和在线播放。下载播放就是将多媒体文件通过HTTP协议或FTP协议下载到本地硬盘,然后启动多媒体播放器播放。由于多媒体文件通常都很大,从几兆到几十兆甚至几百兆字节大小,要完全下载完需要几分钟、几十分钟、到几个小时不等,往往会使客户等的不耐烦。而且通过这种方式无法观看现场直播、远程教育等实时性较强的节目。下载播放的最大的缺点是无法提供数字版权的保护,用户将多媒体文件下载以后,就可以在网上随意发布,因此不适合商业应用。
“流媒体”不同于传统的多媒体,它是一种结构化的网络媒体流,它的主要特点就是以“视音频流”(Video-Audio Stream)的形式在网络上传送,播放器可以象播放本地文件一样播放网络流媒体,从而实现暂停、恢复、快进、快退等功能,也为慢速、快速播放提供了可能。
人们在低带宽到高带宽环境下都可以在线欣赏到连续不断的较高品质的音频和视频节目。流媒体技术广泛应用在互联网多媒体新闻发布、在线直播、网络广告、网络视频广告、电子商务、视频点播、远程教育、网络电台、实时视频会议等互联网的信息服务领域。现在的主流播放器有微软公司的Media Player,Real公司的Real Player和苹果公司的Quick Time都支持该网络播放功能。
流媒体播放器对收到的视频帧的显示顺序及时间是根据视频帧内的时间戳来确定的,时间戳是视频节目采集制作时存储到视频帧内的一种时间值,流媒体播放器利用它来决定某一视频帧在什么时间播放。视频帧的时间戳就反映了视频帧的显示顺序以及显示时间间隔,由此可以决定节目的显示速率。流媒体播放器按照收到的视频帧时间戳的大小和顺序进行播放,就实现了正常播放。
现有技术的一种方法如图1所示,包括以下步骤步骤101,音视频文件在进行网络传输前,首先对每一视频帧的时间戳进行变换,然后将变换后的视频帧通过网络传送出去。
步骤102,客户端的流媒体播放器收到视频帧后对它的时间戳进行反变换。
步骤103,播放器将转换后的视频帧送到解码单元进行解码。
步骤104,播放器将解码后的视频帧送到显示单元,显示单元根据视频帧内的时间戳显示该视频帧,播放器按照正常帧速率播放视频。
采用上述方法的用户在通过网络欣赏音视频节目的时候只能以正常播放速率的视频速度进行播放,不能根据的意愿选择不同于正常播放速率的视频速度进行播放,使用户的需求受到限制。
现有技术的一种变速播放是通过客户端实现的,客户端收到数据包后,通过对时戳的特殊处理,实现变速功能。这种方法的缺点是客户端实现慢速播放,需要修改终端;服务器不能保证客户端缓存区不溢出,如果服务器按照正常速度发送码流,会让客户端无法实现相关功能;快速播放时,服务器对码流控制的方法不完善。
发明内容
本发明的目的是为克服已有技术的不足之处,提出了一种改变流媒体文件播放速度的方法,采用本发明方法,用户在通过网络欣赏音视频节目的时候可以选择不同于正常播放速率的视频速度进行播放,可以选择低于正常帧速率的速度播放,也可以选择高于正常帧速率的速度播放,便于用户更好地按自己的意愿欣赏节目,从而为用户提供更多、更丰富的服务。
为解决上述技术问题,本发明提出了一种改变流媒体文件播放速度的方法,在用户播放器以正常速度播放时,对其播放速度进行切换,改为快速播放或慢速播放。本发明方法包括以下步骤(1)客户端选择改变流媒体文件的播放速度,改变后的播放速度为其原播放速度的N倍或N分之一;(2)客户端通过RTSP协议将变速播放请求上报服务器;(3)服务器接收到变速播放请求后,判断变速播放请求是倍速加快播放请求还是倍速放慢播放请求;(4)服务器根据变速播放请求,对播放时间戳进行变换,并将变换后的时间戳保存在流媒体文件码流中。
所述方法可以进一步包括(5)客户端接收到流媒体文件码流后,发送到解码单元解码;(6)客户端将解码后的流媒体文件发送显示单元,显示单元根据流媒体文件视频帧内的时间戳显示该视频帧。
所述步骤1中,客户端选择改变流媒体文件的播放速度,改变后的播放速度为其原播放速度的N倍或N分之一,N可以为2、4、8、16、32或64。
所述步骤3中,服务器接收到变速播放请求后,如果变速播放请求为倍速放慢播放请求,则所述步骤4可以进一步包括,服务器根据倍速放慢播放请求,对播放时间戳依照下列公式进行变换TSn’=(TSn-TS)×C×N+Rd
上式中TSn’为变换后的时间戳;TSn为变换前的原始时间戳;TS为初始参考时间戳;C为常数;Rd为随机数或伪随机数;N为放慢倍数。
所述步骤3中,服务器接收到变速播放请求后,如果变速播放请求为倍速加快播放请求,则所述步骤4可以进一步包括,服务器根据倍速加快播放请求,对播放时间戳依照下列公式进行变换TSn’=(TSn-TS)/(C×N)+Rd上式中TSn’为变换后的时间戳;TSn为变换前的原始时间戳;TS为初始参考时间戳;C为常数;Rd为随机数或伪随机数;N为加快倍数。
所述步骤3中,服务器接收到变速播放请求后,如果变速播放请求为倍速加快播放请求,则所述步骤4可以进一步包括,服务器根据倍速加快播放请求,对播放时间戳进行变换;服务器选择关键帧传送,抛弃非关键帧。
所述步骤3中,服务器接收到变速播放请求后,如果变速播放请求为倍速加快播放请求,则所述步骤4可以进一步包括,服务器选择关键帧传送,抛弃非关键帧,当关键帧的码流超过发送带宽时,抛弃部分关键帧,保持发送带宽恒定。
本发明方法通过流媒体服务器对视频帧时间戳进行线性缩放处理,在用户播放器实现慢速播放或快速播放。由服务器修改时戳,客户端所做的改动很小。本发明方法与编解码器和网络传输协议无关,实现码流控制,可以保证播放码流不超过播放带宽,服务器与客户端相互配合,保证了客户端缓存区不会溢出。用户可以根据自己的要求进行配置,不拘泥于视频文件的原速率播放,操作简单,易于实现,特别是慢速播放非常流畅。
图1为现有技术的一种流媒体文件播放方法的示意图;图2为根据本发明实施例所述的播放方法的示意图;图3为根据本发明实施例所述的选择慢速播放的方法流程图;图4为根据本发明实施例所述的选择快速播放的方法流程图。
具体实施例方式
如图2所示,为根据本发明实施例所述的播放方法的示意图,其具体步骤为步骤201,播放器将视频帧送到显示单元,显示单元根据视频帧内的时间戳显示该视频帧,播放器按照正常帧速率播放视频;步骤202,判断用户是否请求对流媒体文件播放速度进行切换,如果用户请求放慢播放速度,则转入步骤204,否则进行下一步;步骤203,服务器根据加快播放请求,对播放时间戳进行变换,保留关键帧,并将变换后的时间戳保存在流媒体文件码流中,用户接收到流媒体文件码流后,发送到解码单元解码,并将解码后的流媒体文件发送显示单元,显示单元根据流媒体文件视频帧内的时间戳显示该视频帧。
步骤204,服务器根据放慢播放请求,对播放时间戳进行变换,并将变换后的时间戳保存在流媒体文件码流中,用户接收到流媒体文件码流后,发送到解码单元解码,并将解码后的流媒体文件发送显示单元,显示单元根据流媒体文件视频帧内的时间戳显示该视频帧。
如图3所示,为根据本发明实施例所述的选择慢速播放的方法流程图,其具体步骤为步骤301,选择慢速播放,其速率是原速率的N分之一,N一般可以是2、4、8、16、32或64;步骤302,客户端通过RTSP协议通知服务器,服务器收到慢速播放请求后,对时间戳进行如下变换TSn’=(TSn-TS)×C×N+Rd式中TSn’变换后的时间戳,用于网络传输,TSn变换前的原始时间戳,TS初始参考时间戳,C常数,Rd随机数,NN分之一倍速步骤303,播放器收到码流后,将视频帧送到解码单元进行解码;步骤304,播放器将解码后的视频帧送到显示单元;步骤305,显示单元根据视频帧内的时间戳显示该视频帧;客户端的播放速率就变成了原来的N分之一,从而实现了慢速播放。
如图4所示,为根据本发明实施例所述的选择快速播放的方法流程图,包括以下步骤步骤401,用户选择快速播放,其速率是原速率的N倍,N一般可以是2、4、8、16、32或64;步骤402,客户端通过RTSP协议通知服务器,流媒体服务器收到快速播放请求后,对时间戳进行变换,采用的公式如下TSn’=(TSn-TS)/(C×N)+RdTSn’变换后的时间戳,用于视频帧的显示控制;TSn变换前的时间戳;
TS初始参考时间戳;C常数;Rd随机数;NN倍速;步骤403,流媒体服务器选择关键帧传送,抛弃非关键帧,如果关键帧的码流超过发送带宽时,需要抛弃部分关键帧,用以保持发送带宽的恒定;步骤404,播放器收到码流后,将视频帧送到解码单元进行解码;步骤405,播放器将解码后的视频帧送到显示单元,显示单元根据视频帧内的时间戳显示该视频帧,客户端的播放速率就变成了原来的N倍,从而实现了快速播放。
权利要求
1.一种改变流媒体文件播放速度的方法,通过调节播放时间戳在客户端实现流媒体文件的倍速加快或倍速放慢播放,其特征在于,所述方法包括以下步骤(1)客户端选择改变流媒体文件的播放速度,改变后的播放速度为其原播放速度的N倍或N分之一;(2)客户端通过RTSP协议将变速播放请求上报服务器;(3)服务器接收到变速播放请求后,判断变速播放请求是倍速加快播放请求还是倍速放慢播放请求;(4)服务器根据变速播放请求,对播放时间戳进行变换,并将变换后的时间戳保存在流媒体文件码流中。
2.根据权利要求1所述方法,其特征在于,所述方法进一步包括(5)客户端接收到流媒体文件码流后,发送到解码单元解码;(6)客户端将解码后的流媒体文件发送显示单元,显示单元根据流媒体文件视频帧内的时间戳显示该视频帧。
3.根据权利要求1所述方法,其特征在于,所述步骤1中,客户端选择改变流媒体文件的播放速度,改变后的播放速度为其原播放速度的N倍或N分之一,N为2、4、8、16、32或64。
4.根据权利要求1所述方法,其特征在于所述步骤3中,服务器接收到变速播放请求后,如果变速播放请求为倍速放慢播放请求,则所述步骤4进一步包括,服务器根据倍速放慢播放请求,对播放时间戳依照下列公式进行变换TSn’=(TSn-TS)×C×N+Rd上式中TSn’为变换后的时间戳;TSn为变换前的原始时间戳;TS为初始参考时间戳;C为常数;Rd为随机数或伪随机数;N为放慢倍数。
5.根据权利要求1所述方法,其特征在于所述步骤3中,服务器接收到变速播放请求后,如果变速播放请求为倍速加快播放请求,则所述步骤4进一步包括,服务器根据倍速加快播放请求,对播放时间戳依照下列公式进行变换TSn’=(TSn-TS)/(C×N)+Rd上式中TSn’为变换后的时间戳;TSn为变换前的原始时间戳;TS为初始参考时间戳;C为常数;Rd为随机数或伪随机数;N为加快倍数。
6.根据权利要求1所述方法,其特征在于所述步骤3中,服务器接收到变速播放请求后,如果变速播放请求为倍速加快播放请求,则所述步骤4进一步包括,服务器根据倍速加快播放请求,对播放时间戳进行变换;服务器选择关键帧传送,抛弃非关键帧。
7.根据权利要求6所述方法,其特征在于所述步骤4进一步包括,服务器选择关键帧传送,抛弃非关键帧,当关键帧的码流超过发送带宽时,抛弃部分关键帧,保持发送带宽恒定。
全文摘要
本发明提供了一种改变流媒体文件播放速度的方法,通过调节播放时间戳在客户端实现流媒体文件的倍速加快或倍速放慢播放,包括以下步骤(1)客户端选择改变流媒体文件的播放速度,改变后的播放速度为其原播放速度的N倍或N分之一;(2)客户端通过RTSP协议将变速播放请求上报服务器;(3)服务器接收到变速播放请求后,判断变速播放请求是倍速加快播放请求还是倍速放慢播放请求;(4)服务器根据变速播放请求,对播放时间戳进行变换,并将变换后的时间戳保存在流媒体文件码流中。本发明方法,可以满足用户在通过网络欣赏音视频节目的时候选择不同于正常播放速率的视频速度进行播放的要求,便于为用户提供更多、更丰富的服务。
文档编号H04L29/02GK101075949SQ20061008054
公开日2007年11月21日 申请日期2006年5月15日 优先权日2006年5月15日
发明者沈灿 申请人:中兴通讯股份有限公司