某とか某とかのサイトで提供されているWebラジオを自前でダウンロードできないかな,とmmsプロトコルを調べ……る前にfidder覗いたらHTTPでデータが来ていました。
これ,自分でHTTP喋れば簡単に.wmaファイルが手に入るんじゃね,とか思いつつ仕様と格闘。このあたりを参照しながら,fiddlerで得たデータを繋げて,.wmaファイルが出来上がり……のはずが……。
とあるダウンロードソフトでダウンロードしたファイルと,サイズが違う。しかも,自分で作った方はちゃんと再生されない。
さらに,ASF仕様書通りに解釈させようとすると,「ちゃんと再生できるASFファイル」はPayloadの解釈に失敗する (PayloadのData Packetの後に,仕様に無いPaddingがあるっぽい……)。
破れかぶれでWindows Media Format SDK使ってSaving Content通りに呼び出してみたら,当然ながらCanSaveFileAsはFALSE。
とっかかりはどこかに無いかなぁ……。
ASFの構造,ようわからん。
Re: ASFの構造,ようわからん。
Data PacketのPayloadの長さの算出を間違っていた。
Error correction dataの長さはPacket Lengthから引いてはいけないみたい。
Single payloadにおけるPayload Dataの長さは,Packet Lengthから
packet header lengthというから,Error correction dataとPayload parsing infromation両方の長さを引いていた。
そうすると,fiddlerで得たデータから生成する物のサイズが合わないのだが……。
ちゃんと,WMSPを喋って取得するか……。
Error correction dataの長さはPacket Lengthから引いてはいけないみたい。
Single payloadにおけるPayload Dataの長さは,Packet Lengthから
- Payload parsing informationの長さ
- PayloadからPayload Dataを除いた長さ
- Paddiing Length
packet header lengthというから,Error correction dataとPayload parsing infromation両方の長さを引いていた。
そうすると,fiddlerで得たデータから生成する物のサイズが合わないのだが……。
ちゃんと,WMSPを喋って取得するか……。