ASF(wmv,wma) ファイルフォーマット



ASF ファイルは Header Object から始まります。

ファイル操作をおこなう場合は、まず先頭から 16 バイト読み込み、それが Header Object の GUID であることを確認します。

スポンサードリンク

詳しくはAdvanced Systems Format(ASF)仕様書を確認してください。

【ソースコード例】

    snprintf(guid_text, 32, "%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x",
        data[0], data[1], data[2], data[3], data[4], data[5], data[6], data[7],
        data[8], data[9], data[10], data[11], data[12], data[13], data[14], data[15]);

    if (0 == strncasecmp( guid_text, GUID_ASF_Header_Object, 32 ) )
    {
        return SUCCESS;
    }
    else
    {
        return FAILURE;
    }

Header Object

名前 サイズ 内容
Object ID GUID Guid 16 30 26 B2 75 8E 66 CF 11 A6 D9 00 AA 00 62 CE 6C
Object ID: 75B22630-668E-11CF-A6D9-00AA0062CE6C
Object Size QWORD UInt64 8 Header Object 全体のサイズ
Number of Header Objects DWORD UInt32 4 Header Object に含まれる、子オブジェクトの総数
Reserved1 BYTE byte 1 予約領域
Reserved2 BYTE byte 1 予約領域

Object Size は次のように計算します。

db e3 00 00 00 00 00 00
Object Size: 58331
  0xE3DB = 58331

File Properties Object

名前 サイズ 内容
Object ID GUID Guid 16 A1 DC AB 8C 47 A9 CF 11-8E E4 00 C0 0C 20 53 65
Object ID: 8CABDCA1-A947-11CF-8EE4-00C00C205365
Object Size QWORD UInt64 8 File Properties Object 全体のサイズ
File ID GUID Guid 16 59 CE 60 36 54 CB 80 48 B5 80 1B AA D4 A9 E9 E6
File ID: 3660CE59-CB54-4880-B580-1BAAD4A9E9E6
File Size QWORD UInt64 8 このサイズはasfのファイルのサイズと等しくなります
Creation Date QWORD UInt64 8 ファイルの作成日 ( UTC ) 1年間=31536000秒
Data Packets Count QWORD UInt64 8 Windows Media Playerの統計情報に現れる受信したパケットに等しくなるはず。
Play Duration QWORD UInt64 8 再生時間
Send Duration QWORD UInt64 8 送信時間
Preroll QWORD UInt64 8 ファイル再生を始める前に必要なバッファリング時間
Flags DWORD UInt32 4 フラグ
Minimum Data Packet Size DWORD UInt32 4 送信時における最小のデータパケットのサイズ
Maximum Data Packet Size DWORD UInt32 4 送信時における最大のデータパケットのサイズ
Maximum Bitrate DWORD UInt32 4 送信時における最大ビットレート

コンテンツの再生時間を取得する場合は、Play Duration から Preroll を差し引く必要があります。

Stream Bitrate Properties Object

名前 サイズ 内容
Object ID GUID Guid 16 91 07 DC B7 B7 A9 CF 11 8E E6 00 C0 0C 20 53 65
Object ID: B7DC0791-A9B7-11CF-8EE6-00C00C205365
Object Size QWORD UInt64 8 オブジェクト全体のサイズ
Bitrate Records Count WORD UInt16 2 Bitrate Records の総数

Header Extension Object

名前 サイズ 内容
Object ID GUID Guid 16 B5 03 BF 5F 2E A9 CF 11 8E E3 00 C0 0C 20 53 65
Object ID: 5FBF03B5-A92E-11CF-8EE3-00C00C205365
Object Size QWORD UInt64 8 オブジェクト全体のサイズ
Reserved Field 1 GUID Guid 16 予約領域
Reserved Field 2 WORD UInt16 2 予約領域
Header Extension Data Size DWORD UInt32 4 拡張ヘッダのバイト数

Language List Object

名前 サイズ 内容
Object ID GUID Guid 16 A9 46 43 7C E0 EF FC 4B B2 29 39 3E DE 41 5C 85
Object ID: 7C4346A9-EFE0-4BFC-B229-393EDE415C85
Object Size QWORD UInt64 8 オブジェクト全体のサイズ
Language ID Records CountWORD UInt16 2 言語リストの総数

Extended Stream Properties Object

名前 サイズ 内容
Object ID GUID Guid 16 CB A5 E6 14 72 C6 32 43 83 99 A9 69 52 06 5B 5A
Object ID: 14E6A5CB-C672-4332-8399-A96952065B5A
Object Size QWORD UInt64 8 オブジェクト全体のサイズ
Start Time QWORD UInt64 8 最初のオブジェクトのプレゼンテーション時間
End Time QWORD UInt64 8 最後のオブジェクトのプレゼンテーション時間

Metadata Library Object

Header Extension Object 内のオブジェクトです。

名前 サイズ 内容
Object ID GUID Guid 16 94 1C 23 44 98 94 D1 49 A1 41 1D 13 4E 45 70 54
Object ID: 44231C94-9498-49D1-A141-1D134E457054
Object Size QWORD UInt64 8 オブジェクト全体のサイズ
Description Records Count WORD UInt16 2 メタデータの総数

Data Object

名前 サイズ 内容
Object ID GUID Guid 16 36 26 B2 75 8E 66 CF 11 A6 D9 00 AA 00 62 CE 6C
Object ID: 75B22636-668E-11CF-A6D9-00AA0062CE6C
Object Size QWORD UInt64 8 オブジェクト全体のサイズ
File ID GUID Guid 16
Total Data Packets QWORD UInt64 8 Data Objectに存在するエントリーの数
Reserved Field WORD UInt16 16 予約領域
Data Packets 実データ

GUID 一覧

GUIDとバイナリダンプの一覧です。

Top-level ASF object GUIDs

ASF Header Object{75B22630-668E-11CF-A6D9-00AA0062CE6C}30 26 B2 75 8E 66 CF 11 A6 D9 00 AA 00 62 CE 6C
ASF Data Object{75B22636-668E-11CF-A6D9-00AA0062CE6C}36 26 B2 75 8E 66 CF 11 A6 D9 00 AA 00 62 CE 6C
ASF Simple Index Object{33000890-E5B1-11CF-89F4-00A0C90349CB}90 08 00 33 B1 E5 CF 11 89 F4 00 A0 C9 03 49 CB
ASF Index Object{D6E229D3-35DA-11D1-9034-00A0C90349BE}D3 29 E2 D6 DA 35 D1 11 90 34 00 A0 C9 03 49 BE
ASF Media Object Index Object{FEB103F8-12AD-4C64-840F-2A1D2F7AD48C}F8 03 B1 FE AD 12 64 4C 84 0F 2A 1D 2F 7A D4 8C
ASF Timecode Index Object{3CB73FD0-0C4A-4803-953D-EDF7B6228F0C}D0 3F B7 3C 4A 0C 03 48 95 3D ED F7 B6 22 8F 0C

Header Object GUIDs

ASF File Properties Object{8CABDCA1-A947-11CF-8EE4-00C00C205365}A1 DC AB 8C 47 A9 CF 11 8E E4 00 C0 0C 20 53 65
ASF Stream Properties Object{B7DC0791-A9B7-11CF-8EE6-00C00C205365}91 07 DC B7 B7 A9 CF 11 8E E6 00 C0 0C 20 53 65
ASF Header Extension Object{5FBF03B5-A92E-11CF-8EE3-00C00C205365}B5 03 BF 5F 2E A9 CF 11 8E E3 00 C0 0C 20 53 65
ASF Codec List Object{86D15240-311D-11D0-A3A4-00A0C90348F6}40 52 D1 86 1D 31 D0 11 A3 A4 00 A0 C9 03 48 F6
ASF Script Command Object{1EFB1A30-0B62-11D0-A39B-00A0C90348F6}30 1A FB 1E 62 0B D0 11 A3 9B 00 A0 C9 03 48 F6
ASF Marker Object{F487CD01-A951-11CF-8EE6-00C00C205365}01 CD 87 F4 51 A9 CF 11 8E E6 00 C0 0C 20 53 65
ASF Bitrate Mutual Exclusion Object{D6E229DC-35DA-11D1-9034-00A0C90349BE}DC 29 E2 D6 DA 35 D1 11 90 34 00 A0 C9 03 49 BE
ASF Error Correction Object{75B22635-668E-11CF-A6D9-00AA0062CE6C}35 26 B2 75 8E 66 CF 11 A6 D9 00 AA 00 62 CE 6C
ASF Content Description Object{75B22633-668E-11CF-A6D9-00AA0062CE6C}33 26 B2 75 8E 66 CF 11 A6 D9 00 AA 00 62 CE 6C
ASF Extended Content Description Object{D2D0A440-E307-11D2-97F0-00A0C95EA850}40 A4 D0 D2 07 E3 D2 11 97 F0 00 A0 C9 5E A8 50
ASF Content Branding Object{2211B3FA-BD23-11D2-B4B7-00A0C955FC6E}FA B3 11 22 23 BD D2 11 B4 B7 00 A0 C9 55 FC 6E
ASF Stream Bitrate Properties Object{7BF875CE-468D-11D1-8D82-006097C9A2B2}CE 75 F8 7B 8D 46 D1 11 8D 82 00 60 97 C9 A2 B2

Header Extension Object GUIDs

ASF Extended Stream Properties Object{14E6A5CB-C672-4332-8399-A96952065B5A}CB A5 E6 14 72 C6 32 43 83 99 A9 69 52 06 5B 5A
ASF Advanced Mutual Exclusion Object{A08649CF-4775-4670-8A16-6E35357566CD}CF 49 86 A0 75 47 70 46 8A 16 6E 35 35 75 66 CD
ASF Group Mutual Exclusion Object{D1465A40-5A79-4338-B71B-E36B8FD6C249}40 5A 46 D1 79 5A 38 43 B7 1B E3 6B 8F D6 C2 49
ASF Stream Prioritization Object{D4FED15B-88D3-454F-81F0-ED5C45999E24}5B D1 FE D4 D3 88 4F 45 81 F0 ED 5C 45 99 9E 24
ASF Bandwidth Sharing Object{A69609E6-517B-11D2-B6AF-00C04FD908E9}E6 09 96 A6 7B 51 D2 11 B6 AF 00 C0 4F D9 08 E9
ASF Language List Object{7C4346A9-EFE0-4BFC-B229-393EDE415C85}A9 46 43 7C E0 EF FC 4B B2 29 39 3E DE 41 5C 85
ASF Metadata Object{C5F8CBEA-5BAF-4877-8467-AA8C44FA4CCA}EA CB F8 C5 AF 5B 77 48 84 67 AA 8C 44 FA 4C CA
ASF Metadata Library Object{44231C94-9498-49D1-A141-1D134E457054}94 1C 23 44 98 94 D1 49 A1 41 1D 13 4E 45 70 54
ASF Index Parameters Object{D6E229DF-35DA-11D1-9034-00A0C90349BE}DF 29 E2 D6 DA 35 D1 11 90 34 00 A0 C9 03 49 BE
ASF Media Object Index Parameters Object{6B203BAD-3F11-48E4-ACA8-D7613DE2CFA7}AD 3B 20 6B 11 3F E4 48 AC A8 D7 61 3D E2 CF A7
ASF Timecode Index Parameters Object{F55E496D-9797-4B5D-8C8B-604DFE9BFB24}6D 49 5E F5 97 97 5D 4B 8C 8B 60 4D FE 9B FB 24
ASF Compatibility Object{75B22630-668E-11CF-A6D9-00AA0062CE6C}30 26 B2 75 8E 66 CF 11 A6 D9 00 AA 00 62 CE 6C
ASF Advanced Content Encryption Object{43058533-6981-49E6-9B74-AD12CB86D58C}33 85 05 43 81 69 E6 49 9B 74 AD 12 CB 86 D5 8C
ASF Content Encryption Object{2211B3FB-BD23-11D2-B4B7-00A0C955FC6E}FB B3 11 22 23 BD D2 11 B4 B7 00 A0 C9 55 FC 6E
ASF Extended Content Encryption Object{298AE614-2622-4C17-B935-DAE07EE9289C}14 E6 8A 29 22 26 17 4C B9 35 DA E0 7E E9 28 9C
ASF Digital Signature Object{2211B3FC-BD23-11D2-B4B7-00A0C955FC6E}FC B3 11 22 23 BD D2 11 B4 B7 00 A0 C9 55 FC 6E
ASF Padding Object{1806D474-CADF-4509-A4BA-9AABCB96AAE8}74 D4 06 18 DF CA 09 45 A4 BA 9A AB CB 96 AA E8

Stream Properties Object Stream Type GUIDs

ASF Audio Media{F8699E40-5B4D-11CF-A8FD-00805F5C442B}40 9E 69 F8 4D 5B CF 11 A8 FD 00 80 5F 5C 44 2B
ASF Video Media{BC19EFC0-5B4D-11CF-A8FD-00805F5C442B}C0 EF 19 BC 4D 5B CF 11 A8 FD 00 80 5F 5C 44 2B
ASF Command Media{59DACFC0-59E6-11D0-A3AC-00A0C90348F6}C0 CF DA 59 E6 59 D0 11 A3 AC 00 A0 C9 03 48 F6
ASF JFIF Media{B61BE100-5B4E-11CF-A8FD-00805F5C442B}00 E1 1B B6 4E 5B CF 11 A8 FD 00 80 5F 5C 44 2B
ASF Degradable JPEG Media{35907DE0-E415-11CF-A917-00805F5C442B}E0 7D 90 35 15 E4 CF 11 A9 17 00 80 5F 5C 44 2B
ASF File Transfer Media{91BD222C-F21C-497A-8B6D-5AA86BFC0185}2C 22 BD 91 1C F2 7A 49 8B 6D 5A A8 6B FC 01 85
ASF Binary Media{3AFB65E2-47EF-40F2-AC2C-70A90D71D343}E2 65 FB 3A EF 47 F2 40 AC 2C 70 A9 0D 71 D3 43

Web stream Type-Specific Data GUIDs

ASF Web Stream Media Subtype{776257D4-C627-41CB-8F81-7AC7FF1C40CC}D4 57 62 77 27 C6 CB 41 8F 81 7A C7 FF 1C 40 CC
ASF Web Stream Format{DA1E6B13-8359-4050-B398-388E965BF00C}13 6B 1E DA 59 83 50 40 B3 98 38 8E 96 5B F0 0C

Stream Properties Object Error Correction Type GUIDs

ASF No Error Correction{20FB5700-5B55-11CF-A8FD-00805F5C442B}00 57 FB 20 55 5B CF 11 A8 FD 00 80 5F 5C 44 2B
ASF Audio Spread{BFC3CD50-618F-11CF-8BB2-00AA00B4E220}50 CD C3 BF 8F 61 CF 11 8B B2 00 AA 00 B4 E2 20

Header Extension Object GUIDs

ASF Reserved 1{ABD3D211-A9BA-11CF-8EE6-00C00C205365}11 D2 D3 AB BA A9 CF 11 8E E6 00 C0 0C 20 53 65

Advanced Content Encryption Object System ID GUIDs

ASF Content Encryption System Windows Media DRM Network Devices{7A079BB6-DAA4-4E12-A5CA-91D38DC11A8D}B6 9B 07 7A A4 DA 12 4E A5 CA 91 D3 8D C1 1A 8D

Codec List Object GUIDs

ASF Reserved 2{86D15241-311D-11D0-A3A4-00A0C90348F6}41 52 D1 86 1D 31 D0 11 A3 A4 00 A0 C9 03 48 F6

Script Command Object GUIDs

ASF Reserved 3{4B1ACBE3-100B-11D0-A39B-00A0C90348F6}E3 CB 1A 4B 0B 10 D0 11 A3 9B 00 A0 C9 03 48 F6

Marker Object GUIDs

ASF Reserved 4{4CFEDB20-75F6-11CF-9C0F-00A0C90349CB}20 DB FE 4C F6 75 CF 11 9C 0F 00 A0 C9 03 49 CB

Mutual Exclusion Object Exclusion Type GUIDs

ASF Mutex Language{D6E22A00-35DA-11D1-9034-00A0C90349BE}00 2A E2 D6 DA 35 D1 11 90 34 00 A0 C9 03 49 BE
ASF Mutex Bitrate{D6E22A01-35DA-11D1-9034-00A0C90349BE}01 2A E2 D6 DA 35 D1 11 90 34 00 A0 C9 03 49 BE
ASF Mutex Unknown{D6E22A02-35DA-11D1-9034-00A0C90349BE}02 2A E2 D6 DA 35 D1 11 90 34 00 A0 C9 03 49 BE

Bandwidth Sharing Object GUIDs

ASF Bandwidth Sharing Exclusive{AF6060AA-5197-11D2-B6AF-00C04FD908E9}AA 60 60 AF 97 51 D2 11 B6 AF 00 C0 4F D9 08 E9
ASF Bandwidth Sharing Partial{AF6060AB-5197-11D2-B6AF-00C04FD908E9}AB 60 60 AF 97 51 D2 11 B6 AF 00 C0 4F D9 08 E9

Standard Payload Extension System GUIDs

ASF Payload Extension System Timecode{399595EC-8667-4E2D-8FDB-98814CE76C1E}EC 95 95 39 67 86 2D 4E 8F DB 98 81 4C E7 6C 1E
ASF Payload Extension System File Name{E165EC0E-19ED-45D7-B4A7-25CBD1E28E9B}0E EC 65 E1 ED 19 D7 45 B4 A7 25 CB D1 E2 8E 9B
ASF Payload Extension System Content Type{D590DC20-07BC-436C-9CF7-F3BBFBF1A4DC}20 DC 90 D5 BC 07 6C 43 9C F7 F3 BB FB F1 A4 DC
ASF Payload Extension System Pixel Aspect Ratio{1B1EE554-F9EA-4BC8-821A-376B74E4C4B8}54 E5 1E 1B EA F9 C8 4B 82 1A 37 6B 74 E4 C4 B8
ASF Payload Extension System Sample Duration{C6BD9450-867F-4907-83A3-C77921B733AD}50 94 BD C6 7F 86 07 49 83 A3 C7c 79 21 B7 33 AD
ASF Payload Extension System Encryption Sample ID{6698B84E-0AFA-4330-AEB2-1C0A98D7A44D}4E B8 98 66 FA 0A 30 43 AE B2 1C 0A 98 D7 A4 4D

実データ例

    00000101  30 26 b2 75 8e 66 cf 11  a6 d9 00 aa 00 62 ce 6c 0&.u.f.. .....b.l → ASF_Header_Object
    00000111  db e3 00 00 00 00 00 00  06 00 00 00 01 02 a1 dc ........ ........ → ASF_File_Properties_Object
    00000121  ab 8c 47 a9 cf 11 8e e4  00 c0 0c 20 53 65 68 00 ..G..... ... Seh.
    00000131  00 00 00 00 00 00 a6 b9  08 cc f9 94 64 4f 92 2b ........ ....dO.+
    00000141  4e 67 0c ba 6b e8 f7 01  00 00 00 00 00 00 f1 97 Ng..k... ........
    00000151  76 01 80 be cd 01 ff ff  ff ff 00 00 00 00 00 00 v....... ........
    00000161  00 00 00 00 00 00 00 00  00 00 00 00 00 00 b8 0b ........ ........
    00000171  00 00 00 00 00 00 09 00  00 00 ba 0b 00 00 ba 0b ........ ........
    00000181  00 00 46 fc 00 00 ce 75  f8 7b 8d 46 d1 11 8d 82 ..F....u .{.F.... → ASF_Stream_Bitrate_Properties_Object
    00000191  00 60 97 c9 a2 b2 20 00  00 00 00 00 00 00 01 00 .`.... . ........
    000001A1  01 00 46 fc 00 00 91 07  dc b7 b7 a9 cf 11 8e e6 ..F..... ........ → ASF_Stream_Properties_Object
    000001B1  00 c0 0c 20 53 65 72 00  00 00 00 00 00 00 40 9e ... Ser. ......@.
    000001C1  69 f8 4d 5b cf 11 a8 fd  00 80 5f 5c 44 2b 50 cd i.M[.... .._\D+P.
    000001D1  c3 bf 8f 61 cf 11 8b b2  00 aa 00 b4 e2 20 00 00 ...a.... ..... ..
    000001E1  00 00 00 00 00 00 1c 00  00 00 08 00 00 00 01 00 ........ ........
    000001F1  00 00 00 00 61 01 02 00  44 ac 00 00 43 1f 00 00 ....a... D...C...
    00000201  9d 0b 10 00 0a 00 00 88  00 00 0f 00 00 00 00 00 ........ ........
    00000211  01 9d 0b 9d 0b 01 00 00  b5 03 bf 5f 2e a9 cf 11 ........ ..._.... → ASF_Header_Extension_Object
    00000221  8e e3 00 c0 0c 20 53 65 53 de 00 00 00 00 00 00 ..... Se S.......
    00000231  11 d2 d3 ab ba a9 cf 11  8e e6 00 c0 0c 20 53 65 ........ ..... Se
    00000241  06 00 25 de 00 00 a9 46  43 7c e0 ef fc 4b b2 29 ..%....F C|...K.) → ASF_Language_List_Object
    00000251  39 3e de 41 5c 85 34 00  00 00 00 00 00 00 02 00 9>.A\.4. ........
    00000261  0c 65 00 6e 00 2d 00 75  00 73 00 00 00 0c 6a 00 .e.n.-.u .s....j.
    00000271  61 00 2d 00 4a 00 50 00  00 00 cb a5 e6 14 72 c6 a.-.J.P. ......r. → ASF_Extended_Stream_Properties_Object
    00000281  32 43 83 99 a9 69 52 06  5b 5a 58 00 00 00 00 00 2C...iR. [ZX.....
    00000291  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 ........ ........
    000002A1  00 00 18 fa 00 00 b8 0b  00 00 00 00 00 00 18 fa ........ ........
    000002B1  00 00 b8 0b 00 00 00 00  00 00 00 00 00 00 00 00 ........ ........
    000002C1  00 00 01 00 00 00 00 00  00 00 00 00 00 00 00 00 ........ ........
    000002D1  00 00 94 1c 23 44 98 94  d1 49 a1 41 1d 13 4e 45 ....#D.. .I.A..NE → ASF_Metadata_Library_Object
    000002E1  70 54 1f dd 00 00 00 00  00 00 0a 00 01 00 00 00 pT...... ........
     ....

スポンサードリンク

スポンサードリンク