日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

[转载]3GP文件格式研究

發(fā)布時(shí)間:2024/1/18 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [转载]3GP文件格式研究 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
原文來(lái)自: 無(wú)極 - CSDN博客? http://blog.csdn.net/windcao/archive/2006/05/12/725722.aspx

序言

06我開(kāi)始做3gp文件的播放器,但是關(guān)于3gp的文檔太少了也很難找,在網(wǎng)友luxh的幫助下,
我終于有了第一份關(guān)于3gp文件格式的文檔《ISO/IEC 14496-12,ISO媒體文件格式》.
在此真心感謝luxh的貢獻(xiàn).
當(dāng)然了是英文版的,有文檔就不錯(cuò)了.為了便于查閱和理解,我把之后陸續(xù)找到的其他幾個(gè)文檔也揉在了一起.
從06年5月12日到現(xiàn)在2007-3-23,一點(diǎn)點(diǎn)的擠時(shí)間,總算寫(xiě)完了.如有錯(cuò)誤,敬請(qǐng)斧正.
之所以寫(xiě)這篇文章目的只有一個(gè),希望大家都能夠少走彎路.
有用的到的人可以隨意復(fù)制,轉(zhuǎn)貼.
因?yàn)橐院笪矣锌赡軙?huì)對(duì)本文修改更新,所以請(qǐng)保留文中的原始鏈接.
愿意同我一道研究的人請(qǐng)加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找到的一個(gè)好東西
http://isotc.iso.org/livelink/livelink/fetch/2000/2489/Ittf_Home/PubliclyAvailableStandards.htm
大家一定要仔細(xì)找找啊,寶藏!
我們研究3gpp文件最重要的兩個(gè)文檔就是《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)部分,描述了組成一個(gè)場(chǎng)景的音頻和視頻成分之間的關(guān)系。
(2、3)ISO/IEC 14496-2,視頻部分和ISO/IEC 14496-3音頻部分,分別規(guī)定自然的和合成的視頻對(duì)象、音頻對(duì)象的編碼表示。
(4)ISO/IEC 14496-4,一致性測(cè)試部分,定義了比特流和設(shè)備的一致性條件,用來(lái)測(cè)試MPEG-4的實(shí)現(xiàn)。
(5)ISO/IEC 14496-5,參考軟件,包括與MPEG-4的主要部分相對(duì)應(yīng)的軟件。
(6)ISO/IEC 14496-6,多媒體傳送整體框架DMIF,這是MPEG-4應(yīng)用層與傳輸網(wǎng)絡(luò)的接口,定義了通信協(xié)議,使MPEG-4系統(tǒng)的數(shù)據(jù)流能進(jìn)入各種傳輸網(wǎng)絡(luò)。還包含一個(gè)存儲(chǔ)格式MP4,用于存儲(chǔ)編碼的場(chǎng)景。
(7) ISO/IEC 14496-7,為MPEG-4工具優(yōu)化軟件,提供了對(duì)實(shí)現(xiàn)進(jìn)行優(yōu)化的例子(這里的實(shí)現(xiàn)指的是第五部分)。
(8)ISO/IEC 14496-8,定義了在IP網(wǎng)絡(luò)上傳輸MPEG-4內(nèi)容的方式。
(9)ISO/IEC 14496-9,為參考硬件描述,提供了用于演示怎樣在硬件上實(shí)現(xiàn)本標(biāo)準(zhǔn)其他部分功能的硬件設(shè)計(jì)方案。
(10)ISO/IEC 14496-10,高級(jí)視頻編碼AVC,定義了一個(gè)被稱(chēng)為AVC的視頻編解碼器。
(11)ISO/IEC 14496-11,場(chǎng)景描述和應(yīng)用引擎。
(12)ISO/IEC 14496-12,ISO媒體文件格式,定義了一個(gè)存儲(chǔ)媒體內(nèi)容的文件格式。
(13)ISO/IEC 14496-13,知識(shí)產(chǎn)權(quán)管理和保護(hù)(IPMP)擴(kuò)展。
(14)ISO/IEC 14496-14,MP4文件格式,定義了基于第十二部分的用于存儲(chǔ)MPEG-4內(nèi)容的容器文件格式。
(15)ISO/IEC 14496-15,AVC文件格式,定義了基于第十二部分的用于存儲(chǔ)第十部分的視頻內(nèi)容的文件格式。
(16)ISO/IEC 14496-16,動(dòng)畫(huà)框架擴(kuò)展AFX(Animation Framework eXtension)。
(17)ISO/IEC 14496-17,同步文本字幕格式(尚未完成,2005年1月達(dá)成"最終委員會(huì)草案"。
(18)ISO/IEC 14496-18,字體壓縮和流式傳輸(針對(duì)公開(kāi)字體格式)。
(19)ISO/IEC 14496-19,綜合材質(zhì)流(Synthesized Texture Stream)。
(20)ISO/IEC 14496-20,簡(jiǎn)單場(chǎng)景表示(尚未完成,2005年1月達(dá)成"最終委員會(huì)草案"。
(21)ISO/IEC 14496-21,用于描繪(Rendering)的MPEG-J拓展(尚未完成,2005年1月達(dá)成"委員會(huì)草案"

我做的一個(gè)輔助工具:http://download.csdn.net/source/162821?3gpp文件結(jié)構(gòu)查看器
目前最新版本是0.1.3

這個(gè)工具的源碼:http://download.csdn.net/source/162682

正文:
首先來(lái)說(shuō)3gp文件相當(dāng)于一個(gè)容器,本身沒(méi)有什么具體的編碼解碼規(guī)則。
我們可以選擇編碼方式?
-?AMR narrow-band:編碼簡(jiǎn)稱(chēng)'samr' 常用與語(yǔ)言片段的壓縮,可以對(duì)聲音片段進(jìn)行最大程度的壓縮,但是失真較大,如果用在音樂(lè)文件上結(jié)構(gòu)常常是無(wú)法忍受的。

(詳情請(qǐng)參考:3GPP TS 26.071: "Mandatory Speech CODEC speech processing functions; AMR Speech CODEC; General description".)

-? AMR wideband:編碼簡(jiǎn)稱(chēng)'sawb' 相對(duì)AMR narrow-band來(lái)說(shuō)壓縮比降低了,品質(zhì)有所提升可用來(lái)壓縮音樂(lè)。

(詳情請(qǐng)參考:3GPP TS 26.171: "AMR Wideband Speech Codec; General Description".)

-? Extended AMR-WB codec編碼簡(jiǎn)稱(chēng) 'sawp'

(詳情請(qǐng)參考:
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".

-? Enhanced aacPlus and MPEG-4 AAC codec編碼簡(jiǎn)稱(chēng) 'mp4a'

(詳情請(qǐng)參考:
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".

-? MPEG-4 video codec編碼簡(jiǎn)稱(chēng)'mp4v'

(詳情請(qǐng)參考:ISO/IEC 14496-2:2004: "Information technology – Coding of audio-visual objects – Part 2: Visual".)

-? H.263 video codec編碼簡(jiǎn)稱(chēng)'h263'

(詳情請(qǐng)參考:ITU-T Recommendation H.263 (01/05): "Video coding for low bit rate communication".)

-? H.264 video codec編碼簡(jiǎn)稱(chēng)'avc1'

(詳情請(qǐng)參考: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 timed text format?編碼簡(jiǎn)稱(chēng)'tx3g'

(詳情請(qǐng)參考:3GPP TS 26.245: "Transparent end-to-end packet switched streaming service (PSS); Timed text format".)

其中手機(jī)最普遍支持的格式是 amr(音頻) +h263(視頻)

?

?3gp文件基于mpeg4由若干個(gè)box組成

?一個(gè)3gp文件由若干個(gè)box組成常見(jiàn)的有:

文件類(lèi)型包:(FileTypeBox,簡(jiǎn)稱(chēng)代碼'ftyp')
ftyp:文件類(lèi)型包相當(dāng)于文件頭,說(shuō)明了文件所使用的協(xié)議版本,編碼格式等信息
+[4]-+[4]-+[4]-+[4]-+[4]-+
|size|ftyp|mjbr|mivs|cpbr|
+----+----+----+----+----+
mjbr:major_brand 版本分支
mivs:minor_version 版本號(hào)?
cpbr:compatible_brands 兼容分支

媒體數(shù)據(jù)包:(Media Data Box,簡(jiǎn)稱(chēng)代碼'mdat')
"Media Data Box?
Box類(lèi)型: ‘mdat’?
容器: 文件?
是否必須: 否?
數(shù)量: 任意個(gè). "-luxh

mdat box 存放了音頻視頻和其他的數(shù)據(jù),一般的文件至少有2個(gè)mdatbox, 一個(gè)用于音頻,一個(gè)用于視頻, 通常還會(huì)有一些文本信息也放在mdatbox中,各種信息的順序不固定。 如果只是存放音樂(lè)一個(gè)mdat就夠用了。

你可能會(huì)問(wèn)這么多box 都叫mdat我怎么知道音頻放哪里視頻放哪里呢?別著急這些相關(guān)信息都放在moovbox里面

影片包:(moov box:Movie Box:)是一個(gè)3gp文件中最復(fù)雜最重要的文件。

看到這里你可能會(huì)問(wèn)"moovbox里面的方框都分別代表什么含義呀?媒體描述信息是怎么存放的?",別著急咱們來(lái)慢慢分析一下。
"Movie Box?
Box類(lèi)型: 'moov';?
容器: 文件?
是否必須: 是?
數(shù)量: 一個(gè),并且只能是一個(gè).?

媒體的原始數(shù)據(jù)被放置在這個(gè)box中,這個(gè)box位于文件的最高級(jí)別,一般來(lái)說(shuō)這個(gè)box接近于文件的開(kāi)始或者末尾,盡管這并不被要求。語(yǔ)法如下:?
a ligned(8) class MovieBox extends Box(‘moov’) {} "-luxh

moovbox 有兩個(gè)必要的子box他們是影片頭包和軌跡包
影片頭包movie header,簡(jiǎn)稱(chēng)代碼'mvhd'?
首先剖析一下影片頭包,順便以此為例理解一下包的結(jié)構(gòu)。
每一個(gè)包開(kāi)頭的4個(gè)字節(jié)都是一個(gè)整數(shù)存放了本包的長(zhǎng)度。
接下來(lái)的4個(gè)字節(jié)是個(gè)字符串存放了本包的類(lèi)型。如'moov','mvhd'。
基本上包都是這模樣的:
+[4]-+[4]-+[size-8]-------------------+
|size|type|data????????????? ???????? |
+----+----+---------------------------+

很多box是這樣的我們可以稱(chēng)之為全包(full box)(這里有塊石頭,大家小心了,不要把全包當(dāng)成普通包來(lái)讀,由于我提醒的不及時(shí),網(wǎng)友陳秋松又在這里摔了一跤,抱歉)
+[4]-+[4]-+-+---+[size-8]-------------------+
|size|type|v|flg|data?????????????? ??????? |
+----+----+-+---+---------------------------+

簡(jiǎn)記為
+[4]-+[4]-+[4]-+[size-8]-------------------+
|size|type|vsfl|data????????????? ???????? |
+----+----+----+---------------------------+

其中vsfl:版本號(hào)標(biāo)志

+-+---+
|v|flg|
+-+---+
v :version
flg:flages

在影片頭包中接下來(lái)的是版本標(biāo)志等信息。
MVHD 是媒體信息頭,存放媒體的全局性的信息。
+[4]-+[4]-+[4]-+[4]-+[4]-+[4]-+[4]-+[76]----...---------+[4]-+
|size|mvhd|vsfl|cttm|mdtm|tmsc|mxtl|reserved...???????? |ntid|
+----+----+----+----+----+----+----+--------...---------+----+
size:box長(zhǎng)度
type:文件類(lèi)型標(biāo)識(shí)內(nèi)容為"mvhd"
vsfl:版本號(hào)標(biāo)志
cttm:creat time 文件創(chuàng)建時(shí)間
mdtm:modification time? 文件修改時(shí)間
tmsc:timescale 時(shí)間縮放因數(shù)
mxtl:maxTrackLen duration of longest track 最長(zhǎng)播放時(shí)間
reserved: 保留字段
ntid-next trak id? 下一個(gè)頻道標(biāo)識(shí)

軌跡包TRAK 也是一個(gè)容器,是單個(gè)媒體流頻道的信息的容器,它有兩個(gè)必要的子box:TKHD,MDIA。
TKHD 存放本trak的信息,有兩個(gè)版本
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長(zhǎng)度
type:文件類(lèi)型標(biāo)識(shí)內(nèi)容為"tkhd"
vsfl:版本號(hào)標(biāo)志
cttm:creat time 文件創(chuàng)建時(shí)間
mdtm:modification time? 文件修改時(shí)間
tkid:track-id 同一個(gè)文件中這是一個(gè)不重復(fù)的序列
resv:reserved 保留字段
duat:duration 總的播放時(shí)間長(zhǎng)度
reserved: 保留字段
ct:codec_type {audio=0x0100; video=0} 編碼類(lèi)型,到底是音頻還是視頻等
rs:reserved 保留字段
reserved: 保留字段
如果這個(gè)track 是視頻編碼它將有如下字段,在你解碼的時(shí)候非常有用.
twvo:Track width , for visual only 視頻的寬度
thvo:Track height, for visual only 視頻的高度

MDIA是存放具體的媒體信息的容器。
有且僅有3個(gè)子box:{MDHD,HDLR,MINF}

MDHD媒體頭,也有兩個(gè)版本
?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長(zhǎng)度
type:文件類(lèi)型標(biāo)識(shí)內(nèi)容為"mdhd"

pl:pad&language{bit(1) pad = 0;unsigned int(5)[3] language // ISO-639-2/T language code參見(jiàn)附錄}
*-*[15]-----------*
|p|language?????? |
*-*---------------*

pd:unsigned int(16) pre_defined = 0;

HDLR 句柄,描述媒體類(lèi)型
+[4]-+[4]-+[4]-+[12]--------+[size-24]--+
|size|pred|hdlt|reserved??? |name?????? |
+----+----+----+------------+-----------+
size:box長(zhǎng)度
type:文件類(lèi)型標(biāo)識(shí)內(nèi)容為"tkhd"

pred:pre_defined = 0;
hdlt:handler_type;
?‘vide’ Video track 視頻
?‘soun’ Audio track 音頻
?‘hint’ Hint track 注釋
reserved: reserved = 0;
name: 名稱(chēng)字符串,0結(jié)尾的UTF-8串

MINF 媒體信息容器(Media Information Box)
這是一個(gè)普通的box容器.它的內(nèi)部可能包含如下的子box:
VMHD,SMHD,HMHD,NMHD,DINF,STBL.
VMHD,SMHD,HMHD分別對(duì)應(yīng)于視頻,音頻,注視,NMHD我還不太清楚.它們都屬于fullbox.
DINF數(shù)據(jù)信息和STBL采樣表,都是普通的box. VMHD還包括兩個(gè)數(shù)據(jù)字段.
+[4]-+[4]-+[4]-+[4]-+
|gmod|opcl??????????|
+----+----+----+----+
?
gmod:graphicsmode 描述了本視頻track 與其他視頻track的混合方式.默認(rèn)的值為0,也就是直接覆蓋.
opcl:opcolor 透明色顏色值 (red, green, blue)如果gmod不是copy的話(huà)會(huì)用到.
SMHD包括兩個(gè)字段?
+--+--+
|bl|rs|
+--+--+
?
bl:balance 是一個(gè)定點(diǎn)小數(shù)(精度 8.8) 前8bits是整數(shù),后8bits是小數(shù).如果值為0說(shuō)明左右聲道是相同的.全左的情況下值為-1.0 全右則為1.0.
rs:reserved 保留字段.
HMHD包括5個(gè)字段.如下:
+--+--+[4]-+[4]-+[4]-+
|mp|ap|mbrt|abrt|resv|
+--+--+----+----+----+
?
mp:maxPDUsize 最大PDU長(zhǎng)度?-pdu是啥???????? 知道啥是pdu的朋友請(qǐng)告訴我.
ap:avgPDUsize 平均PDU長(zhǎng)度?
mbrt:maxbitrate 最大比特率?
abrt:avgbitrate 平均比特率?
resv:reserved 保留字段?

NMHD是個(gè)空的fullbox?

DINF是一個(gè)普通的box,也是一個(gè)容器,它包括url,urn,dref三個(gè)fullbox
url 內(nèi)部是一個(gè)UTF-8編碼的0結(jié)尾的字符串
string location;
url里面則是兩個(gè)
string name;
string location;
這兩個(gè)都被稱(chēng)為DataEntryBox.
dref里面是一個(gè)url或者urn的列表.首先它有一個(gè)字段
unsigned int(32) entry_count;DataEntryBox的列表的個(gè)數(shù).
然后就是DataEntryBox的列表

STBL是一個(gè)普通的box,也是一個(gè)容器,里面包含了很多媒體采樣信息.

STTS是一個(gè)fullbox里面包含了采樣的時(shí)間長(zhǎng)度信息
內(nèi)部的數(shù)據(jù)首先是列表長(zhǎng)度
unsigned int(32) entry_count;
然后就是采用時(shí)長(zhǎng)列表.
列表每一項(xiàng)都由兩個(gè)字段組成.
unsigned int(32) sample_count;采樣個(gè)數(shù)
unsigned int(32) sample_delta;每個(gè)采樣的時(shí)間長(zhǎng)度.

在認(rèn)識(shí)stsd之前我們首先要了解一個(gè)數(shù)據(jù)結(jié)構(gòu)SampleEntry和它的子類(lèi)AudioSampleEntry,VisualSampleEntry和HintSampleEntry

SampleEntry 是一個(gè)繼成box的抽象的數(shù)據(jù)結(jié)構(gòu)模型.
除了size,type外它包括兩個(gè)字段,如下:
+[4]-+[4]-+[6]---+--+
|size|type|resved|di|
+----+----+------+--+
resved:reserved,保留字段
di:data_reference_index,序號(hào).
從這個(gè)抽象數(shù)據(jù)結(jié)構(gòu)繼承下來(lái)的三個(gè)子類(lèi)分別增加了幾個(gè)獨(dú)特的新字段.

HintSampleEntry
+[4]-+[4]-+[6]---+--+[n]-+
|size|type|resved|di|data|
+----+----+------+--+----+
resved:reserved,保留字段
di:data_reference_index,序號(hào).
data:是一個(gè)0結(jié)尾的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長(zhǎng)度
type:box:類(lèi)型
resved:reserved,保留字段
di:data_reference_index,序號(hào).
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 每個(gè)采樣里面的貞數(shù),一般是1;
cmpn: compressorname 是一個(gè)數(shù)字開(kāi)頭的字符串.并且末尾有填料.對(duì)齊到32位.
??+-+[n]-+[x]-+
??|n|data|xpad|
??+-+----+----+
n:number of data.數(shù)據(jù)的長(zhǎng)度,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,序號(hào).
reserved:保留字段
cc: channelcount 聲道數(shù)1或者2;
ss: samplesize 采樣位數(shù)大小 8bit 8 ;16bit 16;
pd: pre_defined 保留字段
rs: reserved保留字段
sprt:samplerate 采樣率

stsd是一個(gè)采樣包(SampleEntry)的列表,一般來(lái)講同一個(gè)列表中只有一種SampleEntry.
可以通過(guò)hdlr里面的handler_type來(lái)判斷屬于哪種SampleEntry.
內(nèi)部的數(shù)據(jù)首先是列表長(zhǎng)度,一個(gè)32位無(wú)符號(hào)整數(shù) entry_count;
然后就是采樣包列表.
采樣包有很多具體的實(shí)現(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


ISO 639-2 CodeISO 639-1 CodeEnglish name of Language
aaraaAfar
abkabAbkhazian
ace?Achinese
ach?Acoli
ada?Adangme
ady?Adyghe; Adygei
afa?Afro-Asiatic (Other)
afh?Afrihili
afrafAfrikaans
ain?Ainu
akaakAkan
akk?Akkadian
alb/sqisqAlbanian
ale?Aleut
alg?Algonquian languages
alt?Southern Altai
amhamAmharic
ang?English, Old (ca.450-1100)
anp?Angika
apa?Apache languages
araarArabic
arc?Aramaic
arganAragonese
arm/hyehyArmenian
arn?Araucanian
arp?Arapaho
art?Artificial (Other)
arw?Arawak
asmasAssamese
ast?Asturian; Bable
ath?Athapascan languages
aus?Australian languages
avaavAvaric
aveaeAvestan
awa?Awadhi
aymayAymara
azeazAzerbaijani
bad?Banda
bai?Bamileke languages
bakbaBashkir
bal?Baluchi
bambmBambara
ban?Balinese
baq/euseuBasque
bas?Basa
bat?Baltic (Other)
bej?Beja
belbeBelarusian
bem?Bemba
benbnBengali
ber?Berber (Other)
bho?Bhojpuri
bihbh
bik?Bikol
bin?Bini
bisbiBislama
bla?Siksika
bnt?Bantu (Other)
tib/bodboTibetan
bosbsBosnian
bra?Braj
brebrBreton
btk?Batak (Indonesia)
bua?Buriat
bug?Buginese
bulbgBulgarian
bur/myamyBurmese
byn?Blin; Bilin
cad?Caddo
cai?Central American Indian (Other)
car?Carib
catcaCatalan; Valencian
cau?Caucasian (Other)
ceb?Cebuano
cel?Celtic (Other)
cze/cescsCzech
chachChamorro
chb?Chibcha
checeChechen
chg?Chagatai
chi/zhozhChinese
chk?Chuukese
chm?Mari
chn?Chinook jargon
cho?Choctaw
chp?Chipewyan
chr?Cherokee
chucuChurch Slavic; Old Slavonic; Church Slavonic; Old Bulgarian; Old Church Slavonic
chvcvChuvash
chy?Cheyenne
cmc?Chamic languages
cop?Coptic
corkwCornish
coscoCorsican
cpe?Creoles and pidgins, English based (Other)
cpf?Creoles and pidgins, French-based (Other)
cpp?Creoles and pidgins, Portuguese-based (Other)
crecrCree
crh?Crimean Tatar; Crimean Turkish
crp?Creoles and pidgins (Other)
csb?Kashubian
cus?Cushitic (Other)
wel/cymcyWelsh
cze/cescsCzech
dak?Dakota
dandaDanish
dar?Dargwa
day?Dayak
del?Delaware
den?Slave (Athapascan)
ger/deudeGerman
dgr?Dogrib
din?Dinka
divdvDivehi; Dhivehi; Maldivian
doi?Dogri
dra?Dravidian (Other)
dsb?Lower Sorbian
dua?Duala
dum?Dutch, Middle (ca.1050-1350)
dut/nldnlDutch; Flemish
dyu?Dyula
dzodzDzongkha
efi?Efik
egy?Egyptian (Ancient)
eka?Ekajuk
gre/ellelGreek, Modern (1453-)
elx?Elamite
engenEnglish
enm?English, Middle (1100-1500)
epoeoEsperanto
estetEstonian
baq/euseuBasque
eweeeEwe
ewo?Ewondo
fan?Fang
faofoFaroese
per/fasfaersian
fat?
fijfjFijian
fil?Filipino; Pilipino
finfiFinnish
fiu?Finno-Ugrian (Other)
fon?Fon
fre/frafrFrench
fre/frafrFrench
frm?French, Middle (ca.1400-1600)
fro?French, Old (842-ca.1400)
frr?Northern Frisian
frs?Eastern Frisian
fryfyWestern Frisian
fulffFulah
fur?Friulian
gaa?Ga
gay?Gayo
gba?Gbaya
gem?Germanic (Other)
geo/katkaGeorgian
ger/deudeGerman
gez?Geez
gil?Gilbertese
glagdGaelic; Scottish Gaelic
glegaIrish
glgglGalician
glvgvManx
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/ellelGreek, Modern (1453-)
grngnGuarani
gsw?Alemani; Swiss German
gujguGujarati
gwi?Gwich磇n
hai?Haida
hathtHaitian; Haitian Creole
hauhaHausa
haw?Hawaiian
hebheHebrew
herhzHerero
hil?Hiligaynon
him?Himachali
hinhiHindi
hit?Hittite
hmn?Hmong
hmohoHiri Motu
scr/hrvhrCroatian
hsb?Upper Sorbian
hunhuHungarian
hup?Hupa
arm/hyehyArmenian
iba?Iban
iboigIgbo
ice/islisIcelandic
idoioIdo
iiiiiSichuan Yi
ijo?Ijo
ikuiuInuktitut
ileieInterlingue
ilo?Iloko
inaiaInterlingua (International Auxiliary Language Association)
inc?Indic (Other)
indidIndonesian
ine?Indo-European (Other)
inh?Ingush
ipkikInupiaq
ira?Iranian (Other)
iro?
ice/islisIcelandic
itaitItalian
javjvJavanese
jbo?Lojban
jpnjaJapanese
jpr?Judeo-Persian
jrb?Judeo-Arabic
kaa?Kara-Kalpak
kab?Kabyle
kac?Kachin
kalklKalaallisut; Greenlandic
kam?Kamba
kanknKannada
kar?Karen
kasksKashmiri
geo/katkaGeorgian
kaukrKanuri
kaw?Kawi
kazkkKazakh
kbd?Kabardian
kha?Khasi
khi?Khoisan (Other)
khmkmKhmer
kho?Khotanese
kikkiKikuyu; Gikuyu
kinrwKinyarwanda
kirkyKirghiz
kmb?Kimbundu
kok?Konkani
komkvKomi
konkgKongo
korkoKorean
kos?Kosraean
kpe?Kpelle
krc?Karachay-Balkar
krl?Karelian
kro?Kru
kru?Kurukh
kuakjKuanyama; Kwanyama
kum?Kumyk
kurkuKurdish
kut?Kutenai
lad?Ladino
lah?Lahnda
lam?Lamba
laoloLao
latlaLatin
lavlvLatvian
lez?Lezghian
limliLimburgan; Limburger; Limburgish
linlnLingala
litltLithuanian
lol?Mongo
loz?Lozi
ltzlbLuxembourgish; Letzeburgesch
lua?Luba-Lulua
lubluLuba-Katanga
luglgGanda
lui?Luiseno
lun?Lunda
luo?Luo (Kenya and Tanzania)
lus?Lushai
mac/mkdmkMacedonian
mad?Madurese
mag?Magahi
mahmhMarshallese
mai?Maithili
mak?Makasar
malmlMalayalam
man?Mandingo
mao/mrimiMaori
map?Austronesian (Other)
marmrMarathi
mas?Masai
may/msamsMalay
mdf?Moksha
mdr?Mandar
men?Mende
mga?Irish, Middle (900-1200)
mic?Mi'kmaq; Micmac
min?Minangkabau
mis?Miscellaneous languages
mac/mkdmkMacedonian
mkh?Mon-Khmer (Other)
mlgmgMalagasy
mltmtMaltese
mnc?Manchu
mni?Manipuri
mno?Manobo languages
moh?Mohawk
molmoMoldavian
monmnMongolian
mos?Mossi
mao/mrimiMaori
may/msamsMalay
mul?Multiple languages
mun?Munda languages
mus?Creek
mwl?Mirandese
mwr?Marwari
bur/myamyBurmese
myn?Mayan languages
myv?Erzya
nah?Nahuatl
nai?North American Indian
nap?Neapolitan
naunaNauru
navnvNavajo; Navaho
nblnrNdebele, South; South Ndebele
ndendNdebele, North; North Ndebele
ndongNdonga
nds?Low German; Low Saxon; German, Low; Saxon, Low
nepneNepali
new?Nepal Bhasa; Newari
nia?Nias
nic?Niger-Kordofanian (Other)
niu?Niuean
dut/nldnlDutch; Flemish
nnonnNorwegian Nynorsk; Nynorsk, Norwegian
nobnbBokm錶, Norwegian; Norwegian Bokm錶
nog?Nogai
non?Norse, Old
nornoNorwegian
nqo?N'Ko
nso?Pedi; Sepedi; Northern Sotho
nub?Nubian languages
nwc?Classical Newari; Old Newari; Classical Nepal Bhasa
nyanyChichewa; Chewa; Nyanja
nym?Nyamwezi
nyn?Nyankole
nyo?Nyoro
nzi?Nzima
ocioc
ojiojOjibwa
oriorOriya
ormomOromo
osa?Osage
ossosOssetian; Ossetic
ota?Turkish, Ottoman (1500-1928)
oto?Otomian languages
paa?Papuan (Other)
pag?Pangasinan
pal?Pahlavi
pam?Pampanga
panpaPanjabi; Punjabi
pap?Papiamento
pau?Palauan
peo?Persian, Old (ca.600-400 B.C.)
per/fasfaPersian
phi?Philippine (Other)
phn?Phoenician
plipiPali
polplPolish
pon?Pohnpeian
porptPortuguese
pra?Prakrit languages
pro?Provenl, Old (to 1500)
puspsPushto
qaa-qtz?Reserved for local use
quequQuechua
raj?Rajasthani
rap?Rapanui
rar?Rarotongan
roa?Romance (Other)
rohrmRaeto-Romance
rom?Romany
rum/ronroRomanian
rum/ronroRomanian
runrnRundi
rup?Aromanian; Arumanian; Macedo-Romanian
rusruRussian
sad?Sandawe
sagsgSango
sah?Yakut
sai?South American Indian (Other)
sal?Salishan languages
sam?Samaritan Aramaic
sansaSanskrit
sas?Sasak
sat?Santali
scc/srpsrSerbian
scn?Sicilian
sco?Scots
scr/hrvhrCroatian
sel?Selkup
sem?Semitic (Other)
sga?Irish, Old (to 900)
sgn?Sign Languages
shn?Shan
sid?Sidamo
sinsiSinhala; Sinhalese
sio?Siouan languages
sit?Sino-Tibetan (Other)
sla?Slavic (Other)
slo/slkskSlovak
slo/slkskSlovak
slvslSlovenian
sma?Southern Sami
smeseNorthern Sami
smi?Sami languages (Other)
smj?Lule Sami
smn?Inari Sami
smosmSamoan
sms?Skolt Sami
snasnShona
sndsdSindhi
snk?Soninke
sog?Sogdian
somsoSomali
son?Songhai
sotstSotho, Southern
spaesSpanish; Castilian
alb/sqisq
srdscSardinian
srn?Sranan Togo
scc/srpsrSerbian
srr?Serer
ssa?Nilo-Saharan (Other)
sswssSwati
suk?Sukuma
sunsuSundanese
sus?Susu
sux?Sumerian
swaswSwahili
swesvSwedish
syr?Syriac
tahtyTahitian
tai?Tai (Other)
tamtaTamil
tatttTatar
telteTelugu
tem?Timne
ter?Tereno
tet?Tetum
tgktgTajik
tgltlTagalog
thathThai
tib/bodboTibetan
tig?Tigre
tirtiTigrinya
tiv?Tiv
tkl?Tokelau
tlh?Klingon; tlhIngan-Hol
tli?Tlingit
tmh?Tamashek
tog?Tonga (Nyasa)
tontoTonga (Tonga Islands)
tpi?Tok Pisin
tsi?Tsimshian
tsntnTswana
tsotsTsonga
tuktkTurkmen
tum?Tumbuka
tup?Tupi languages
turtrTurkish
tut?Altaic (Other)
tvl?Tuvalu
twitwTwi
tyv?
udm?Udmurt
uga?Ugaritic
uigugUighur; Uyghur
ukrukUkrainian
umb?Umbundu
und?Undetermined
urdurUrdu
uzbuzUzbek
vai?Vai
venveVenda
vieviVietnamese
volvoVolap黭
vot?Votic
wak?Wakashan languages
wal?Walamo
war?Waray
was?Washo
wel/cymcyWelsh
wen?Sorbian languages
wlnwaWalloon
wolwoWolof
xal?Kalmyk; Oirat
xhoxhXhosa
yao?Yao
yap?Yapese
yidyiYiddish
yoryoYoruba
ypk?Yupik languages
zap?Zapotec
zen?Zenaga
zhazaZhuang; Chuang
chi/zhozhChinese
znd?Zande
zulzuZulu
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
October 5, 2006




本文轉(zhuǎn)自peterzb博客園博客,原文鏈接:http://www.cnblogs.com/peterzb/archive/2009/05/15/1457979.html,如需轉(zhuǎn)載請(qǐng)自行聯(lián)系原作者。

總結(jié)

以上是生活随笔為你收集整理的[转载]3GP文件格式研究的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。