




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 手机音视频流媒体开发一些有用资料(2010.03.09更新) 收藏不断更新,欢迎交流和转载。目录:1.CVideoPlayerUtility播放RTSP视频流2.关于symbian流媒体播放3.基于http的流媒体音乐播放器的开发4. Symbian解码AMR的方法5. 怎么样用C语言实现amr解码为pcm数据6. Something about AAC7. 3gp文件格式研究8. mplayer音视频同步原理9. 修改TCPMP界面10.windows mobile使用libmad解码mp3流媒体11.mp4文件格式12. MMFCOD
2、EC AAC解码器配置13. 移动wap网关的一些限制说明14. MTK平台用Socket实现HTTP请求总结1. 通过CVideoPlayerUtility的OpenUrlL()打开了3gp (证实了使用该接口可以实现RTSP流的接收,而官方文档只是介绍能播放"clip”) 相关链接:如何使用CVideoPlayerUtility来播放视频文件 OpenUrlL()播放rtsp资源时候,大致会做下面3件事情1.根据提供的文件格式,如果url没有文件格式,需要手动指明mime type;初始化plug-in codec;在MvpuoOpe
3、nComplete()回调之前完成2.通过内置的rtsp协议与服务器通信,建立连接,这部分在MvpuoPrepareComplete()之前完成 在我的例子中,模拟器和dss建立了rtsp连接,模拟器解析了sdp,这样就得到了文件信息3.发出rtsp的PLAY请求,模拟器开始接受数据,这时候可以通过MvloLoadingStarted()得到开始缓冲的信息 最重要的调用就是这个了iPlayer->OpenUrlL(aUrl, iap, KNullDesC8, KNullUid); 在开始写这行代码之前,要确定1.aUrl在realplayer上能不能打开,
4、协议是否支持,传输的方式(TCP/UDP)和端口是否支持,文件的格式是否支持2.iap是否设置正确,如果不正确不能建立连接3.在模拟器上要加上函数需要的能力,因为我打开了能力检查,没再mmp中加入能力,导致回给我KErrCouldNotConnect 试验当中aUrl等于rtsp:/3/sample_50kbit.3gp,这个文件采用MPEG4-ES + AMR编码格式 转自仙人板板BLOG2. 无论使用OpenFileL()、OpenDesL()还是OpenUrlL(),传给CVideoPlayerUtility的都只是视频剪辑,所以说
5、它支持播放剪辑式的内容。而开发人员有办法像使用CMdaAudioOutputStream那样把流式的内容连续地传给CVideoPlayerUtility播放吗?没有。所以说它不支持播放流式的内容。 from chenziteng3.基于http的流媒体音乐播放器的开发 原理是这样:从 HTTP 服务器获得 MP3 媒体信息,然后通过网络传输把 MP3 数据以数据流的形式接收到 MP3 流媒体播放器客户端,由客户端通过 libmad 解码 MP3 数据流,得到 PCM 音频数据,写入音频设备,播放音乐。
6、 考虑方案是CMdaAudioOutputStream结合Libmad(开源MP3解码库)来实现。有个开源项目S60 Internet Radio很有用,它支持多种音频格式的播放:MP3, AAC, eAAC+, MP4, M4A, WMA, 3GPP, AMR, and WAV。4. Symbian解码AMR的方法 1、直接使用CMdaAudioOutputStream类CMdaAudioOutputStream *iOutputStream;在函数MaoscOpenComplete(TInt aError)中设置解码器为AMRiOut
7、putStream->SetDataTypeL(KMMFFourCCCodeAMR)需要包含的头文件#include <mdacommonaudio.h>#include <MdaAudioOutputStream.h>需要链接的库mediaclientaudiostream.lib然后就可以直接使用iOutputStream->WriteL写入AMR码流。但这种方法无法实现流式播放,可能是因为每次调用WriteL都会重新初始化解码器,回放出来的声音有问题。2、使用CMMFCodec类解码,然后再使用CMdaAudioOutputStream类回放CMMFD
8、escriptorBuffer *iPcm16Buffer = CMMFDescriptorBuffer:NewL( OutputSize );CMMFDescriptorBuffer *iAmrBuffer = CMMFDescriptorBuffer:NewL( InputSize );CMMFCodec *iOCodec = CMMFCodec:NewL( TUid:Uid( 0x101FAF67 ) );TDesC8* ConvertAmr2PcmL( const TDesC8& aAmrData ) / amr input data iAmrB
9、uffer->Data().Copy( aAmrData ); / decode TCodecProcessResult result = iOCodec->ProcessL( *iAmrBuffer, *iPcm16Buffer ); if ( ( result.iStatus = TCodecProcessResult:EProcessComplete ) && ( result.iSrcBytesProcessed = KAmrFrameSize ) && ( result
10、.iDstBytesAdded = KPcmBufferSize ) ) / return buffer return &( iPcm16Buffer->Data() ); else return NULL;需要包含的头文件#include <mmfservermmfcodec.h>需要链接的库mmfserverbaseclasses.lib使用CMdaAudioOutputStream的时候要注意,必须等MaoscBufferCopied被调用以后才能再次调用WriteL,因为Symbian中没有缓
11、冲队列的。5. 怎么样用C语言实现amr解码为pcm数据3GPP TS 26.073 AMR speech Codec; C-source code/FTP/Specs/html-info/26073.htm3GPP TS 26.104 ANSI-C code for the floating-point Adaptive Multi-Rate (AMR) speech codec/FTP/Specs/html-info/26104.htm6. Something about AAC(转自关于AAC的基本概念都可
12、以在wikipedia和Audio Coding找到,就说几个不太好理解的问题。(部分内容来自)1。文件头AAC有多种存储的方式,分别是ADTS文件头加RAW Data Block,ADIF加RAW Data Block,LATM加RAW Data Block;或者就是将RAW Data直接存储在MP4容器格式里。ADTS (Audio Data Transport Stream) 适用于用于网络传输; ADIF (Audio Data Interchange Format) 则主要用于本地存储。ADTS文件头存在于每一个RAW Data Block前或者每隔2-
13、4个RAW Data Block前,以确保网络传输的健壮性;而ADIF文件头仅存在于文件的起始处。2.容器格式容器格式允许你将不同种类的多媒体数据流(多为视频流和音频流)合并在一个单一的文件内。多媒体容器格式,就是我们熟知的AVI(.avi), MPEG(.mpg, .mpeg), Matroska(.mkv, .mka), OGM(.ogm), Quicktime(.mov),或Realmedia(.rm, .rmvb).MP4是遵循MPEG-4(ISO 14496-14)的官方容器格式定义的广义文件扩展名。它可以流媒体化并支持众多多媒体的内容(多音轨(multiple audio)、视频流
14、(video)、字幕(subtitlestreams)、图片(pictures)、可变桢率(variable- framerates)、码率(bitrates)、采样率(samplerates)等)和高级内容(advanced content)(官方称之为“Richmedia”(超媒体)或“BIFS”(Binary Format for Scenes/二进制格式场景),类似2D和3D图形,动画、用户界面、类DVD菜单等。 3.扩展名 mp4 m4a aac-.mp4:唯一的mpeg-4官方扩展名,支持所有音频和视频以及高级内容(或它们的混合) 其他相关的扩展名:- .m4v
15、:是.mp4文件的错误扩展名,由apple提出,支持视频+音频,m4v扩展名可以安全地更名为.mp4- .m4a:是.mp4文件的错误扩展名,由apple提出,只支持音频,m4a扩展名可以安全地更名为.mp4- .m4p:随iTunes发售的DRM(Digital Rights Management/数字版权保护技术)产权保护的文件,使用Apple开发的DRM sheme- .m4e:由.sdp修改扩展名的来的文件,Envivio用其于流媒体播放。- .m4v, -.mp4v, -.cmp, -.divx, .-xvid, .264:raw的mpeg-4视频流(并非内含于mp4)。- .3gp
16、, -.3g2:手机中使用的格式,其中储存的内容同样在.mp4未被定义(H.263, AMR(Adaptive Multi Rate/自适应多码率))。-.aac:是aac音频文件的扩展名,不属于mpeg-4定义的容器格式(由MPEG-2 part7定义),一般包含ADTS或ADIF文件头 4将AAC音频文件MUX进入MP4容器格式会发生什么文件体积会减小,比特率大约降低3kbps,原因在于ATDS文件头在mux的过程中被去除了。也就是说,存储与容器格式中的aac音频本身是没有文件头的,而是依赖于mp4文件的文件头。加上第3点中对文件后缀的描述,就不难理解m4a文件为什么不能正常播放
17、了,一方面之前所使用的Deocder依赖于ADTS或者ADIF文件头,以此来获取文件信息,另一方面无法识别容器格式的文件头,自然无法正常解码了。 7. 3gp文件格式研究 (转windcao的专栏)序言06我开始做3gp文件的播放器,但是关于3gp的文档太少了也很难找,在网友luxh的帮助下,我终于有了第一份关于3gp文件格式的文档ISO/IEC 14496-12,ISO媒体文件格式.在此真心感谢luxh的贡献.当然了是英文版的,有文档就不错了.为了便于查阅和理解,我把之后陆续找到的其他几个文档也揉在了一起.从06年5月12日到现在2007-3-23,一点点的挤时间,总算
18、写完了.如有错误,敬请斧正.之所以写这篇文章目的只有一个,希望大家都能够少走弯路.有用的到的人可以随意复制,转贴.因为以后我有可能会对本文修改更新,所以请保留文中的原始链接.愿意同我一道研究的人请加msn:windcao需要看的文档/ftp/Specs/archive/26_series/3GPP TS 26.2333GPP TS 26.2433GPP TS 26.244luxh找到的一个好东西/livelink/livelink/fetch/2000/2489/Ittf_Home/PubliclyAvailableSt
19、andards.htm大家一定要仔细找找啊,宝藏!我们研究3gpp文件最重要的两个文档就是ISO/IEC 14496-12,ISO媒体文件格式和3GPP TS 26.244700ISO/IEC 14496的组成如下:(引自:(1)ISO/IEC 14496-1,系统部分,描述了组成一个场景的音频和视频成分之间的关系。(2、3)ISO/IEC 14496-2,视频部分和ISO/IEC 14496-3音频部分,分别规定自然的和合成的视频对象、音频对象的编码表示。(4)ISO/IEC 14496-4,一致性测试部分,定义了比特流和设备的一致性条件,用来测试MPEG-4的实现。(5)ISO/IEC 1
20、4496-5,参考软件,包括与MPEG-4的主要部分相对应的软件。(6)ISO/IEC 14496-6,多媒体传送整体框架DMIF,这是MPEG-4应用层与传输网络的接口,定义了通信协议,使MPEG-4系统的数据流能进入各种传输网络。还包含一个存储格式MP4,用于存储编码的场景。(7) ISO/IEC 14496-7,为MPEG-4工具优化软件,提供了对实现进行优化的例子(这里的实现指的是第五部分)。(8)ISO/IEC 14496-8,定义了在IP网络上传输MPEG-4内容的方式。(9)ISO/IEC 14496-9,为参考硬件描述,提供了用于演示怎样在硬件上实现本标准其他部分功能的硬件设计
21、方案。(10)ISO/IEC 14496-10,高级视频编码AVC,定义了一个被称为AVC的视频编解码器。(11)ISO/IEC 14496-11,场景描述和应用引擎。(12)ISO/IEC 14496-12,ISO媒体文件格式,定义了一个存储媒体内容的文件格式。(13)ISO/IEC 14496-13,知识产权管理和保护(IPMP)扩展。(14)ISO/IEC 14496-14,MP4文件格式,定义了基于第十二部分的用于存储MPEG-4内容的容器文件格式。(15)ISO/IEC 14496-15,AVC文件格式,定义了基于第十二部分的用于存储第十部分的视频内容的文件格式。(16)ISO/IE
22、C 14496-16,动画框架扩展AFX(Animation Framework eXtension)。(17)ISO/IEC 14496-17,同步文本字幕格式(尚未完成,2005年1月达成"最终委员会草案"。(18)ISO/IEC 14496-18,字体压缩和流式传输(针对公开字体格式)。(19)ISO/IEC 14496-19,综合材质流(Synthesized Texture Stream)。(20)ISO/IEC 14496-20,简单场景表示(尚未完成,2005年1月达成"最终委员会草案"。(21)ISO/IEC 14496-21,用于描绘(
23、Rendering)的MPEG-J拓展(尚未完成,2005年1月达成"委员会草案"我做的一个辅助工具:目前最新版本是0.1.2正文:首先来说3gp文件相当于一个容器,本身没有什么具体的编码解码规则。我们可以选择编码方式 - AMR narrow-band:编码简称'samr' 常用与语言片段的压缩,可以对声音片段进行最大程度的压缩,但是失真较大,如果用在音乐文件上结构常常是无法忍受的。(详情请参考:3GPP TS 26.071: "Mandatory Speech CODEC speech processing function
24、s; AMR Speech CODEC; General description".)- AMR wideband:编码简称'sawb' 相对AMR narrow-band来说压缩比降低了,品质有所提升可用来压缩音乐。(详情请参考:3GPP TS 26.171: "AMR Wideband Speech Codec; General Description".)- Extended AMR-WB codec编码简称 'sawp'(详情请参考:3GPP TS 26.290: "Extended AMR W
25、ideband codec; Transcoding functions".3GPP TS 26.304: "ANSI-C code for the Floating-point; Extended AMR Wideband codec".3GPP TS 26.273: "ANSI-C code for the Fixed-point; Extended AMR Wideband codec".- Enhanced aacPlus and MPEG-4 AAC codec编码简称 'mp4a'(详情请参考:3GPP T
26、S 26.401: "General audio codec audio processing functions; Enhanced aacPlus general audio codec; General description".3GPP TS 26.410: "General audio codec audio processing functions; Enhanced aacPlus general audio codec; Floating-point ANSI-C code".3GPP TS 26.411: "General a
27、udio codec audio processing functions; Enhanced aacPlus general audio codec; Fixed-point ANSI-C code".- MPEG-4 video codec编码简称'mp4v'(详情请参考:ISO/IEC 14496-2:2004: "Information technology Coding of audio-visual objects Part 2: Visual".)- H.263 video codec编码简称'h263
28、39;(详情请参考:ITU-T Recommendation H.263 (01/05): "Video coding for low bit rate communication".)- H.264 video codec编码简称'avc1'(详情请参考:ITU-T Recommendation H.264 (03/05): "Advanced video coding for generic audiovisual services"ISO/IEC 14496-10:2005: "Information techn
29、ology Coding of audio-visual objects Part 10: Advanced Video Coding".)- 3GPP timed text format 编码简称'tx3g'(详情请参考:3GPP TS 26.245: "Transparent end-to-end packet switched streaming service (PSS); Timed text format".)其中手机最普遍支持的格式是 amr(音频) h263(视频) 3gp文件基于mpeg4由若干个bo
30、x组成 一个3gp文件由若干个box组成常见的有:文件类型包:(FileTypeBox,简称代码'ftyp')ftyp:文件类型包相当于文件头,说明了文件所使用的协议版本,编码格式等信息+4-+4-+4-+4-+4-+|size|ftyp|mjbr|mivs|cpbr|+-+-+-+-+-+mjbr:major_brand 版本分支mivs:minor_version 版本号 cpbr:compatible_brands 兼容分支媒体数据包:(Media Data Box,简称代码'mdat')"Media Data Box
31、0;Box类型: mdat 容器: 文件 是否必须: 否 数量: 任意个. "luxhmdat box 存放了音频视频和其他的数据,一般的文件至少有2个mdatbox, 一个用于音频,一个用于视频, 通常还会有一些文本信息也放在mdatbox中,各种信息的顺序不固定。 如果只是存放音乐一个mdat就够用了。你可能会问这么多box 都叫mdat我怎么知道音频放哪里视频放哪里呢?别着急这些相关信息都放在moovbox里面影片包:(moov box:Movie Box:)是一个3gp文件中最复杂最重要的文件。看到这里你可能会问"moovbox里面的方
32、框都分别代表什么含义呀?媒体描述信息是怎么存放的?",别着急咱们来慢慢分析一下。"Movie Box Box类型: 'moov' 容器: 文件 是否必须: 是 数量: 一个,并且只能是一个. 媒体的原始数据被放置在这个box中,这个box位于文件的最高级别,一般来说这个box接近于文件的开始或者末尾,尽管这并不被要求。语法如下: a ligned(8) class MovieBox extends Box(moov) "luxhmoovbox 有两个必要的子box他们是影片头包和轨迹包影片
33、头包movie header,简称代码'mvhd' 首先剖析一下影片头包,顺便以此为例理解一下包的结构。每一个包开头的4个字节都是一个整数存放了本包的长度。接下来的4个字节是个字符串存放了本包的类型。如'moov','mvhd'。基本上包都是这模样的:+4-+4-+size-8-+|size|type|data
34、 |+-+-+-+很多box是这样的我们可以称之为全包(full box)+4-+4-+-+-+size-8-+|size|type|v|flg|data |+-+-+-+-+-+简记为+4-+4-+4-+size-8-+|size|type|vsfl|data
35、 |+-+-+-+-+其中vsfl:版本号标志+-+-+|v|flg|+-+-+v :versionflg:flages在影片头包中接下来的是版本标志等信息。MVHD 是媒体信息头,存放媒体的全局性的信息。+4-+4-+4-+4-+4-+4-+4-+76-.-+4-+|size|mvhd|vsfl|cttm|mdtm|tmsc|mxtl|reserved.
36、 |ntid|+-+-+-+-+-+-+-+-.-+-+size:box长度type:文件类型标识内容为"mvhd"vsfl:版本号标志cttm:creat time 文件创建时间mdtm:modification time 文件修改时间tmsc:timescale 时间缩放因数mxtl:maxTrackLen duration of longest track 最长播放时间reserved: 保留字段ntid-next trak id 下一个频道标识轨迹包TRAK 也是一个容器,是单个媒体流频道的信息
37、的容器,它有两个必要的子box:TKHD,MDIA。TKHD 存放本trak的信息,有两个版本v=0+4-+4-+4-+4-+4-+4-+4-+4-+|size|tkhd|vsfl|cttm|mdtm|tkid|resv|duat|+-+-+-+-+-+-+-+-+12-+2-+2-+36-.-+4-+4-+|reserved |ct|rs|reserved |twvo|thvo|+-+-+-+-.-+-+-+v=1+4-+4-+4-+8-+8-+4-+4-+8-+|size|tkhd|vsfl|cttm
38、60; |mdtm |tkid|resv|duat |+-+-+-+-+-+-+-+-+12-+2-+2-+36-.-+4-+4-+|reserved |ct|rs|reserved |twvo|thvo|+-+-+-+-.-+-+-+size:box长度type:文件类型标识内容为"tkhd"vsfl:版本号标志cttm:creat time 文件创建时间mdtm:modification time 文件修
39、改时间tkid:track-id 同一个文件中这是一个不重复的序列resv:reserved 保留字段duat:duration 总的播放时间长度reserved: 保留字段ct:codec_type audio=0x0100; video=0 编码类型,到底是音频还是视频等rs:reserved 保留字段reserved: 保留字段如果这个track 是视频编码它将有如下字段,在你解码的时候非常有用.twvo:Track width , for visual only 视频的宽度thvo:Track height, for visual only 视频的高度MDIA是存放具体的媒体信息的容器
40、。有且仅有3个子box:MDHD,HDLR,MINFMDHD媒体头,也有两个版本 v=0+4-+4-+4-+4-+4-+4-+|size|type|cttm|mdtm|tmsk|duat|+-+-+-+-+-+-+v=1+4-+4-+8-+8-+4-+8-+|size|type|cttm |mdtm |tmsk|duat |+-+-+-+-+-+-+其中size:box长度type:文件类型标识内容为"mdhd"pl:pad&languagebit(
41、1) pad = 0;unsigned int(5)3 language / ISO-639-2/T language code参见附录*-*15-*|p|language |*-*-*pd:unsigned int(16) pre_defined = 0;HDLR 句柄,描述媒体类型+4-+4-+4-+12-+size-24-+|size|pred|hdlt|reserved |name |+-+-+-+-+-+s
42、ize:box长度type:文件类型标识内容为"tkhd"pred:pre_defined = 0;hdlt:handler_type; vide Video track 视频 soun Audio track 音频 hint Hint track 注释reserved: reserved = 0;name: 名称字符串,0结尾的UTF-8串MINF 媒体信息容器(Media Information Box)这是一个普通的box容器.它的内部可能包含如下的子box:VMHD,SMHD,HMHD,NMHD,DINF,STBL.VMHD,SMHD,
43、HMHD分别对应于视频,音频,注视,NMHD我还不太清楚.它们都属于fullbox.DINF数据信息和STBL采样表,都是普通的box. VMHD还包括两个数据字段.+4-+4-+4-+4-+|gmod|opcl |+-+-+-+-+ gmod:graphicsmode 描述了本视频track 与其他视频track的混合方式.默认的值为0,也就是直接覆盖.opcl:opcolor 透明色颜色值 (red, green, blue)如果gmod不是copy的话会用到.S
44、MHD包括两个字段 +-+-+|bl|rs|+-+-+ bl:balance 是一个定点小数(精度 8.8) 前8bits是整数,后8bits是小数.如果值为0说明左右声道是相同的.全左的情况下值为-1.0 全右则为1.0.rs:reserved 保留字段.HMHD包括5个字段.如下:+-+-+4-+4-+4-+|mp|ap|mbrt|abrt|resv|+-+-+-+-+-+ mp:maxPDUsize 最大PDU长度 -pdu是啥? 知道啥是pdu的朋友请告诉我.ap:avgPDUsize 平均PDU长度 mbrt:maxbitrate 最
45、大比特率 abrt:avgbitrate 平均比特率 resv:reserved 保留字段 NMHD是个空的fullbox DINF是一个普通的box,也是一个容器,它包括url,urn,dref三个fullboxurl 内部是一个UTF-8编码的0结尾的字符串string location;url里面则是两个string name;string location;这两个都被称为DataEntryBox.dref里面是一个url或者urn的列表.首先它有一个字段unsigned int(32) entry_count;DataEntryBox的列表的个数
46、.然后就是DataEntryBox的列表STBL是一个普通的box,也是一个容器,里面包含了很多媒体采样信息.STTS是一个fullbox里面包含了采样的时间长度信息内部的数据首先是列表长度unsigned int(32) entry_count;然后就是采用时长列表.列表每一项都由两个字段组成.unsigned int(32) sample_count;采样个数unsigned int(32) sample_delta;每个采样的时间长度.在认识stsd之前我们首先要了解一个数据结构SampleEntry和它的子类AudioSampleEntry,VisualSampleEntry和Hint
47、SampleEntrySampleEntry 是一个继成box的抽象的数据结构模型.除了size,type外它包括两个字段,如下:+4-+4-+6-+-+|size|type|resved|di|+-+-+-+-+resved:reserved,保留字段di:data_reference_index,序号.从这个抽象数据结构继承下来的三个子类分别增加了几个独特的新字段.HintSampleEntry+4-+4-+6-+-+n-+|size|type|resved|di|data|+-+-+-+-+-+resved:reserved,保留字段di:data_reference_index,序号.
48、data:是一个0结尾的utf8编码的字符串.VisualSampleEntry+4-+4-+6-+-+-+-+12-+-+-+4-+4-+4-+-+32-.-+-+-+|size|type|resved|di|pd|rs|pre_defined |wd|ht|hrsl|vrsl|resv|fc|compressorname|dp|pd|+-+-+-+-+-+-+-+-+-+-+-+-+-+-.-+-+-+size:box长度type:box:类型resved:reserved,保留字段di:data_reference_index,序号.pd: pre_defined 保留字段rs: res
49、erved 保留字段pd: pre_defined 保留字段wd: width 视频的宽ht: height 视频的高hrsl: horizresolution 水平分辨率如0x00480000; / 72 dpivtsl: vertresolution 垂直分辨率如0x00480000; / 72 dpird: reserved 保留字段fc: frame_count 每个采样里面的贞数,一般是1;cmpn: compressorname 是一个数字开头的字符串.并且末尾有填料.对齐到32位. +-+n-+x-+ |n|data|xpad|
50、0; +-+-+-+n:number of data.数据的长度,x+n+1=32dp: depth 视频的色深 0x18 表示24位色pd: pre_defined 保留字段AudioSampleEntry+4-+4-+6-+-+8-+-+-+-+-+4-+|size|type|resved|di|reserved|cc|ss|pd|rs|sprt|+-+-+-+-+-+-+-+-+-+-+resved:reserved,保留字段di:data_reference_index,序号.reserved:保留字段cc: channelcount 声道数1或者2;ss: samplesi
51、ze 采样位数大小 8bit 8 ;16bit 16;pd: pre_defined 保留字段rs: reserved保留字段sprt:samplerate 采样率stsd是一个采样包(SampleEntry)的列表,一般来讲同一个列表中只有一种SampleEntry.可以通过hdlr里面的handler_type来判断属于哪种SampleEntry.内部的数据首先是列表长度,一个32位无符号整数 entry_count;然后就是采样包列表.采样包有很多具体的实现.如下:+MP4VisualSampleEntry:MP4视频采样包.+MP4AudioSampleEntry:Entry type
52、 for audio samples defined in the MP4 specification.+AMRSampleEntry:Entry type for AMR and AMR-WB speech samples defined in clause 6.5 of the present document.+AMRWPSampleEntry:Entry type for AMR and AMR-WB speech samples defined in clause 6.5 of the present document.+H263SampleEntry:Entry type for
53、H.263 visual samples defined in clause 6.6 of the present document.+AVCSampleEntry:Entry type for H.264 (AVC) visual samples defined in the AVC file format specification.+TextSampleEntry:Entry type for timed text samples defined in the timed text specificationISO/IEC 14496-17,同步文本字幕格式 歌词可以放在这个里面.+Hi
54、ntSampleEntry:Entry type for hint track samples defined in the ISO specification.附录:ISO-639-2/T language codeISO 639-2 CodeISO 639-1 CodeEnglish name of LanguageaaraaAfarabkabAbkhazianace Achineseach Acoliada Adangmeady Adyghe; Adygeiafa Afro-Asiatic (Other)afh Afrihili
55、afrafAfrikaansain AinuakaakAkanakk Akkadianalb/sqisqAlbanianale Aleutalg Algonquian languagesalt Southern AltaiamhamAmharicang English, Old (ca.450-1100)anp Angikaapa Apache languagesaraarArabicarc AramaicarganAragonesearm/hyehyArmenianarn Araucanian
56、arp Arapahoart Artificial (Other)arw ArawakasmasAssameseast Asturian; Bableath Athapascan languagesaus Australian languagesavaavAvaricaveaeAvestanawa AwadhiaymayAymaraazeazAzerbaijanibad Bandabai Bamileke languagesbakbaBashkirbal BaluchibambmBambarab
57、an Balinesebaq/euseuBasquebas Basabat Baltic (Other)bej BejabelbeBelarusianbem BembabenbnBengaliber Berber (Other)bho Bhojpuribihbhbik Bikolbin BinibisbiBislamabla Siksikabnt Bantu (Other)tib/bodboTibetanbosbsBosnianbra BrajbrebrBretonbtk Batak (Indonesia)bua Buriatbug BuginesebulbgBulgarianbur/myamyBurmesebyn Blin; Bilincad Caddocai Central American Indian (Other)car CaribcatcaCatalan; Valenciancau
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年秋新北师大版数学一年级上册教学课件 第四单元 10以内数加与减 第12课时 做个减法表
- 跨境电子商务双语教程 习题和答案Chapter 7
- 水课件模板教学课件
- 输电线路线缆接头技术方案
- 建筑工程混凝土浇筑施工方案
- 智算中心实时数据流处理与分析
- 失智老年照护上海城建职业82课件
- 糖尿病病人的健康指导社区护理学86课件
- 隧道检测与维护技术方案
- 水的篆书课件模板
- 建筑工地驻场人员管理办法及流程
- 2025年全国工会系统经审业务技能大赛知识总题库(1800题)-中部分
- 心脏骤停的急救及处理
- 红十字急救包扎技术培训课件
- 中医辨证施护课件
- 狂犬处置门诊管理制度
- T/CAQI 18-2016婴幼儿室内空气质量分级
- 纳米复合高分子膜材料企业制定与实施新质生产力项目商业计划书
- 能效管理合同协议书模板
- 禁毒社工考试试题及答案
- 2025既有办公建筑体检评价标准
评论
0/150
提交评论