[转载]3GP文件格式研究
序言
06我開始做3gp文件的播放器,但是關于3gp的文檔太少了也很難找,在網友luxh的幫助下,
我終于有了第一份關于3gp文件格式的文檔《ISO/IEC 14496-12,ISO媒體文件格式》.
在此真心感謝luxh的貢獻.
當然了是英文版的,有文檔就不錯了.為了便于查閱和理解,我把之后陸續(xù)找到的其他幾個文檔也揉在了一起.
從06年5月12日到現(xiàn)在2007-3-23,一點點的擠時間,總算寫完了.如有錯誤,敬請斧正.
之所以寫這篇文章目的只有一個,希望大家都能夠少走彎路.
有用的到的人可以隨意復制,轉貼.
因為以后我有可能會對本文修改更新,所以請保留文中的原始鏈接.
愿意同我一道研究的人請加msn:windcao@hotmail.com
需要看的文檔
http://www.3gpp.org/ftp/Specs/archive/26_series/
3GPP TS 26.233
3GPP TS 26.243
3GPP TS 26.244
luxh找到的一個好東西
http://isotc.iso.org/livelink/livelink/fetch/2000/2489/Ittf_Home/PubliclyAvailableStandards.htm
大家一定要仔細找找啊,寶藏!
我們研究3gpp文件最重要的兩個文檔就是《ISO/IEC 14496-12,ISO媒體文件格式》和《3GPP TS 26.244-700》
ISO/IEC 14496的組成如下:(引自:http://www.blogcn.com/user73/lipingfu/index.html)
(1)ISO/IEC 14496-1,系統(tǒng)部分,描述了組成一個場景的音頻和視頻成分之間的關系。
(2、3)ISO/IEC 14496-2,視頻部分和ISO/IEC 14496-3音頻部分,分別規(guī)定自然的和合成的視頻對象、音頻對象的編碼表示。
(4)ISO/IEC 14496-4,一致性測試部分,定義了比特流和設備的一致性條件,用來測試MPEG-4的實現(xiàn)。
(5)ISO/IEC 14496-5,參考軟件,包括與MPEG-4的主要部分相對應的軟件。
(6)ISO/IEC 14496-6,多媒體傳送整體框架DMIF,這是MPEG-4應用層與傳輸網絡的接口,定義了通信協(xié)議,使MPEG-4系統(tǒng)的數(shù)據(jù)流能進入各種傳輸網絡。還包含一個存儲格式MP4,用于存儲編碼的場景。
(7) ISO/IEC 14496-7,為MPEG-4工具優(yōu)化軟件,提供了對實現(xiàn)進行優(yōu)化的例子(這里的實現(xiàn)指的是第五部分)。
(8)ISO/IEC 14496-8,定義了在IP網絡上傳輸MPEG-4內容的方式。
(9)ISO/IEC 14496-9,為參考硬件描述,提供了用于演示怎樣在硬件上實現(xiàn)本標準其他部分功能的硬件設計方案。
(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/IEC 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,用于描繪(Rendering)的MPEG-J拓展(尚未完成,2005年1月達成"委員會草案"
我做的一個輔助工具:http://download.csdn.net/source/162821?3gpp文件結構查看器
目前最新版本是0.1.3
這個工具的源碼:http://download.csdn.net/source/162682
正文:
首先來說3gp文件相當于一個容器,本身沒有什么具體的編碼解碼規(guī)則。
我們可以選擇編碼方式?
-?AMR narrow-band:編碼簡稱'samr' 常用與語言片段的壓縮,可以對聲音片段進行最大程度的壓縮,但是失真較大,如果用在音樂文件上結構常常是無法忍受的。
(詳情請參考:3GPP TS 26.071: "Mandatory Speech CODEC speech processing functions; 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 Wideband 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".
(詳情請參考:
3GPP TS 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 audio codec audio processing functions; Enhanced aacPlus general audio codec; Fixed-point ANSI-C code".
(詳情請參考:ISO/IEC 14496-2:2004: "Information technology – Coding of audio-visual objects – Part 2: Visual".)
-? H.263 video codec編碼簡稱'h263'(詳情請參考: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 technology – Coding of audio-visual objects – Part 10: Advanced Video Coding".)
(詳情請參考:3GPP TS 26.245: "Transparent end-to-end packet switched streaming service (PSS); Timed text format".)
其中手機最普遍支持的格式是 amr(音頻) +h263(視頻)?
?3gp文件基于mpeg4由若干個box組成
?一個3gp文件由若干個box組成常見的有:
文件類型包:(FileTypeBox,簡稱代碼'ftyp')
ftyp:文件類型包相當于文件頭,說明了文件所使用的協(xié)議版本,編碼格式等信息
+[4]-+[4]-+[4]-+[4]-+[4]-+
|size|ftyp|mjbr|mivs|cpbr|
+----+----+----+----+----+
mjbr:major_brand 版本分支
mivs:minor_version 版本號?
cpbr:compatible_brands 兼容分支
媒體數(shù)據(jù)包:(Media Data Box,簡稱代碼'mdat')
"Media Data Box?
Box類型: ‘mdat’?
容器: 文件?
是否必須: 否?
數(shù)量: 任意個. "-luxh
mdat box 存放了音頻視頻和其他的數(shù)據(jù),一般的文件至少有2個mdatbox, 一個用于音頻,一個用于視頻, 通常還會有一些文本信息也放在mdatbox中,各種信息的順序不固定。 如果只是存放音樂一個mdat就夠用了。
你可能會問這么多box 都叫mdat我怎么知道音頻放哪里視頻放哪里呢?別著急這些相關信息都放在moovbox里面
影片包:(moov box:Movie Box:)是一個3gp文件中最復雜最重要的文件。
看到這里你可能會問"moovbox里面的方框都分別代表什么含義呀?媒體描述信息是怎么存放的?",別著急咱們來慢慢分析一下。
"Movie Box?
Box類型: 'moov';?
容器: 文件?
是否必須: 是?
數(shù)量: 一個,并且只能是一個.?
媒體的原始數(shù)據(jù)被放置在這個box中,這個box位于文件的最高級別,一般來說這個box接近于文件的開始或者末尾,盡管這并不被要求。語法如下:?
a ligned(8) class MovieBox extends Box(‘moov’) {} "-luxh
moovbox 有兩個必要的子box他們是影片頭包和軌跡包
影片頭包movie header,簡稱代碼'mvhd'?
首先剖析一下影片頭包,順便以此為例理解一下包的結構。
每一個包開頭的4個字節(jié)都是一個整數(shù)存放了本包的長度。
接下來的4個字節(jié)是個字符串存放了本包的類型。如'moov','mvhd'。
基本上包都是這模樣的:
+[4]-+[4]-+[size-8]-------------------+
|size|type|data????????????? ???????? |
+----+----+---------------------------+
很多box是這樣的我們可以稱之為全包(full box)(這里有塊石頭,大家小心了,不要把全包當成普通包來讀,由于我提醒的不及時,網友陳秋松又在這里摔了一跤,抱歉)
+[4]-+[4]-+-+---+[size-8]-------------------+
|size|type|v|flg|data?????????????? ??????? |
+----+----+-+---+---------------------------+
簡記為
+[4]-+[4]-+[4]-+[size-8]-------------------+
|size|type|vsfl|data????????????? ???????? |
+----+----+----+---------------------------+
其中vsfl:版本號標志
+-+---+
|v|flg|
+-+---+
v :version
flg:flages
在影片頭包中接下來的是版本標志等信息。
MVHD 是媒體信息頭,存放媒體的全局性的信息。
+[4]-+[4]-+[4]-+[4]-+[4]-+[4]-+[4]-+[76]----...---------+[4]-+
|size|mvhd|vsfl|cttm|mdtm|tmsc|mxtl|reserved...???????? |ntid|
+----+----+----+----+----+----+----+--------...---------+----+
size:box長度
type:文件類型標識內容為"mvhd"
vsfl:版本號標志
cttm:creat time 文件創(chuàng)建時間
mdtm:modification time? 文件修改時間
tmsc:timescale 時間縮放因數(shù)
mxtl:maxTrackLen duration of longest track 最長播放時間
reserved: 保留字段
ntid-next trak id? 下一個頻道標識
軌跡包TRAK 也是一個容器,是單個媒體流頻道的信息的容器,它有兩個必要的子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??? |mdtm??? |tkid|resv|duat??? |
+----+----+----+--------+--------+----+----+--------+
+[12]--------+2-+2-+[36]----...-+[4]-+[4]-+
|reserved??? |ct|rs|reserved??? |twvo|thvo|
+------------+--+--+--------...-+----+----+
size:box長度
type:文件類型標識內容為"tkhd"
vsfl:版本號標志
cttm:creat time 文件創(chuàng)建時間
mdtm:modification time? 文件修改時間
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是存放具體的媒體信息的容器。
有且僅有3個子box:{MDHD,HDLR,MINF}
MDHD媒體頭,也有兩個版本
?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&language{bit(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?????? |
+----+----+----+------------+-----------+
size: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,HMHD分別對應于視頻,音頻,注視,NMHD我還不太清楚.它們都屬于fullbox.
DINF數(shù)據(jù)信息和STBL采樣表,都是普通的box. VMHD還包括兩個數(shù)據(jù)字段.
+[4]-+[4]-+[4]-+[4]-+
|gmod|opcl??????????|
+----+----+----+----+
?
gmod:graphicsmode 描述了本視頻track 與其他視頻track的混合方式.默認的值為0,也就是直接覆蓋.
opcl:opcolor 透明色顏色值 (red, green, blue)如果gmod不是copy的話會用到.
SMHD包括兩個字段?
+--+--+
|bl|rs|
+--+--+
?
bl:balance 是一個定點小數(shù)(精度 8.8) 前8bits是整數(shù),后8bits是小數(shù).如果值為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 最大比特率?
abrt:avgbitrate 平均比特率?
resv:reserved 保留字段?
NMHD是個空的fullbox?
DINF是一個普通的box,也是一個容器,它包括url,urn,dref三個fullbox
url 內部是一個UTF-8編碼的0結尾的字符串
string location;
url里面則是兩個
string name;
string location;
這兩個都被稱為DataEntryBox.
dref里面是一個url或者urn的列表.首先它有一個字段
unsigned int(32) entry_count;DataEntryBox的列表的個數(shù).
然后就是DataEntryBox的列表
STBL是一個普通的box,也是一個容器,里面包含了很多媒體采樣信息.
STTS是一個fullbox里面包含了采樣的時間長度信息
內部的數(shù)據(jù)首先是列表長度
unsigned int(32) entry_count;
然后就是采用時長列表.
列表每一項都由兩個字段組成.
unsigned int(32) sample_count;采樣個數(shù)
unsigned int(32) sample_delta;每個采樣的時間長度.
在認識stsd之前我們首先要了解一個數(shù)據(jù)結構SampleEntry和它的子類AudioSampleEntry,VisualSampleEntry和HintSampleEntry
除了size,type外它包括兩個字段,如下:
+[4]-+[4]-+[6]---+--+
|size|type|resved|di|
+----+----+------+--+
resved:reserved,保留字段
di:data_reference_index,序號.
從這個抽象數(shù)據(jù)結構繼承下來的三個子類分別增加了幾個獨特的新字段.
HintSampleEntry
+[4]-+[4]-+[6]---+--+[n]-+
|size|type|resved|di|data|
+----+----+------+--+----+
resved:reserved,保留字段
di:data_reference_index,序號.
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: reserved 保留字段
pd: pre_defined 保留字段
wd: width 視頻的寬
ht: height 視頻的高
hrsl: horizresolution 水平分辨率如0x00480000; // 72 dpi
vtsl: vertresolution 垂直分辨率如0x00480000; // 72 dpi
rd: reserved 保留字段
fc: frame_count 每個采樣里面的貞數(shù),一般是1;
cmpn: compressorname 是一個數(shù)字開頭的字符串.并且末尾有填料.對齊到32位.
??+-+[n]-+[x]-+
??|n|data|xpad|
??+-+----+----+
n:number of data.數(shù)據(jù)的長度,x+n+1=32
dp: 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 聲道數(shù)1或者2;
ss: samplesize 采樣位數(shù)大小 8bit 8 ;16bit 16;
pd: pre_defined 保留字段
rs: reserved保留字段
sprt:samplerate 采樣率
stsd是一個采樣包(SampleEntry)的列表,一般來講同一個列表中只有一種SampleEntry.
可以通過hdlr里面的handler_type來判斷屬于哪種SampleEntry.
內部的數(shù)據(jù)首先是列表長度,一個32位無符號整數(shù) entry_count;
然后就是采樣包列表.
采樣包有很多具體的實現(xiàn).如下: +MP4VisualSampleEntry:MP4視頻采樣包. +MP4AudioSampleEntry:Entry type 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 H.263 visual samples defined in clause 6.6 of the present document. +BitrateBox:比特率信息包(可選的) +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 specification +HintSampleEntry:Entry type for hint track samples defined in the ISO specification.
本文章最初發(fā)表于csdn:http://blog.csdn.net/windcao/archive/2006/05/12/725722.aspx
最后更新日期2007-3-23 11:13
附錄:
ISO-639-2/T language code
| aar | aa | Afar |
| abk | ab | Abkhazian |
| ace | ? | Achinese |
| ach | ? | Acoli |
| ada | ? | Adangme |
| ady | ? | Adyghe; Adygei |
| afa | ? | Afro-Asiatic (Other) |
| afh | ? | Afrihili |
| afr | af | Afrikaans |
| ain | ? | Ainu |
| aka | ak | Akan |
| akk | ? | Akkadian |
| alb/sqi | sq | Albanian |
| ale | ? | Aleut |
| alg | ? | Algonquian languages |
| alt | ? | Southern Altai |
| amh | am | Amharic |
| ang | ? | English, Old (ca.450-1100) |
| anp | ? | Angika |
| apa | ? | Apache languages |
| ara | ar | Arabic |
| arc | ? | Aramaic |
| arg | an | Aragonese |
| arm/hye | hy | Armenian |
| arn | ? | Araucanian |
| arp | ? | Arapaho |
| art | ? | Artificial (Other) |
| arw | ? | Arawak |
| asm | as | Assamese |
| ast | ? | Asturian; Bable |
| ath | ? | Athapascan languages |
| aus | ? | Australian languages |
| ava | av | Avaric |
| ave | ae | Avestan |
| awa | ? | Awadhi |
| aym | ay | Aymara |
| aze | az | Azerbaijani |
| bad | ? | Banda |
| bai | ? | Bamileke languages |
| bak | ba | Bashkir |
| bal | ? | Baluchi |
| bam | bm | Bambara |
| ban | ? | Balinese |
| baq/eus | eu | Basque |
| bas | ? | Basa |
| bat | ? | Baltic (Other) |
| bej | ? | Beja |
| bel | be | Belarusian |
| bem | ? | Bemba |
| ben | bn | Bengali |
| ber | ? | Berber (Other) |
| bho | ? | Bhojpuri |
| bih | bh | |
| bik | ? | Bikol |
| bin | ? | Bini |
| bis | bi | Bislama |
| bla | ? | Siksika |
| bnt | ? | Bantu (Other) |
| tib/bod | bo | Tibetan |
| bos | bs | Bosnian |
| bra | ? | Braj |
| bre | br | Breton |
| btk | ? | Batak (Indonesia) |
| bua | ? | Buriat |
| bug | ? | Buginese |
| bul | bg | Bulgarian |
| bur/mya | my | Burmese |
| byn | ? | Blin; Bilin |
| cad | ? | Caddo |
| cai | ? | Central American Indian (Other) |
| car | ? | Carib |
| cat | ca | Catalan; Valencian |
| cau | ? | Caucasian (Other) |
| ceb | ? | Cebuano |
| cel | ? | Celtic (Other) |
| cze/ces | cs | Czech |
| cha | ch | Chamorro |
| chb | ? | Chibcha |
| che | ce | Chechen |
| chg | ? | Chagatai |
| chi/zho | zh | Chinese |
| chk | ? | Chuukese |
| chm | ? | Mari |
| chn | ? | Chinook jargon |
| cho | ? | Choctaw |
| chp | ? | Chipewyan |
| chr | ? | Cherokee |
| chu | cu | Church Slavic; Old Slavonic; Church Slavonic; Old Bulgarian; Old Church Slavonic |
| chv | cv | Chuvash |
| chy | ? | Cheyenne |
| cmc | ? | Chamic languages |
| cop | ? | Coptic |
| cor | kw | Cornish |
| cos | co | Corsican |
| cpe | ? | Creoles and pidgins, English based (Other) |
| cpf | ? | Creoles and pidgins, French-based (Other) |
| cpp | ? | Creoles and pidgins, Portuguese-based (Other) |
| cre | cr | Cree |
| crh | ? | Crimean Tatar; Crimean Turkish |
| crp | ? | Creoles and pidgins (Other) |
| csb | ? | Kashubian |
| cus | ? | Cushitic (Other) |
| wel/cym | cy | Welsh |
| cze/ces | cs | Czech |
| dak | ? | Dakota |
| dan | da | Danish |
| dar | ? | Dargwa |
| day | ? | Dayak |
| del | ? | Delaware |
| den | ? | Slave (Athapascan) |
| ger/deu | de | German |
| dgr | ? | Dogrib |
| din | ? | Dinka |
| div | dv | Divehi; Dhivehi; Maldivian |
| doi | ? | Dogri |
| dra | ? | Dravidian (Other) |
| dsb | ? | Lower Sorbian |
| dua | ? | Duala |
| dum | ? | Dutch, Middle (ca.1050-1350) |
| dut/nld | nl | Dutch; Flemish |
| dyu | ? | Dyula |
| dzo | dz | Dzongkha |
| efi | ? | Efik |
| egy | ? | Egyptian (Ancient) |
| eka | ? | Ekajuk |
| gre/ell | el | Greek, Modern (1453-) |
| elx | ? | Elamite |
| eng | en | English |
| enm | ? | English, Middle (1100-1500) |
| epo | eo | Esperanto |
| est | et | Estonian |
| baq/eus | eu | Basque |
| ewe | ee | Ewe |
| ewo | ? | Ewondo |
| fan | ? | Fang |
| fao | fo | Faroese |
| per/fas | fa | ersian |
| fat | ? | |
| fij | fj | Fijian |
| fil | ? | Filipino; Pilipino |
| fin | fi | Finnish |
| fiu | ? | Finno-Ugrian (Other) |
| fon | ? | Fon |
| fre/fra | fr | French |
| fre/fra | fr | French |
| frm | ? | French, Middle (ca.1400-1600) |
| fro | ? | French, Old (842-ca.1400) |
| frr | ? | Northern Frisian |
| frs | ? | Eastern Frisian |
| fry | fy | Western Frisian |
| ful | ff | Fulah |
| fur | ? | Friulian |
| gaa | ? | Ga |
| gay | ? | Gayo |
| gba | ? | Gbaya |
| gem | ? | Germanic (Other) |
| geo/kat | ka | Georgian |
| ger/deu | de | German |
| gez | ? | Geez |
| gil | ? | Gilbertese |
| gla | gd | Gaelic; Scottish Gaelic |
| gle | ga | Irish |
| glg | gl | Galician |
| glv | gv | Manx |
| gmh | ? | German, Middle High (ca.1050-1500) |
| goh | ? | German, Old High (ca.750-1050) |
| gon | ? | Gondi |
| gor | ? | Gorontalo |
| got | ? | Gothic |
| grb | ? | Grebo |
| grc | ? | Greek, Ancient (to 1453) |
| gre/ell | el | Greek, Modern (1453-) |
| grn | gn | Guarani |
| gsw | ? | Alemani; Swiss German |
| guj | gu | Gujarati |
| gwi | ? | Gwich磇n |
| hai | ? | Haida |
| hat | ht | Haitian; Haitian Creole |
| hau | ha | Hausa |
| haw | ? | Hawaiian |
| heb | he | Hebrew |
| her | hz | Herero |
| hil | ? | Hiligaynon |
| him | ? | Himachali |
| hin | hi | Hindi |
| hit | ? | Hittite |
| hmn | ? | Hmong |
| hmo | ho | Hiri Motu |
| scr/hrv | hr | Croatian |
| hsb | ? | Upper Sorbian |
| hun | hu | Hungarian |
| hup | ? | Hupa |
| arm/hye | hy | Armenian |
| iba | ? | Iban |
| ibo | ig | Igbo |
| ice/isl | is | Icelandic |
| ido | io | Ido |
| iii | ii | Sichuan Yi |
| ijo | ? | Ijo |
| iku | iu | Inuktitut |
| ile | ie | Interlingue |
| ilo | ? | Iloko |
| ina | ia | Interlingua (International Auxiliary Language Association) |
| inc | ? | Indic (Other) |
| ind | id | Indonesian |
| ine | ? | Indo-European (Other) |
| inh | ? | Ingush |
| ipk | ik | Inupiaq |
| ira | ? | Iranian (Other) |
| iro | ? | |
| ice/isl | is | Icelandic |
| ita | it | Italian |
| jav | jv | Javanese |
| jbo | ? | Lojban |
| jpn | ja | Japanese |
| jpr | ? | Judeo-Persian |
| jrb | ? | Judeo-Arabic |
| kaa | ? | Kara-Kalpak |
| kab | ? | Kabyle |
| kac | ? | Kachin |
| kal | kl | Kalaallisut; Greenlandic |
| kam | ? | Kamba |
| kan | kn | Kannada |
| kar | ? | Karen |
| kas | ks | Kashmiri |
| geo/kat | ka | Georgian |
| kau | kr | Kanuri |
| kaw | ? | Kawi |
| kaz | kk | Kazakh |
| kbd | ? | Kabardian |
| kha | ? | Khasi |
| khi | ? | Khoisan (Other) |
| khm | km | Khmer |
| kho | ? | Khotanese |
| kik | ki | Kikuyu; Gikuyu |
| kin | rw | Kinyarwanda |
| kir | ky | Kirghiz |
| kmb | ? | Kimbundu |
| kok | ? | Konkani |
| kom | kv | Komi |
| kon | kg | Kongo |
| kor | ko | Korean |
| kos | ? | Kosraean |
| kpe | ? | Kpelle |
| krc | ? | Karachay-Balkar |
| krl | ? | Karelian |
| kro | ? | Kru |
| kru | ? | Kurukh |
| kua | kj | Kuanyama; Kwanyama |
| kum | ? | Kumyk |
| kur | ku | Kurdish |
| kut | ? | Kutenai |
| lad | ? | Ladino |
| lah | ? | Lahnda |
| lam | ? | Lamba |
| lao | lo | Lao |
| lat | la | Latin |
| lav | lv | Latvian |
| lez | ? | Lezghian |
| lim | li | Limburgan; Limburger; Limburgish |
| lin | ln | Lingala |
| lit | lt | Lithuanian |
| lol | ? | Mongo |
| loz | ? | Lozi |
| ltz | lb | Luxembourgish; Letzeburgesch |
| lua | ? | Luba-Lulua |
| lub | lu | Luba-Katanga |
| lug | lg | Ganda |
| lui | ? | Luiseno |
| lun | ? | Lunda |
| luo | ? | Luo (Kenya and Tanzania) |
| lus | ? | Lushai |
| mac/mkd | mk | Macedonian |
| mad | ? | Madurese |
| mag | ? | Magahi |
| mah | mh | Marshallese |
| mai | ? | Maithili |
| mak | ? | Makasar |
| mal | ml | Malayalam |
| man | ? | Mandingo |
| mao/mri | mi | Maori |
| map | ? | Austronesian (Other) |
| mar | mr | Marathi |
| mas | ? | Masai |
| may/msa | ms | Malay |
| mdf | ? | Moksha |
| mdr | ? | Mandar |
| men | ? | Mende |
| mga | ? | Irish, Middle (900-1200) |
| mic | ? | Mi'kmaq; Micmac |
| min | ? | Minangkabau |
| mis | ? | Miscellaneous languages |
| mac/mkd | mk | Macedonian |
| mkh | ? | Mon-Khmer (Other) |
| mlg | mg | Malagasy |
| mlt | mt | Maltese |
| mnc | ? | Manchu |
| mni | ? | Manipuri |
| mno | ? | Manobo languages |
| moh | ? | Mohawk |
| mol | mo | Moldavian |
| mon | mn | Mongolian |
| mos | ? | Mossi |
| mao/mri | mi | Maori |
| may/msa | ms | Malay |
| mul | ? | Multiple languages |
| mun | ? | Munda languages |
| mus | ? | Creek |
| mwl | ? | Mirandese |
| mwr | ? | Marwari |
| bur/mya | my | Burmese |
| myn | ? | Mayan languages |
| myv | ? | Erzya |
| nah | ? | Nahuatl |
| nai | ? | North American Indian |
| nap | ? | Neapolitan |
| nau | na | Nauru |
| nav | nv | Navajo; Navaho |
| nbl | nr | Ndebele, South; South Ndebele |
| nde | nd | Ndebele, North; North Ndebele |
| ndo | ng | Ndonga |
| nds | ? | Low German; Low Saxon; German, Low; Saxon, Low |
| nep | ne | Nepali |
| new | ? | Nepal Bhasa; Newari |
| nia | ? | Nias |
| nic | ? | Niger-Kordofanian (Other) |
| niu | ? | Niuean |
| dut/nld | nl | Dutch; Flemish |
| nno | nn | Norwegian Nynorsk; Nynorsk, Norwegian |
| nob | nb | Bokm錶, Norwegian; Norwegian Bokm錶 |
| nog | ? | Nogai |
| non | ? | Norse, Old |
| nor | no | Norwegian |
| nqo | ? | N'Ko |
| nso | ? | Pedi; Sepedi; Northern Sotho |
| nub | ? | Nubian languages |
| nwc | ? | Classical Newari; Old Newari; Classical Nepal Bhasa |
| nya | ny | Chichewa; Chewa; Nyanja |
| nym | ? | Nyamwezi |
| nyn | ? | Nyankole |
| nyo | ? | Nyoro |
| nzi | ? | Nzima |
| oci | oc | |
| oji | oj | Ojibwa |
| ori | or | Oriya |
| orm | om | Oromo |
| osa | ? | Osage |
| oss | os | Ossetian; Ossetic |
| ota | ? | Turkish, Ottoman (1500-1928) |
| oto | ? | Otomian languages |
| paa | ? | Papuan (Other) |
| pag | ? | Pangasinan |
| pal | ? | Pahlavi |
| pam | ? | Pampanga |
| pan | pa | Panjabi; Punjabi |
| pap | ? | Papiamento |
| pau | ? | Palauan |
| peo | ? | Persian, Old (ca.600-400 B.C.) |
| per/fas | fa | Persian |
| phi | ? | Philippine (Other) |
| phn | ? | Phoenician |
| pli | pi | Pali |
| pol | pl | Polish |
| pon | ? | Pohnpeian |
| por | pt | Portuguese |
| pra | ? | Prakrit languages |
| pro | ? | Provenl, Old (to 1500) |
| pus | ps | Pushto |
| qaa-qtz | ? | Reserved for local use |
| que | qu | Quechua |
| raj | ? | Rajasthani |
| rap | ? | Rapanui |
| rar | ? | Rarotongan |
| roa | ? | Romance (Other) |
| roh | rm | Raeto-Romance |
| rom | ? | Romany |
| rum/ron | ro | Romanian |
| rum/ron | ro | Romanian |
| run | rn | Rundi |
| rup | ? | Aromanian; Arumanian; Macedo-Romanian |
| rus | ru | Russian |
| sad | ? | Sandawe |
| sag | sg | Sango |
| sah | ? | Yakut |
| sai | ? | South American Indian (Other) |
| sal | ? | Salishan languages |
| sam | ? | Samaritan Aramaic |
| san | sa | Sanskrit |
| sas | ? | Sasak |
| sat | ? | Santali |
| scc/srp | sr | Serbian |
| scn | ? | Sicilian |
| sco | ? | Scots |
| scr/hrv | hr | Croatian |
| sel | ? | Selkup |
| sem | ? | Semitic (Other) |
| sga | ? | Irish, Old (to 900) |
| sgn | ? | Sign Languages |
| shn | ? | Shan |
| sid | ? | Sidamo |
| sin | si | Sinhala; Sinhalese |
| sio | ? | Siouan languages |
| sit | ? | Sino-Tibetan (Other) |
| sla | ? | Slavic (Other) |
| slo/slk | sk | Slovak |
| slo/slk | sk | Slovak |
| slv | sl | Slovenian |
| sma | ? | Southern Sami |
| sme | se | Northern Sami |
| smi | ? | Sami languages (Other) |
| smj | ? | Lule Sami |
| smn | ? | Inari Sami |
| smo | sm | Samoan |
| sms | ? | Skolt Sami |
| sna | sn | Shona |
| snd | sd | Sindhi |
| snk | ? | Soninke |
| sog | ? | Sogdian |
| som | so | Somali |
| son | ? | Songhai |
| sot | st | Sotho, Southern |
| spa | es | Spanish; Castilian |
| alb/sqi | sq | |
| srd | sc | Sardinian |
| srn | ? | Sranan Togo |
| scc/srp | sr | Serbian |
| srr | ? | Serer |
| ssa | ? | Nilo-Saharan (Other) |
| ssw | ss | Swati |
| suk | ? | Sukuma |
| sun | su | Sundanese |
| sus | ? | Susu |
| sux | ? | Sumerian |
| swa | sw | Swahili |
| swe | sv | Swedish |
| syr | ? | Syriac |
| tah | ty | Tahitian |
| tai | ? | Tai (Other) |
| tam | ta | Tamil |
| tat | tt | Tatar |
| tel | te | Telugu |
| tem | ? | Timne |
| ter | ? | Tereno |
| tet | ? | Tetum |
| tgk | tg | Tajik |
| tgl | tl | Tagalog |
| tha | th | Thai |
| tib/bod | bo | Tibetan |
| tig | ? | Tigre |
| tir | ti | Tigrinya |
| tiv | ? | Tiv |
| tkl | ? | Tokelau |
| tlh | ? | Klingon; tlhIngan-Hol |
| tli | ? | Tlingit |
| tmh | ? | Tamashek |
| tog | ? | Tonga (Nyasa) |
| ton | to | Tonga (Tonga Islands) |
| tpi | ? | Tok Pisin |
| tsi | ? | Tsimshian |
| tsn | tn | Tswana |
| tso | ts | Tsonga |
| tuk | tk | Turkmen |
| tum | ? | Tumbuka |
| tup | ? | Tupi languages |
| tur | tr | Turkish |
| tut | ? | Altaic (Other) |
| tvl | ? | Tuvalu |
| twi | tw | Twi |
| tyv | ? | |
| udm | ? | Udmurt |
| uga | ? | Ugaritic |
| uig | ug | Uighur; Uyghur |
| ukr | uk | Ukrainian |
| umb | ? | Umbundu |
| und | ? | Undetermined |
| urd | ur | Urdu |
| uzb | uz | Uzbek |
| vai | ? | Vai |
| ven | ve | Venda |
| vie | vi | Vietnamese |
| vol | vo | Volap黭 |
| vot | ? | Votic |
| wak | ? | Wakashan languages |
| wal | ? | Walamo |
| war | ? | Waray |
| was | ? | Washo |
| wel/cym | cy | Welsh |
| wen | ? | Sorbian languages |
| wln | wa | Walloon |
| wol | wo | Wolof |
| xal | ? | Kalmyk; Oirat |
| xho | xh | Xhosa |
| yao | ? | Yao |
| yap | ? | Yapese |
| yid | yi | Yiddish |
| yor | yo | Yoruba |
| ypk | ? | Yupik languages |
| zap | ? | Zapotec |
| zen | ? | Zenaga |
| zha | za | Zhuang; Chuang |
| chi/zho | zh | Chinese |
| znd | ? | Zande |
| zul | zu | Zulu |
| zun | ? | Zuni |
| zxx | ? | No linguistic content |
| zza | ? | Zaza; Dimili; Dimli; Kirdki; Kirmanjki; Zazaki |
Comments on this document: iso639-2@loc.gov
IS0 639-2 HOME - Code
List - Changes to Codes
ISO
639 Joint Advisory Committee -
ISO
639-1 Registration Authority
| Library of Congress >> Standards | Contact Us |
本文轉自peterzb博客園博客,原文鏈接:http://www.cnblogs.com/peterzb/archive/2009/05/15/1457979.html,如需轉載請自行聯(lián)系原作者。
總結
以上是生活随笔為你收集整理的[转载]3GP文件格式研究的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 10条恶风水,你占了几条?
- 下一篇: 推荐 5 个 火火火火 的 CSS 项目