FC2ブログ
ただ今テンプレ調整中

--
--.--.--

スポンサーサイト


上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


to Top▲
18
03.2008.Tue

FLVと戦ってみた


ふと思い立ってしまって、ようつべとかニコとかからFLV DL → MP3変換
さらにはID3タグやらアートワークやら歌詞やら埋め込んでみようかという
至れり尽くせりなソフトを作ってみることに。


とりあえず FLV の DL は結構簡単。
動画が表示されるページのソース除いて
Scriptタグの "var fullscreen~" て書いてある行から
t=HOGEHOGE を取得して
http://youtube.com/get_video.php?video_id=XXX&t=HOGEHOGE
にアクセスしてやると、get_videoと言う名の FLVファイルが返ってくるから
これを適当にどっか保存しとく。


次が問題('A`)

FLVからMP3抜き出すソフトなんて 大体、中で ffmpeg とかにキックかけて
結果もらってるだけなんだろうけど MP3 取り出すだけで ffmpeg 同根するのも
アレだったから、適当に バイナリ覗いて格闘すること2時間ちょっと。。。

キタコレΣ(゚∀゚*)

とりあえず書いていいのかわかんないけど FLV フォーマットまとめ。
先頭 9Byte は多分固定で これはFLVファイルですよ~と宣言するヘッダ
詳しい仕様は仕様書見たほうがいいだろうけどとりあえずそんな感じ。

次の 4Byte も固定で 0x00 00 00 00。

こっからメタ・データ開始。
先頭の1バイトで内容把握
0x08 = Audio、0x09=Video、0x12=メタデータ?
今回はMP3だけ必要だからそれ以外のデータは読み飛ばし。

データの構造はこんな感じ↓
DataType - 0x08 | 0x09 | 0x12 (1Byte)
DataSize - 0xXX XX XX (3Byte)
TimeStamp - 0xXX XX XX (3Byte)
Space(?) - 0x00 00 00 00 (4Byte)
Data - 可変
Footer - 0xXX XX XX XX (4Byte)

多分これであってる?FLVの仕様書って確かMP3取り出す為とかに
使っちゃだめだった気がするからそういうことに使わない人は
ちゃんと仕様書見たほうがいいです。

んで、Audioのデータは先頭1バイト目にビットレートとか圧縮方式とかが入ってる。
(byte And 0xf0) >> 4 で求めた値が 2 だったらMP3だから
特に何も考えずに先頭から読み出せばOK。それ以外はまた今度。

これで出来上がったファイルはタグ情報も何にも無い生のMP3。
このままだとファイルプロパティとかで再生時間見たときに
ビットレートとファイルサイズとかで勝手に計算するから
全くあてにならない時間が表示されてますね。

ID3タグでTLENとか設定してやればちゃんと表示されます。

ひとまず今の進行状況↓
WS000001.jpg
WS000003.jpg


まだまだできてない('A`)
スポンサーサイト


to Top▲
Next>>iTunesのタグって
Top >>iPodTools
Back>>そういえば ZiPhone が 2.6 になってた
comment


Name

URL

Comment

Pass

Lock
非公開コメント

submit

trackback

trackback url
Profile

らみえる

Author:らみえる
webデザインやったり
プログラム組んだり
色んな事に広く浅く
首突っ込んで中途半端な
ダメな奴です。




FC2ブログへようこそ!


Archive

Category


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。