一种流媒体的传输方法、视频播放装置及终端的制作方法

文档序号:7712370阅读:143来源:国知局
专利名称:一种流媒体的传输方法、视频播放装置及终端的制作方法
技术领域
本发明涉及IPTV (Interactive Personal Televison,交互式个人电视)终 端领域,尤其涉及一种在IPTV机顶盒上通过对I帧索引的搜索来进行快进 快退和定位播放等各种特技操作的流媒体的传输方法、视频播放装置及终 端。
背景技术
目前,本地时移是机顶盒的一种业务描述,在纟番放一个直播频道的同时 将此频道的多媒体流录制在机顶盒中,用户可以在时移时间范围内进行trick mode(特技模式,是快进、快退、暂停、定位播放、慢放等的统称。)操 作,在trickmode时播放的内容都是机顶盒存储介质上的内容。机顶盒在实 现本地时移(可以回放几个小时之前的节目)时,是播放本地录制好的媒体 文件。当快进快退播放时,由于带宽、机器性能和平台的限制,IPTV不能 像PVR ( Personal Video Recorder,个人视频录像机)那样播放连续的画面, 比如播放4X的6M码流,就需要24M的带宽,所以只能选择某些帧来播 放。根据编码的格式来看,用I帧来播放是唯一的选择,因为I帧不需要其 他的参考帧,可以独立解码,所以,在快进快退播放时,就只发送I帧,不 再发送B帧或P帧。以前选取I帧的策略如下倍速为2的n次方时,将跳 过n-l个I帧来发送,直到I帧数量不够时,将最后一个I帧发送出去,然 后发送RTSP (Real Time Streaming Protocol,实时流传输协议信令),结束本 地播放。由于不同厂家的编码器在实际制作片源时,会采取不同的编码 法或策 略,这就使片源中I帧的数量不是一个常量,所以即使播放长度和快进快退 的播放速度一样的两个不同片源,都可能出现快进到尾或快退到头时的播放 时间不同的情况。例如片1和片2都是正常播放速度下2分钟播完的片源,片1中的I帧有180个和片2中的I帧有200个,当以2X倍速4番^t时,就 应该在1分钟播放完毕(如果是4X,就应该在30秒播放完毕;8X就是15 秒,以此类推),现在若规定每秒钟发送的I帧个数是恒定的M,每个I帧 的发送时间很短,可以忽略不计。根据前面讲到的取I帧的方法,在2X倍 速的情况下,将用1分钟发送所有的I帧,那么在这种情况下,N=l,就是跳 过0个I帧,即连续发送I帧,这样片1和片2的播放时间将是180/M和200/M, 本应该都是60秒播放完毕的片源已经出现了不同的播放时间。尤其在高倍 速下,几秒应该播放完的片子要几十秒,这样就导致了快进快退播放的时间 不准确,给依赖这个时间的程序带来了严重影响。发明内容本发明要解决的技术问题是提供一种流媒体的传输方法、视频播放装置 及终端,以使快进快退时的播放时间与理论时间相吻合。为了解决上述技术问题,本发明提供了一种流媒体的传输方法,其中,设置流媒体在快进快退时单位时间内舉送I帧的个数,计算相邻I帧的 发送间隔时间;要快进快退时,将所述相邻I帧的发送间隔时间乘以流媒体当前的传输 倍速,计算得到要取的I帧的间隔时间;根据所述要取的I帧的间隔时间在片源中查找要播放的I帧;发送所述查找到的要播放的I帧。进一步地,上述传输方法还可具有以下特点所述根据所述要取的I帧 的间隔时间在片源中查找要播放的I帧具体实现为读取当前播放位置所在分片的第一个I帧的显示时间戳(PTS);基于所述第一个I帧的PTS和所述要取的I帧的间隔时间,计算得到各 个要取的I帧的理论播放时间;根据所述理论播放时间在所述分片中查找相匹配的I帧,将该I帧作为 要播放的I帧。进一步地,上述传输方法还可具有以下特点所述分片中与所述理论播中记录的I帧偏移量最接近且大于所述理 i仑才番》文时间的I帧。进一步地,上述传输方法还可具有以下特点所述设置流媒体在快进快 退时单位时间内发送I帧的个数具体实现为设置流媒体在快进快退时每秒 发送3个I帧。 ,进一步地,上述传输方法还可具有以下特点所述发送所述查找到的要 播放的I帧具体实现为每隔所述相邻I帧的发送间隔时间发送一个所述要 播放的I帧。本发明还提供一种视频播放装置,包括,I帧个数设置模块,用于设置流媒体在快进快退时单位时间内发送I帧 的个数;计算模块,用于根据所述I帧个数设置单元设置的单位时间内发送I帧 的个数计算相邻I帧的发送间隔时间,将所述相邻I帧的发送间隔时间乘以 流媒体当前的传输倍速得到要取的I帧的间隔时间;查找I帧模块,用于根据所述要取的I帧的间隔时间在片源中查找要播 放的I帧,并将查找到的要播放的I帧发送给发送模块;发送模块,用于发送所述查找到的要播放的I帧。进一步地,上述视频播放装置还可具有以下特点所述查找I帧模块包括读取单元,用于读取当前播放位置所在分片的第一个I帧的PTS,读取 查找单元查找到的要播放的I帧并将该I帧发送给所述发送模块;播放时间计算单元,用于基于所述第一个I帧的PTS和所述要取的I帧 的间隔时间,计算得到各个要取的I帧的理论播放时间;查找单元,用于才艮据所述理i仑寺番;改时间在所述分片中查找相匹配的I帧, 将该I帧作为要播放的I帧。进一步地,上述视频播放装置还可具有以下特点所述分片中与所述理 论播放时间相匹配的I帧是指所述分片中记录的I帧偏移量最接近且大于所 述理论播放时间的I帧。进一步地,上述视频播放装置还可具有以下特点所述I帧个数设置模 块用于将流媒体在快进快退时单位时间内发送I帧的个数设置为每秒发送3 个I帧。本发明还提供一种终端,包括上述的视频播放装置。本发明提供的一种流媒体的传输方法、视频播放装置及终端能使快进快 退时的播放时间能与理论时间相吻合,完善地实现了快进快退的功能。


图1是根据本发明实施例的视频播放装置的示意图;图2是根据本发明实施例的流媒体的传输方法的流程图。
具体实施方式
下面结合实施例对本发明的技术方案进行更详细的说明。图1是根据本发明实施例的视频播放装置的示意图,如图1所示,本实 施例的视频播放装置包括I帧个数设置模块、计算模块、查找I帧模块和发 送冲莫块,其中,I帧个数设置模块用于设置流媒体在快进快退时单位时间内发送I帧的 个数,例如,设置流媒体在快进快退时每秒发送3个I帧。计算模块用于根据单位时间内发送I帧的个数计算相邻I帧的发送间隔 时间,例如l/3秒;将所述相邻l帧的发送间隔时间乘以传输倍速得到要取 的I帧的间隔时间,例如,以4倍速传输数据,则要取的I帧的间隔时间为 1/3秒x 4。查找I帧模块用于根据要取的I帧的间隔时间在片源中查找要播放的I 帧,并将查找到的要播放的I帧发送给发送模块。查找I帧模块具体包括读取单元、理论播放时间计算单元和查找单元, 其中读取单元用于当前播放位置所在分片的第一个I帧的PTS,读取查找单7元查找到的要播放的I帧并将该I帧发送给发送模块;播放时间计算单元用 于基于所述第一个I帧的PTS和所述要取的I帧的间隔时间,计算得到各个 要取的I帧的理论播放时间;查找单元用于根据所述理论播放时间在所述分 片中查找相匹配的I帧,将该I帧作为要播放的I帧,这里分片中与所述理 论播放时间相匹配的I帧是指所述分片中记录的I帧偏移量最接近且大于所 述理论播放时间的I帧。发送模块用于发送所述要播放的I帧,具体地,每隔相邻I帧的发送间 隔时间发送一个所述要播放的I帧。本发明还提供一种终端,该终端包括上述的视频播放装置。该终端可以 是机顶盒,例如IPTV机顶盒。图2是根据本发明实施例的流々某体的传输方法的流程图,如图2所示, 本发明实施例的流媒体的传输方法,包括步骤l,设置流媒体在快进快退时单位时间内发送I帧的个数m,则可 以得到相邻I帧的发送间隔时间,为单^f立时间除以m。可以设置在快进快退时每秒钟发送3个I帧,这是个经验值,则相邻I 帧的发送间隔时间为1/3秒。如果每秒钟发送I帧的个数少于3个的话,画 面在流畅度方面表现的较差;大于3,对于效果的增益不大。当然每秒钟发 送I帧的个数M不限于3个,也可以是其它个数,可以由厂家等根据实际 情况自由i殳定。步骤2,计算要取的I帧的间隔时间。要快进快退时,要取的I帧的间隔时间为相邻I帧的发送间隔时间乘以 流媒体当前的传输倍速。例如,每秒钟发送I帧的个数为3,则相邻I帧的发送间隔时间为333 毫秒,就是i兌每333毫秒就发送一个I帧;传输倍速(speed )例如为2、 4、 8等2的n次方;要耳又的I帧的间隔时间应该是333毫秒乘以speed。比如i兌,speed是4x,8那么,在正常倍速下,要取的I帧的间隔时间就是333x4毫秒。 步骤3,查找I帧。通过步骤1和步骤2知道要找的每一个I帧的间隔时间是多少,再加上当 前播放位置所在分片的第一个I帧的PTS (presentation time stamp,显示时 间戳),就可以得到下一个要播放的I帧的PTS。可以容易地从片源的分片中 读取当前播放位置所在分片的第一个I帧的PTS。可以通过分片索引文件和I帧索引文件来查找I帧,其中分片索引文件 中包含片源有几个分片、分片的名字、分片在磁盘中的位置、每个分片对应 的I帧索引文件的名称和每个分片的显示时间范围,例如分片l是从第O 分钟到第l分钟,分片2是从第一分钟到第二分钟;I帧索引文件中记录每 个I帧的序号、偏移量、大小和PTS等。首先需要查找要播放的I帧所在的分片位置,即找I帧在某个分片的偏 移量,先大致确定I帧在哪个分片中,这个主要是通过判断I帧的PTS是否 在这个分片的显示时间范围内。然后再在这个分片对应的I帧索引文件中查找与该I帕的PTS接近的I 帧记录,由于在I帧索引文件中记录了每个I帧相对于第一个I帧的播放时 间间隔、偏移量和大小,所以只要取出第一个I帧的PTS作为基准,加上步 骤2中算出的要取的I帧的时间间隔,就可以得到下一个要取的I帧(要取 的第二个I帧)的理论播放时间,将该理论播放时间记录下来;然后在I帧 索引文件中查找相匹配的I帧。由于不可能找到完全与上述得到的理论播放 时间相对应的值的I帧,所以根据就近原则且I帧索引文件中记录的I帧的 偏移量大于这个理论播放时间来查找I帧;最后,根据找到的I帧的偏移量和大小,将I帧数据读取出来,等待发 送。当发送出去后,计算下一个I帧时,要用记录下来的上一个I帧的理论 播放时间加上步骤2中算出的要取的I帧的时间间隔,而不是之前找到的那 个I帧的实际播放时间加上步骤2中算出的要取的I帧的时间间隔。也就是 基于当前播放位置所在分片的第一个I帧的PTS和步骤2中算出的要取的I 帧的间隔时间,计算得到各个要取的I帧的理论播放时间。这样做可以减少误差的累积,因为找到的I帧的PTS并不是完全等于计算出来的理论值,当下一次找I帧时,就要用到上一个发送I帧的PTS,如果用I帧实际的PTS,那么就会产生一个误差,如此循环,这个误差就会增大。
步骤4,调整I帧发送时间发送I帧,需要说明的是找到I帧所花费的时间很短,可以忽略不计,当一个I帧发送出去后,并不能马上发送第二个,要等待一段时间,这个时间就是相邻I帧的发送间隔时间。
由于只发送I帧,所以如果不控制一下发送速度,那么就会有图像和理论时间不匹配,如果不控制发送的间隔时间,加上网络传输延时的忽略,估计在几秒内就能播放完毕,严重和理论的1分钟不符合。例如,若要在1秒钟内发送3个I帧,则相邻I帧的发送的时间间隔是1000/3 = 333ms。
本发明提供的流媒体的传输方法改进了取I帧的策略,通过计算应该发送的I帧的时间间隔来取I帧,以达到快进快退时的播放时间能与理论时间相吻合(理论时间就是要播放时间除以播放倍速),从而完美地实现了快进快退功能,尤其在高倍速下(32x以上),播放时间几乎和理论时间相差无几,较现有技术的取I帧的策略有极大的提升,无论是现场测试还是用户体验都得到了非常好的评价。本发明提供的流媒体的传输方法也可以应用到其他的流媒体传输方面,对于流媒体平台的特技显示的传输,也可借鉴此本发明提供的流媒体的传输方法来完成快进快退的码流传输。
显然,根据本发明的技术方案及其较佳实施例的描述,本领域的技术人员可以做出各种可能的等同改变或替换,而所有这些改变或替换都应属于本发明的权利要求的保护范围。
权利要求
1、一种流媒体的传输方法,其中,设置流媒体在快进快退时单位时间内发送I帧的个数,计算相邻I帧的发送间隔时间;要快进快退时,将所述相邻I帧的发送间隔时间乘以流媒体当前的传输倍速,计算得到要取的I帧的间隔时间;根据所述要取的I帧的间隔时间在片源中查找要播放的I帧;发送所述查找到的要播放的I帧。
2、 如权利要求1所述的传输方法,其特征在于所述根据所述要取的 I帧的间隔时间在片源中查找要播放的I帧具体实现为读取当前播放位置所在分片的第一个I帧的显示时间戳(PTS);基于所述第一个I帧的PTS和所述要取的I帧的间隔时间,计算得到各 个要取的I帧的理论播放时间;根据所述理论播放时间在所述分片中查找相匹配的I帧,将该I帧作为 要播放的I帧。
3、 如权利要求2所述的传输方法,其特征在于所述分片中与所述理论播放时间相匹配的I帧是指所述分片中记录的I 帧偏移量最接近且大于所述理论播放时间的I帧。
4、 如权利要求1所述的传输方法,其特征在于所述设置流媒体在快 进快退时单位时间内发送I帧的个数具体实现为设置流媒体在快进快退时每秒发送3个I帧。
5、 如权利要求1至4任一项所述的传输方法,其特征在于所述发送 所述查找到的要播放的I帧具体实现为每隔所述相邻I帧的发送间隔时间发送一个所述要播放的I帧。
6、 一种^L频播放装置,包括,I帧个数设置模块,用于设置流媒体在快进快退时单位时间内发送I帧的个数;计算模块,用于根据所述I帧个数设置单元设置的单位时间内发送I帧 的个数计算相邻I帧的发送间隔时间,将所述相邻I帧的发送间隔时间乘以流媒体当前的传输倍速得到要取的I帧的间隔时间;查找I帧模块,用于根据所述要取的I帧的间隔时间在片源中查找要播 放的I帧,并将查找到的要播放的I帧发送给发送模块;发送模块,用于发送所述查找到的要播放的I帧。
7、 如权利要求6所述的视频播放装置,其特征在于所述查找I帧模 块包括读取单元,用于读取当前播放位置所在分片的第一个I帧的PTS,读取 查找单元查找到的要播放的I帧并将该I帧发送给所述发送模块;播放时间计算单元,用于基于所述第一个I帧的PTS和所述要取的I帧 的间隔时间,计算得到各个要取的I帧的理论播放时间;查找单元,用于根据所述理论播放时间在所述分片中查找相匹配的I帧, 将该I帧作为要播放的I帧。
8、 如权利要求7所述的视频播放装置,其特征在于所述分片中与所述理论播放时间相匹配的I帧是指所述分片中记录的I 帧偏移量最接近且大于所述理论播放时间的I帧。
9、 如权利要求6至8任一项所述的视频播放装置,其特征在于所述I帧个数设置模块用于将流媒体在快进快退时单位时间内发送I帧 的个数设置为每秒发送3个I帧。
10、 一种终端,包括如权利要求6至9任一项所述的视频播放装置。
全文摘要
本发明提供一种流媒体的传输方法、视频播放装置及终端,该方法包括设置流媒体在快进快退时单位时间内发送I帧的个数,计算相邻I帧的发送间隔时间;要快进快退时,将所述相邻I帧的发送间隔时间乘以流媒体当前的传输倍速,计算得到要取的I帧的间隔时间;根据所述要取的I帧的间隔时间在片源中查找要播放的I帧;发送所述查找到的要播放的I帧。根据本发明能够使快进快退时的播放时间与理论时间相吻合。
文档编号H04N7/24GK101635847SQ20091016894
公开日2010年1月27日 申请日期2009年9月2日 优先权日2009年9月2日
发明者赵国强 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1