wma文件的metadata和picture

转载时请注明出处和作者联系方式:http://blog.csdn.net/mimepp

作者联系方式:YU TAO <yut616 at sohu dot com>

wma文件的metadata和picture

在MS提供的asf_specification.doc中有关于asf文件的格式信息的内容。

在header object中含有总30 bytes的描述信息,如

Field nameField typeSize (bits)
Object IDGUID128
Object SizeQWORD  64
Number of Header ObjectsDWORD  32
Reserved1BYTE8
Reserved2BYTE8

然后在header中,会有很多个header object,如Content Description Object和Extended Content Description Object等。

可以在parse header阶段,使用一个结构来保存这些object。

picture的内容是存放在 Extended Content Description Object中。

Field NameField TypeSize (bits)
Descriptor Name LengthWORD16
Descriptor NameWCHARvaries
Descriptor Value Data TypeWORD16
Descriptor Value LengthWORD16
Descriptor ValueSee textvaries

在找到上面的Extended Content Description Object后,再继续查找"WM/Picture"这个内容,然后后面就是如下的结构。

"WM/Picture"即为上面WCHAR的Description name.

typedef struct _WMPicture{
  WORD wValueDataType;     /* 2 bytes */
  WORD wValueLen;       /* 2 bytes */
  BYTE  bPictureType;     /* 1 byte */
  DWORD  dwDataLen;         /* 4 bytes */
  LPWSTR  pwszMIMEType;     /* string ends with 00 00 */
  LPWSTR  pwszDescription; /* string end with 00 00 */
  BYTE*  pbData;
} WM_PICTURE;
需要注意的是,wszMIMEType是一个WCHAR的字串,并且是以"00 00"(16进制)结尾,一般的内容为"image/jpeg"这样的内容。
wszDescription也是一个WCHAT的字串,同样是以“00 00”结尾,通常里面不含描述信息,而是直接“00 00”结束。
最后就能从dwDataLen和pbData得到需要的picture了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值