ASFの構造,ようわからん。

YuO
記事: 947
登録日時: 14年前
住所: 東京都世田谷区

ASFの構造,ようわからん。

投稿記事 by YuO » 11年前

某とか某とかのサイトで提供されているWebラジオを自前でダウンロードできないかな,とmmsプロトコルを調べ……る前にfidder覗いたらHTTPでデータが来ていました。
これ,自分でHTTP喋れば簡単に.wmaファイルが手に入るんじゃね,とか思いつつ仕様と格闘。このあたりを参照しながら,fiddlerで得たデータを繋げて,.wmaファイルが出来上がり……のはずが……。

とあるダウンロードソフトでダウンロードしたファイルと,サイズが違う。しかも,自分で作った方はちゃんと再生されない。
さらに,ASF仕様書通りに解釈させようとすると,「ちゃんと再生できるASFファイル」はPayloadの解釈に失敗する (PayloadのData Packetの後に,仕様に無いPaddingがあるっぽい……)。

破れかぶれでWindows Media Format SDK使ってSaving Content通りに呼び出してみたら,当然ながらCanSaveFileAsはFALSE。

とっかかりはどこかに無いかなぁ……。

YuO
記事: 947
登録日時: 14年前
住所: 東京都世田谷区

Re: ASFの構造,ようわからん。

投稿記事 by YuO » 11年前

Data PacketのPayloadの長さの算出を間違っていた。
Error correction dataの長さはPacket Lengthから引いてはいけないみたい。
Single payloadにおけるPayload Dataの長さは,Packet Lengthから
  • Payload parsing informationの長さ
  • PayloadからPayload Dataを除いた長さ
  • Paddiing Length
の3つを引いたものらしい。
packet header lengthというから,Error correction dataとPayload parsing infromation両方の長さを引いていた。

そうすると,fiddlerで得たデータから生成する物のサイズが合わないのだが……。
ちゃんと,WMSPを喋って取得するか……。