专利名称:一种机顶盒支持flv视频播放的方法
一种机顶盒支持f I V视频播放的方法
技术领域:
本发明涉及机顶盒技术领域,具体是指一种机顶盒支持flv视频播放的方法。背景技术:
目前数字电视机顶盒特别是高清数字电视机顶盒功能越来越强大,处理器能力越来越高,同时还拥有h264,mpeg4,mpeg2等硬件解码器,而网络上拥有丰富的flv可供播放, 如何使机顶盒播放flv成为了大家的一种需求。FLV(Flash Video)流媒体格式是随着Flash MX的推出而发展而来的一种新兴的视频格式。FLV文件体积小巧,清晰的FLV视频I分钟在IMB左右,一部电影在100MB左右, 是普通视频文件体积的1/3。再加上CPU占有率低、视频质量良好等特点使其在网络上盛行。传统的机顶盒对视频点播的功能一般需要广播电视前端提供,由于目前国内标准的不统一,针对某一运营商提供的视频点播功能无法在其他地区使用,限制了机顶盒点播功能的普及。有鉴于此,本发明人针对现有技术的缺陷深入研究,并有本案产生。
发明内容本发明所要解决的技术问题在于提供一种机顶盒支持flv视频播放的方法,增加了对互联网中常用的flv视频流媒体的支持,达到在任何地方只要能够接入互联网就可实现视频点播的支持。本发明采用以下技术方案解决上述技术问题一种机顶盒支持flv视频播放的方法,包括如下步骤步骤一机顶盒集成tcp/ip协议栈,对网络数据进行请求;步骤二 对得到的flv流媒体的数据进行分析,其中视频tags的组成tag类型为0x09,tag数据大小为3个字节的视频数据大小,tag时间戳为3个字节tag数据应用的时间,tag时间戳扩展为I个字节的时间戳扩展,让时间戳变成4字节, 本字节作为时间戳的高位,streamID为3个字节的类id,总是O ;步骤三分析数据的帧类型根据3个字节的tag数据大小项读取视频的长度Ien 字节,这个在视频头部数据后读出长度为Ien字节的视频数据,视频数据的定义如下4bit 的帧类型,值为I是关键帧,数据存储的是整个画面完整的数据,提取它来生成图片;值为 2是中间帧,关键帧之间的状态,不完整的画面数据,需要依靠前面帧的数据生成;值为3是可任意使用的中间帧;步骤四把获得的帧类型,以及视频数据送入机顶盒视频解码器中,进行相应的解码工作4bit的视频编码id,值为2为Sorenson H. 263视频格式,值为3是Screen video 视频格式,值为4是0n2 VP6视频格式,值为5是0n2VP6 with alpha channel视频格式, 值为6是Screen video version 2视频格式;
3
步骤五根据上述视频类型选择机顶盒上相应的视频解码器,根据视频tag中的 tag时间戳和tag时间戳扩展,判断这个tag视频的播放长度,当把这个视频数据送入机顶盒的解码器后,接着读取下一个tag,不断的把视频数据送入视频解码器,这样得到最终需要显示的视频画面播放在电视屏幕上。进一步地,还包括在接收flv流媒体时,在内存上开辟一个视频的缓冲区,把网络上传递过来的flv流媒体数据进行缓存,当接收到足够的视频数据后,再把数据送入flv 解码模块分析,以便最终送入视频解码器播放。本发明的优点在于增加了对互联网中常用的flv视频流媒体的支持,达到在任何地方只要能够接入互联网就可实现视频点播的支持。克服传统的机顶盒对视频点播的功能一般需要广播电视前端提供,由于目前国内标准的不统一,针对某一运营商提供的视频点播功能无法在其他地区使用,限制了机顶盒点播功能的普及的问题。
下面参照附图结合实施例对本发明作进一步的描述。图I是本发明工作流程示意图。
具体实施方式如图I所示,一种机顶盒支持flv视频播放的方法,包括如下步骤机顶盒集成tcp/ip协议栈,能够对网络数据进行请求。对得到的flv流媒体的数据进行分析,其中视频tags的组成tag类型为0x09,tag数据大小为3个字节的视频数据大小,tag时间戳为3个字节tag数据应用的时间(毫秒),tag时间戳扩展为I个字节的时间戳扩展,让时间戳变成 4字节,本字节作为时间戳的高位,streamID为3个字节的类id,总是O。对flv流媒体的tags头部数据进行解析后,得到flv的tags的数据部,及视音频数据部分,由于flv流媒体中的视音频数据和swf文件中的videoframe是相似的,所以按照对swf文件的videoframe的解析来完成对flv流媒体文件的解析。首先分析数据的帧类型,其中flv流媒体的帧类型为4bit,包括了以下几种形式关键帧keyframe (视频中的关键帧,数据存储的是整个画面完整的数据,可以提取它来生成图片);中间帧interframe (关键帧之间的状态,不完整的画面数据,需要依靠前面巾贞的数据生成);可任意使用的中间巾贞disposable interframe (H. 263only)。然后分析flv流媒体的视频编码格式,视频编码格式为4bit,包括了 Sorenson H. 263 (mencoder 转换所使用的视频编码),Screen video, On2 VP6, On2 VP6 with alpha channel,Screen video version 2。本发明具体的视频判断方式可以支持swf v7版本以下(包括v7版本)生成的 flv。Flv文件由η个的tag段组成,每个tag都是由tag类型,tag长度,tag的其他部分构成。每个tag段都是紧随上一个tag段后面,读取的方法为读取flv文件中的tag,如果 tag类型为0x09的就是视频tag,这个tag前11个字节就是的视频头部数据,其定义为tag类型0x09, I个字节tag数据大小3个字节的视频数据大小tag时间戳3个字节tag数据应用的时间(毫秒)tag时间戳扩展I个字节的时间戳展,让时间戳变成4字节,本字节作为时间戳的高位streamID3个字节的类id,总是0根据3个字节的tag数据大小项读取视频的长度Ien字节,这个在视频头部数据后读出长度为Ien字节的视频数据。视频数据的定义如下首先是4bit的帧类型。值为I是关键帧keyframe (视频中的关键帧,数据存储的是整个画面完整的数据,可以提取它来生成图片),值为2是中间帧interframe (关键帧之间的状态,不完整的画面数据,需要依靠前面帧的数据生成)关键帧之间的状态,不完整的画面数据,需要依靠前面巾贞的数据生成),值为3是可任意使用的中间巾贞disposable inter frame(H. 263 only)。接着是4bit的视频编码id,值为2为Sorenson H. 263 (mencoder转换所使用的视频编码),值为3是Screen video视频格式,值为4是0n2 VP6视频格式,值为5是0n2 VP6 with alpha channel 视频格式,值为 6 是 Screen videoversion 2 视频格式。根据这个视频类型选择机顶盒上相应的视频解码器,来解码紧接着的视频数据, 长度为Ien-I字节。把帧类型,以及视频数据送入机顶盒视频解码器中,进行相应的解码工作,根据这个视频tag中的tag时间戳和tag时间戳扩展,判断这个tag视频的播放长度,当把这个视频数据送入机顶盒的解码器后,接着读取下一个tag按照本方法的分析方式不断的把视频数据送入视频解码器。这样得到最终需要显示的视频画面播放在电视屏幕上。。还包括在接收flv流媒体时,在内存上开辟一个视频的缓冲区,把网络上传递过来的flv流媒体数据进行缓存,当接收到足够的视频数据后,再把数据送入flv解码模块分析,以便最终送入视频解码器播放。本发明增加了对互联网中常用的flv视频流媒体的支持,达到在任何地方只要能够接入互联网就可实现视频点播的支持。克服传统的机顶盒对视频点播的功能一般需要广播电视前端提供,由于目前国内标准的不统一,针对某一运营商提供的视频点播功能无法在其他地区使用,限制了机顶盒点播功能的普及的问题。
权利要求
1.一种机顶盒支持flv视频播放的方法,其特征在于包括如下步骤步骤一机顶盒集成tcp/ip协议栈,对网络数据进行请求;步骤二 对得到的flv流媒体的数据进行分析,其中视频tags的组成 tag类型为0x09, tag数据大小为3个字节的视频数据大小,tag时间戳为3个字节tag 数据应用的时间,tag时间戳扩展为I个字节的时间戳扩展,让时间戳变成4字节,本字节作为时间戳的高位,streamID为3个字节的类id,总是O ;步骤三分析数据的帧类型根据3个字节的tag数据大小项读取视频的长度Ien字节,这个在视频头部数据后读出长度为Ien字节的视频数据,视频数据的定义如下4bit的帧类型,值为I是关键帧,数据存储的是整个画面完整的数据,提取它来生成图片;值为2是中间帧,关键帧之间的状态,不完整的画面数据,需要依靠前面帧的数据生成;值为3是可任意使用的中间帧;步骤四把获得的帧类型,以及视频数据送入机顶盒视频解码器中,进行相应的解码工作4bit的视频编码id,值为2为Sorenson H. 263视频格式,值为3是Screen video视频格式,值为4是0n2VP6视频格式,值为5是0n2VP6with alpha channel视频格式,值为6 是 Screen video version 2 视频格式;步骤五根据上述视频类型选择机顶盒上相应的视频解码器,根据视频tag中的tag时间戳和tag时间戳扩展,判断这个tag视频的播放长度,当把这个视频数据送入机顶盒的解码器后,接着读取下一个tag,不断的把视频数据送入视频解码器,这样得到最终需要显示的视频画面播放在电视屏幕上。
2.如权利要求I所述的一种机顶盒支持fIv视频播放的方法,其特征在于还包括在接收f Iv流媒体时,在内存上开辟一个视频的缓冲区,把网络上传递过来的f Iv流媒体数据进行缓存,当接收到足够的视频数据后,再把数据送入flv解码模块分析,以便最终送入视频解码器播放。
全文摘要
一种机顶盒支持flv视频播放的方法,包括如下步骤机顶盒集成tcp/ip协议栈,对网络数据进行请求;对得到的flv流媒体的数据进行分析;分析数据的帧类型把获得的帧类型,以及视频数据送入机顶盒视频解码器中,进行相应的解码工作;根据视频类型选择机顶盒上相应的视频解码器,当把一个视频数据送入机顶盒的解码器后,接着读取下一个tag,不断的把视频数据送入视频解码器,这样得到最终需要显示的视频画面播放在电视屏幕上。本发明增加了对互联网中常用的flv视频流媒体的支持,达到在任何地方只要能够接入互联网就可实现视频点播的支持。
文档编号H04N21/44GK102595241SQ20121001849
公开日2012年7月18日 申请日期2012年1月19日 优先权日2012年1月19日
发明者方立 申请人:福建创频数码科技有限公司