CN100464586C - 基于ip机顶盒的mpeg1文件实时播放的方法 - Google Patents
基于ip机顶盒的mpeg1文件实时播放的方法 Download PDFInfo
- Publication number
- CN100464586C CN100464586C CNB200510045440XA CN200510045440A CN100464586C CN 100464586 C CN100464586 C CN 100464586C CN B200510045440X A CNB200510045440X A CN B200510045440XA CN 200510045440 A CN200510045440 A CN 200510045440A CN 100464586 C CN100464586 C CN 100464586C
- Authority
- CN
- China
- Prior art keywords
- data
- mpeg1
- file
- packet
- header
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 35
- 101000969688 Homo sapiens Macrophage-expressed gene 1 protein Proteins 0.000 title claims description 43
- 102100021285 Macrophage-expressed gene 1 protein Human genes 0.000 title claims description 43
- 230000005540 biological transmission Effects 0.000 claims abstract description 11
- 230000003993 interaction Effects 0.000 claims description 4
- 238000007789 sealing Methods 0.000 abstract 1
- 230000000007 visual effect Effects 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 4
- 238000005070 sampling Methods 0.000 description 4
- 230000003139 buffering effect Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 238000012858 packaging process Methods 0.000 description 1
- 230000006798 recombination Effects 0.000 description 1
- 238000005215 recombination Methods 0.000 description 1
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明所述基于IP机顶盒的MPEG1文件实时播放的方法,针对现有单输入接口解码芯片将经过RTSP,RTP/RTCP传输协议分离的音、视频数据,合成类似MPEG1系统格式的数据流文件,从而实现在单输入接口IP机顶盒中进行MPEG1流媒体文件的下载和实时播放。所述基于IP机顶盒的MPEG1文件实时播放的方法,是针对RTP数据文件的封装过程而采取一种与之相反的过程,即在解码器上实现由RTP包还原成MPEG流。
Description
技术领域
本发明是一种实现单输入接口IP机顶盒中的MPEG1流媒体文件进行下载并实时播放的方法。
背景技术
目前由于网络带宽、硬件本身处理能力和协议规范等方面的限制,从网络媒体下载大量的音、视频多媒体数据,对下载时间和存储空间都有很高的要求。对于存储空间比较小,对实时性要求比较高的单输入接口IP机顶盒来说,这一矛盾就显得尤为突出。
现有采用的流媒体技术很好地解决了这一难题。流是近年在网络上出现的新概念,主要是指通过网络传输多媒体数据的技术总称。
流媒体则包含广义和狭义两种内涵:广义上的流媒体,指的是使音频和视频形成稳定和连续的传输流和回放流的一系列技术、方法和协议的总称,即流媒体技术;狭义上的流媒体,是相对于传统的下载-回放方式而言的,指的是一种从网络上获取音频和视频等多媒体数据的新方法,其能够支持多媒体数据流的实时传输和实时播放。通过流媒体技术,服务器能够向客户端发送稳定和连续的多媒体数据流,客户端在接收数据的同时以一个稳定的速率回放,而不用等数据全部下载完之后再进行回放,即实现一种实时播放的模式。
目前流媒体传输主要采用的是RTSP,RTP/RTCP协议。RTP协议在传输时将音、视频数据进行分开传输,这样客户端接收到的数据包括独立的音、视频文件,因此一般的软件播放器采用音、视频分别接收和解码的方法,如附图3所示。而且,现有专门用于支持播放流媒体的硬件解码芯片较少,一般硬件解码芯片只支持单接口的本地文件播放,因此这类解码器是无法针对RTP协议传输数据进行解码和实时播放的。
发明内容
本发明所述基于IP机顶盒的MPEG1文件实时播放的方法,其目的在于解决上述问题而针对现有单输入接口解码芯片,将经过RTSP,RTP/RTCP传输协议分离的音、视频数据合成类似MPEG1系统格式的数据流文件,从而实现在单输入接口IP机顶盒中进行MPEG1流媒体文件的下载和实时播放。
所述基于IP机顶盒的MPEG1文件实时播放的方法,是针对RTP数据文件的封装过程而采取一种与之相反的过程,即在解码器上实现由RTP包还原成MPEG流。
根据RFC3550和RFC2250,流媒体服务器端MPEG流封装成RTP协议包时,一个视频RTP包,是由RTP固定包头、MPEG视频特定标头(可能有扩展头)、RTP有效载荷三部分构成的。一个音频RTP包,是由RTP固定包头、MPEG音频特定标头、RTP有效载荷三部分构成的。
上述过程实际上是对MPEG-1进行系统层解析的过程,即从MPEG流中搜索一些重要的信息填充到RTP包中几个重要的数据结构中,同时根据已有的规范来完成一个RTP包的封装。
而所述基于IP机顶盒的MPEG1文件实时播放的方法,是根据RTP包中的重要数据完成解码器进行实时播放,而实现MPEG1流媒体的PACK和PACKET头部数据填充,并按RTP序列号缓存重组得到的基本数据流,形成完整的MPEG1数据格式后,送入解码器进行解码、播放。
经过RTP传输后得到的分离媒体数据与本地文件的复用数据相比,一方面缺少了原来整个MPEG1文件的头部信息;另一方面,MPEG1文件中的PACK头部信息也没有传输,只是将某些字段映射到RTP头部。
所述基于IP机顶盒的MPEG1文件实时播放的方法,根据RTSP流传输中一些控制信息获得文件解码信息,用来初始化硬件解码器;
通过RTSP协议获得文件的SDP(Session Description Protocol,即会话描述协议)并从中得到媒体的类型、编码格式和持续时间等信息参数。其中,SDP用于说明一个流媒体会话的基本属性,包括媒体类型和编码格式、所需要的传输带宽、播放的时间范围、所需Buffer信息等。
根据MPEG1标准文件格式填充每帧数据的PACK和PACKET头部,通过RTP包的包头得到编码格式和时间戳;
根据MPEG1文件标准(即ISO/IEC11172标准)填充相应的文件头信息,形成完整的文件头部格式,并按RTP序列号缓存重组得到的基本数据流,并通过缓存送到硬件解码器。
如上述内容,从硬件解码器的角度来看,重新组成的MPEG1数据与本地播放的文件格式没有本质区别,从而可由现有的解码器对经过RTP传输后得到的分离媒体数据进行下载、重组和实时播放。
所述基于IP机顶盒的MPEG1文件实时播放的方法,其实现流程是:
第一步,通过RTSP协议传输的SDP信息解析出解码器实时播放需要的文件信息参数。
从SDP信息中可以获取的信息参数包括有,文件类型,持续时间,音频,视频的编码格式,采样频率,最大速率等,上述参数用来初始化硬件解码器。
第二步,从网络服务器接收包含流媒体数据的RTP包。
针对参考信息,首先根据RTP包中的负载类型,来区分是音频还是视频数据;
然后根据RTP包中包含的序列号,从RTP包中提取媒体数据并进行重组;重组后的音频、视频数据文件是按顺序排列好的基本流,但此时仍不是完整的、具有逻辑意义的PACK文件,因此直接送给解码器是无法解码和实时播放的。
第三步,将音频、视频数据的每一帧都附加一个PACK头部。
第四步,在音频、视频数据的每一个帧前再分别增加一个PACKET头部,以表明其是音频帧、还是视频帧,并且根据SDP信息填充缓冲区字段。
根据RTP包头中的时间戳信息填充显示时间戳PTS字段,其它的PACKET头部的字段按照固定格式填入相应的位信息。
第五步,将修改后的数据缓存,通过与硬件解码器的交互送入解码器进行解码,并将带有完整的MPEG1系统文件头部格式的数据进行实时播放。
如上述方法步骤所示,在实现MPEG1流媒体数据PACK和PACKET头部填充的过程中,MPEG1流媒体数据中的PACK数据码、复用速率、系统目标解码器缓冲区数据均从SDP信息中获取得到。
MPEG1流媒体数据中的流类型和显示时间戳,直接从RTP头部映射获得。
如上述方法步骤所示,在音频或视频数据的每一帧前附加PACK头部时,复用速率由以下表达式得出:
其中,
音频速率和视频速率是由SDP信息中“a=AvgBitRate:integer”字段中得出;
PACKET长度为固定值,是由SDP信息中(a=AvgPacketSize:integer)字段中得到。
所述基于IP机顶盒的MPEG1文件实时播放的方法,其优点是:可基于现有播放本地文件的解码芯片实时播放流媒体文件,不仅降低了系统设计和硬件投入成本,而且在不增加计算量的情况下实现视频点播功能。
附图说明
图1是RTSP协议中的SDP描述;
图2是RTP头部格式示意图;
图3是现有RTP数据传输和解码流程示意图;
图4是MPEG1流媒体数据的PACK示意图;
图5是MPEG1流媒体数据的PACKET示意图;
图6是根据本发明所述方法实现MPEG1流媒体数据PACK和PACKET头部填充示意图;
图7是本发明所述解码芯片的实时播放流程图。
具体实施方式
实施例1,如附图所示,所述基于IP机顶盒的MPEG1文件实时播放的方法步骤如下:
第一步,通过RTSP协议传输的SDP信息解析出解码器实时播放需要的文件信息参数。
从SDP信息中可以获取的信息参数包括有,文件类型,持续时间,音频,视频的编码格式,采样频率,最大速率等,上述参数用来初始化硬件解码器。
如图1所示,SDP中的下列参数可以获得的播放支持信息有:
“m=(媒体名称和传输地址)”字段获得媒体类型和编码格式;
“a=*(0个或多个会话属性行)”字段的格式是a=<属性>:<值>,其中属性包括有,持续时间、采样频率、最大速率、视频的宽高,音频的通道个数等;
第二步,从网络服务器接收包含流媒体数据的RTP包。
如图2所示,在RTP包中包括有如下参考信息,
“Ver”为RTP协议版本号;
“P”用于标志该RTP包的末尾是否包含有附加信息;
“X”用于标志是否存在扩展头部;
“CC”用于标志在固定头部后存在多少个CSRC标记;
“M”是标志位;
“负载类型”标记RTP包中所携带信息的类型;
“SSRC”用于标识数据源;
“CSRC”标识贡献的数据源。
针对上述参考信息,首先根据RTP包中的负载类型,来区分是音频还是视频数据;然后根据RTP包中包含的序列号,从RTP包中提取媒体数据并进行重组;重组后的音频、视频数据文件是按顺序排列好的基本流。
第三步,将音频、视频数据的每一帧都附加一个PACK头部。
如图4所示,PACK头部的起始码设置为是000001BA;
接着填充4个固定位‘0010’;
随后的36bit是系统参考时钟,表示送入系统目标解码器的时间;除了中间穿插的标志位以外的各位均填充为0;这是因为我们采用人工送入的方式,解码的时间依赖于人工送入的时间,因此填充为0不会影响解码器正常解码;
然后是24位的复用速率,表明码流进入解码器的速率,复用速率由下述表达式推算得出:
其中,音频速率和视频速率是由SDP信息中“a=AvgBitRate:integer”,字段中得出;
PACKET长度为固定值,是由SDP信息中(a=AvgPacketSize:integer)字段中得到。
第四步,在音频、视频数据的每一个帧前再分别增加上一个PACKET头部,以表明其是音频帧、还是视频帧,并且根据SDP信息填充缓冲区字段。
根据RTP包头中的时间戳信息填充显示时间戳PTS字段,其它的PACKET头部的字段按照固定格式填入相应的位信息。
具体地,如图5所示,
PACKET头部的起始码前缀是000001;
接下来的8个bit是stream_id,表示流的类型;若为音频帧则填充为C0;若为视频帧则填充为E0;
接着16位是包的长度packet_length,通过计算包头长度加数据长度获得;
然后填充2个固定位‘01’,以表明后面跟着的是系统目标解码器缓冲区缩放因子STD_buffer_scale(1个bit)和系统目标解码器缓冲区的大小STD_buffer_size(13个bit);
对于STD_buffer_scale字段,若为音频帧,则填充为0;若为视频帧,则填充为1;对于STD_buffer_size字段,其表示解码器缓冲区的大小,填充时首先判断视频的宽(a=Width:integer)和高(a=Height:integer)的大小(由SDP中获得);
如果遵从ISO/IEC11172-2中定义的视频约束参数,则整个16位(2比特固定位‘01’+1比特STD_buffer_scale+13比特STD_buffer_size)音频填充为4020,视频填充为602E。这是因为ISO/IEC11172-1中规定对于遵从上述约束的流,使用最大缓冲区的大小为:视频流64×1024字节,音频流32×128字节,而音频缓冲区以128字节为单位,视频缓冲区以1024字节为单位,则(64)10=(2E)16,(32)10=(20)16;
音频缓冲区,最大取32×128字节;在MPEG1文件以正常速率解码的情况下,上述设置的缓冲区不会产生溢出;
接下来填充4个固定bit‘0010’,表明其后面是显示时间戳PTS;在此过程中将RTP包头中的时间戳映射成PTS,因为时间戳反映了RTP packet所携带信息包中第一个字节的采样时间。
第五步,将修改后的数据缓存,通过与硬件解码器的交互送入解码器进行解码,并将带有完整的MPEG1系统文件头部格式的数据进行实时播放。
如图6和上述方法步骤所示,在实现MPEG1流媒体数据PACK和PACKET头部填充的过程中,
MPEG1流媒体数据中的PACK数据码、复用速率、系统目标解码器缓冲区数据均从SDP信息中获取得到。
MPEG1流媒体数据中的流类型和显示时间戳,直接从RTP头部映射获得。
如图7所示,应用支持单接口、本地文件播放的解码器,如本发明所述的MPEG1文件实时播放的方法,
首先,进行硬件初始化;
然后,通过RTSP协议获取SDP信息并分析解码器需要的支持播放信息;
随后,解码器通过交互判断是否可以解码;若可以解码,则利用RTP/RTCP协议接收数据,在实现MPEG1流媒体数据PACK和PACKET头部填充后,根据标志位向解码器中交互送入音、视频数据,以进行解码和实时播放的;
上述过程直至完成全部数据被解码和播放。
Claims (4)
1.一种基于IP机顶盒的MPEG1文件实时播放的方法,其特征在于:根据RTSP流传输中一些控制信息获得文件解码信息,用来初始化硬件解码器;
第一步,通过RTSP协议获得文件的SDP并从中得到解码器实时播放需要的文件信息参数;
第二步,从网络服务器接收包含流媒体数据的RTP包;
第三步,将音频、视频数据的每一帧都附加一个PACK头部;
第四步,在音频、视频数据的每一个帧前再分别增加一个PACKET头部;并且,根据MPEG1标准文件格式填充每帧数据的PACK和PACKET头部,通过所述RTP包的包头得到编码格式和时间戳;
根据MPEG1文件标准填充相应的文件头信息,形成完整的文件头部格式,并按RTP序列号缓存重组得到的基本数据流;
第五步,将所述基本数据流通过与硬件解码器的交互送入解码器进行解码,并将带有完整的MPEG1系统文件头部格式的数据进行实时播放。
2.根据权利要求1所述的基于IP机顶盒的MPEG1文件实时播放的方法,其特征在于:
所述第二步中针对参考信息,首先根据RTP包中的负载类型,来区分是音频还是视频数据;然后根据RTP包中包含的序列号,从RTP包中提取媒体数据并进行重组;重组后的音频、视频数据文件是按顺序排列好的基本流;
所述第四步中,在音频、视频数据的每一个帧前再分别增加一个PACKET头部,以表明其是音频帧、还是视频帧,并且根据SDP信息填充缓冲区字段;根据RTP包头中的时间戳信息填充显示时间戳PTS字段,其它的PACKET头部的字段按照固定格式填入相应的位信息。
3.根据权利要求2所述的基于IP机顶盒的MPEG1文件实时播放的方法,其特征在于:在实现MPEG1流媒体数据PACK和PACKET头部填充的过程中,MPEG1流媒体数据中的PACK数据码、复用速率、系统目标解码器缓冲区数据均从SDP信息中获取得到;
MPEG1流媒体数据中的流类型和显示时间戳,直接从RTP头部映射获得。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB200510045440XA CN100464586C (zh) | 2005-11-27 | 2005-11-27 | 基于ip机顶盒的mpeg1文件实时播放的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB200510045440XA CN100464586C (zh) | 2005-11-27 | 2005-11-27 | 基于ip机顶盒的mpeg1文件实时播放的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1972443A CN1972443A (zh) | 2007-05-30 |
CN100464586C true CN100464586C (zh) | 2009-02-25 |
Family
ID=38112985
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB200510045440XA Active CN100464586C (zh) | 2005-11-27 | 2005-11-27 | 基于ip机顶盒的mpeg1文件实时播放的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100464586C (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108122558A (zh) * | 2017-12-22 | 2018-06-05 | 深圳国微技术有限公司 | 一种latm aac音频流的实时转容实现方法及装置 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101414999B (zh) * | 2007-10-19 | 2011-08-31 | 华为技术有限公司 | 会话描述协议中获取频道与媒体关系的方法、频道信息的发送方法以及相关设备 |
CN101621342B (zh) * | 2008-06-30 | 2011-05-11 | 中兴通讯股份有限公司 | 一种基于实时传输协议实现网络电视节目轮播的方法 |
CN101771869B (zh) * | 2008-12-30 | 2011-09-28 | 深圳市万兴软件有限公司 | 一种音视频编解码装置及方法 |
CN101710983B (zh) * | 2009-11-24 | 2013-06-05 | 中兴通讯股份有限公司 | 一种实时流文件播放方法及其装置 |
CN110401866B (zh) * | 2018-04-25 | 2022-05-20 | 广州虎牙信息科技有限公司 | 直播视频的显示方法、装置、终端和存储介质 |
CN114500475B (zh) * | 2021-12-31 | 2024-02-09 | 赛因芯微(北京)电子科技有限公司 | 一种基于实时传输协议的网络数据传输方法、装置及设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000064119A1 (en) * | 1999-04-20 | 2000-10-26 | Koninklijke Philips Electronics N.V. | Preprocessing method for adapting mpeg-4 data streams to the internet network |
CN1402492A (zh) * | 2002-09-29 | 2003-03-12 | 清华大学 | 基于实时传输协议和传输控制协议的流媒体传输实现方法 |
CN1468002A (zh) * | 2002-06-27 | 2004-01-14 | 上海汉唐科技有限公司 | 基于因特网的流媒体压缩、传输与存贮系统 |
JP2004328353A (ja) * | 2003-04-24 | 2004-11-18 | Fujitsu Ltd | 逆転ストリームパケットの補正方法及び装置 |
US20050177643A1 (en) * | 2004-02-05 | 2005-08-11 | Shugong Xu | System and method for transporting MPEG2TS in RTP/UDP/IP |
-
2005
- 2005-11-27 CN CNB200510045440XA patent/CN100464586C/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000064119A1 (en) * | 1999-04-20 | 2000-10-26 | Koninklijke Philips Electronics N.V. | Preprocessing method for adapting mpeg-4 data streams to the internet network |
CN1468002A (zh) * | 2002-06-27 | 2004-01-14 | 上海汉唐科技有限公司 | 基于因特网的流媒体压缩、传输与存贮系统 |
CN1402492A (zh) * | 2002-09-29 | 2003-03-12 | 清华大学 | 基于实时传输协议和传输控制协议的流媒体传输实现方法 |
JP2004328353A (ja) * | 2003-04-24 | 2004-11-18 | Fujitsu Ltd | 逆転ストリームパケットの補正方法及び装置 |
US20050177643A1 (en) * | 2004-02-05 | 2005-08-11 | Shugong Xu | System and method for transporting MPEG2TS in RTP/UDP/IP |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108122558A (zh) * | 2017-12-22 | 2018-06-05 | 深圳国微技术有限公司 | 一种latm aac音频流的实时转容实现方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN1972443A (zh) | 2007-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11706502B2 (en) | Segment types as delimiters and addressable resource identifiers | |
KR101972951B1 (ko) | 오버헤드를 최소화한 헤더를 가지는 패킷 기반의 미디어 데이터 전송 방법 | |
KR101292490B1 (ko) | Rtp 패킷에 vc―1 정보를 캡슐화하는 방법, 이를구현하기 위한 컴퓨터 판독가능 매체, rtp 데이터구조체, 액세스 유닛 데이터 구조체, 소스 모듈, 디코더모듈, 소스 모듈 및 디코더 모듈을 포함하는 시스템, 및타겟 모듈 | |
CN100464586C (zh) | 基于ip机顶盒的mpeg1文件实时播放的方法 | |
EP2270681B1 (en) | Method and apparatus for media data transmission | |
US8719309B2 (en) | Method and apparatus for media data transmission | |
CN100568966C (zh) | 一种音/视频数据的网络传输方法 | |
US20130339541A1 (en) | Multi-out media distribution system and method | |
US20230035998A1 (en) | System and method for data stream fragmentation | |
CN101621342B (zh) | 一种基于实时传输协议实现网络电视节目轮播的方法 | |
CN103947215B (zh) | 传送媒体数据的方法和设备、接收媒体数据的设备和方法 | |
TWI401918B (zh) | 傳送指示接收器緩衝架構之緩衝參數信號的通訊方法 | |
CN101505316A (zh) | 重排和复用属于互相关会话的多媒体流的包的方法和设备 | |
AU2004307804A2 (en) | Streaming from server to client | |
WO2003028293A1 (en) | Streaming of multimedia files comprising meta-data and media-data | |
JP2005176352A (ja) | 移動通信端末機の動画像ストリーミングサービスのための無線動画像ストリーミングファイル、サービス方法及びシステム | |
CN1972454A (zh) | 一种移动多媒体广播实时流的封装方法 | |
TW201813411A (zh) | 用於媒體資料串流之補充增強資訊軌跡之系統級發信 | |
CN105007465A (zh) | 基于live555框架和ffmpeg库的密文H264视频直播和点播平台 | |
CN1972453A (zh) | 一种移动多媒体广播系统的数据流封装方法 | |
US20060059245A1 (en) | Data transmission device | |
CN106303537B (zh) | 一种openh264多码流传输方法 | |
CN100473162C (zh) | 基于单输入接口的mpeg2文件实时播放的方法 | |
CN100534198C (zh) | 基于音视频信源数据的封装方法 | |
CN1960520A (zh) | 一种在移动多媒体广播中传递辅助数据的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |