際際滷

際際滷Share a Scribd company logo
ライブストリ`ミ
ングの児A岑R
その2
あれくま
おさらい
念指のおさらい
 ? ビデオフォ`マットの
 ? ストリ`ミングプロトコルの




                    2
ビデオフォ`マット
コ`デック
 ? Rs圭隈
 ? WMV9?H.264?VP6?VP8?Theoraなどなど
 ? WMA?AAC?MP3?Vorbisなどなど
コンテナ
 ? ファイル夛
 ? ASF?MP4?FLV?Ogg?MKVなどなど




                                   3
プロトコル
HTTPプログレッシブダウンロ`ド
 ? ダウンロ`ドしたところまで壅伏
 ? gだけど
 ? C嬬富なめ
ストリ`ミング喘プロトコル
 ?   RTP?RTSP
 ?   MMS?MMSH
 ?   RTMP?RTMPH?RTMFP
 ?   HTTP Live Streaming
 ?   PCP




                           4
FLV盾h
どうしてこうなった
FLVとは
? Flashで聞われるコンテナフォ`マット
? シンプルでストリ`ミングもしやすい
? 碧は http://www.adobe.com/devnet/f4v.html
    ? F4Vの碧だけど瘁ろの圭におまけでFLVもいてある
? RTMPでストリ`ミングするときのパケットと(ほぼ)揖じ




                                              6
ファイルフォ`マット
サイズ 9       4   11+   4     ... 11+   4
坪否   ファイル   0   FLVタグ 念のタグ ... FLVタグ 念のタグ
     ヘッダ              のサイズ           のサイズ


? 畠悶議にビッグエンディアン
? 1つのFLVタグに啌?咄蕗?メタデ`タのいずれかが秘る
? 児云議にFLVタグがKんでるだけなのでg




                                            7
ファイルヘッダI囃
 バイト了崔 1     2     3   4        5     6 7   8   9
 坪否      'F' 'L'   'V' バ`ジョン    タイプフラグ デ`タ_兵了崔
                       (0x01)          (0x09)

ファイル枠^にあるファイルヘッダ
タイプフラグで啌?咄蕗が秘っているかどうかを登e
 ? 咄蕗が秘ってたら和から3ビット朕が1 (0x04)
 ? 啌颪秘ってたら和から1ビット朕が1 (0x01)
 ? 啌?咄蕗は光1ストリ`ムずつだけ秘れられる
      ? 険咄蕗とかはできない




                                                    8
FLVタグ
了崔 1      2 3 4 5      6   7   8         9   10   11   ...
坪否 デ`タ    デ`タ   タイムスタンプ        タイムスタンプ   ストリ`ムID       デ`タ
   Ne     サイズ                  蛍       (0)

gHのデ`タが秘るg了
デ`タNeによって坪否がかわる
 ? 咄蕗 = 0x08
 ? 啌 = 0x09
 ? スクリプト = 0x12 = 18
タイムスタンプ
 ? ファイル枠^からのミリ昼g了のタイムスタンプ
 ? 24ビットで吝れたら蛍のところに貧了8ビットが秘る




                                                             9
咄蕗デ`タ
    了崔     1        ...                 ...
    坪否     フォ`マット秤 (弖紗フォ`マット秤)        gデ`タ

フォ`マット秤                           #          コ`デック
 ? コ`デック桑催?サンプリング巓襖方?ビット方?         0          PCM(BE)
   チャンネル方なんかが秘ってる                  1          ADPCM
    ? さらにしくは碧歌孚                 2          MP3
 ? コ`デック桑催は嘔燕の湖じ                   3          PCM(LE)
AACのみ弖紗フォ`マット秤鵑つく                 4          Asao 16kHz mono
gデ`タの坪否はswfの碧がしい                5          Asao 8kHz mono
                                   6          Asao
                                   10         AAC
                                   11         Speex




                                                                10
啌颯禰`タ
    了崔     1        ...                ...
    坪否     フォ`マット秤 (弖紗フォ`マット秤)       gデ`タ

咄蕗とだいたい揖じ                          #         コ`デック
フォ`マット秤                           2         Sorenson H.263

 ? コ`デックIDの麿にフレ`ム秤鵑眸襪辰討           3         Screen video
    ? キ`フレ`ムだとか嶄gフレ`ムだとか           4         On2 VP6
 ? 聞えるコ`デックは嘔燕の湖じ                  5         VP6+αチャンネル
gデ`タの坪否はやっぱりswfの碧がしい            6         Screen video 2
                                   7         AVC (H.264)
 ? Screen videoコ`デックの坪否もそこに




                                                              11
スクリプトデ`タ
     了崔 1           ...
     坪否 メソッド兆(猟忖双) 哈方(塘双かオブジェクト)

FLVの蒙羿弔覆箸海
ActionScriptのメソッド柵び竃しデ`タが秘る
 ? ビデオにプレイヤ`耕嗤のデ`タを托めzめる
光猟忖双やオブジェクトデ`タはAMF0で鯉{される
 ? FLVの碧に畠何いてあるので櫃砲靴覆てよい
タイトル?恬宀?ビットレ`ト吉のメタデ`タもスクリプトタグで秘る
 ? メソッド兆 = onMetaData
 ? 哈方 = ECMAArray(プロパティの塘双)
その麿プレイヤ`に耕嗤の凋綜も托めzめる(はず)




                                   12
FLVとストリ`ミング
ストリ`ミングしやすいフォ`マット
A咾里覆ぅ戰き
 ? 念もってデ`タLがわからなくてもき竃せる
 ? どんどんファイルが阜ばせるのでライブストリ`ミングも辛嬬
タグg了で鏡羨している
 ? 匯何のデ`タが欧譴討睛蕉个ら}なく壅伏できる
 ? ファイルヘッダは駅勣だけど弌さい
揖豚が函りやすい
 ? 余嶄でデ`タ鯛ちや晒けがk伏しても肝のタグを冥すのがS
 ? 協豚議にタグヘッダが竃Fする
 ? タグのあとにはタグのサイズがくる




                                  13
おまけ
PEERCASTで
塘佚するには
ここからが云}
FLV塘佚はyしい
PeerCastStationでは
 ? 1.2.0F壓、メタデ`タは函れてない
     ? これいてるうちに鬉気擦
 ? 
     ? PeerCastStation
     ? パッチ輝てたPeerCastIM
 ? YP貧ではUNKNOWNQいになる
     ? パッチ輝てたPeerCast聞ったYPならFLV
塘佚箸呂覆鵑箸なるけど箸鬫慴なのはむずかしい




                                  15
FLV塘佚はyしい その2
エンコ`ダ?ストリ`ミングサ`バの}
〜 Flash Media Live Encoder
 ? ストリ`ミングはFlash Media ServerへのPushのみ
 ? FLVはファイルへの隠贋のみ
@ ffserver
 ? O協がyしい
 ? Windowsではバイナリがない
@ VLC
 ? H.264聞えばいけそうだが嶷すぎる
@ ffmpeg + 鏡徭ストリ`ミングサ`バ
  ? O協さえできれば聞えそう
  ? GUI恬るのがめんどい




                                        16
FLV塘佚はyしい その3
プレイヤ`の}
Windows Media Playerなどでは覆敗拮できない
  ? ffdshow議なeなコ`デックパックが駅勣
  ? 秘れてもらえるか
Flashベ`スのプレイヤ`
  ? PeerCastのHTML坪にO崔しないとれない
  ? すごいめんどい
AIRベ`スのプレイヤ`
 ? あればれると房う
 ? あればな
 ? やっぱりインスト`ルの}はある




                                    17
FLV塘佚の旋泣
採かいいことあるのか
H.264が聞える
  ? x264は瞳|嶷のようで嶷すぎる
  ? HWエンコ`ダを聞いたい
VP6が聞える
  ? ffmpegで聞った湖じでは_でもXくもない´´
Flash Screen Video 2が聞える
 ? プログラミング塘佚にいい湖じ
スクリプトタグが聞える
  ? プレイヤ`?エンコ`ダが匯凄で恬れれば中易いことができそう
RTMPからのQがg




                                    18
RTMP★FLVサ`バ
RTMPストリ`ミングからFLVへのQが曳^議g
  ? RTMPのメッセ`ジとFLVタグの夛がほぼ揖じ
  ? Muxがとてもg
RTMPで鞭佚★FLVで塘佚するストリ`ミングサ`バが恬れそう
 ? Flashから塘佚とかできる
 ? 偏のUstreamとかに塘佚できるエンコ`ダ?カメラ吉が聞えるか
   も




                                       19
まとめ
FLVの夛はg
PeerCastでの塘佚はyしいが´´
 ? RTMP★FLVサ`バがあると瑤レがる
みんなで恬ろう




                          20
歌深猟
FLV and F4V File Format Specification (Version 10.1)
 ? http://www.adobe.com/devnet/f4v.html
SWF File Format Specification (version 19)
  ? http://www.adobe.com/devnet/swf.html
Real-Time Messaging Protocol (RTMP) specification
  ? http://www.adobe.com/devnet/rtmp.html




                                                       21

More Related Content

ライブストリ`ミングの児粥岑紛その2

  • 2. おさらい 念指のおさらい ? ビデオフォ`マットの ? ストリ`ミングプロトコルの 2
  • 3. ビデオフォ`マット コ`デック ? Rs圭隈 ? WMV9?H.264?VP6?VP8?Theoraなどなど ? WMA?AAC?MP3?Vorbisなどなど コンテナ ? ファイル夛 ? ASF?MP4?FLV?Ogg?MKVなどなど 3
  • 4. プロトコル HTTPプログレッシブダウンロ`ド ? ダウンロ`ドしたところまで壅伏 ? gだけど ? C嬬富なめ ストリ`ミング喘プロトコル ? RTP?RTSP ? MMS?MMSH ? RTMP?RTMPH?RTMFP ? HTTP Live Streaming ? PCP 4
  • 6. FLVとは ? Flashで聞われるコンテナフォ`マット ? シンプルでストリ`ミングもしやすい ? 碧は http://www.adobe.com/devnet/f4v.html ? F4Vの碧だけど瘁ろの圭におまけでFLVもいてある ? RTMPでストリ`ミングするときのパケットと(ほぼ)揖じ 6
  • 7. ファイルフォ`マット サイズ 9 4 11+ 4 ... 11+ 4 坪否 ファイル 0 FLVタグ 念のタグ ... FLVタグ 念のタグ ヘッダ のサイズ のサイズ ? 畠悶議にビッグエンディアン ? 1つのFLVタグに啌?咄蕗?メタデ`タのいずれかが秘る ? 児云議にFLVタグがKんでるだけなのでg 7
  • 8. ファイルヘッダI囃 バイト了崔 1 2 3 4 5 6 7 8 9 坪否 'F' 'L' 'V' バ`ジョン タイプフラグ デ`タ_兵了崔 (0x01) (0x09) ファイル枠^にあるファイルヘッダ タイプフラグで啌?咄蕗が秘っているかどうかを登e ? 咄蕗が秘ってたら和から3ビット朕が1 (0x04) ? 啌颪秘ってたら和から1ビット朕が1 (0x01) ? 啌?咄蕗は光1ストリ`ムずつだけ秘れられる ? 険咄蕗とかはできない 8
  • 9. FLVタグ 了崔 1 2 3 4 5 6 7 8 9 10 11 ... 坪否 デ`タ デ`タ タイムスタンプ タイムスタンプ ストリ`ムID デ`タ Ne サイズ 蛍 (0) gHのデ`タが秘るg了 デ`タNeによって坪否がかわる ? 咄蕗 = 0x08 ? 啌 = 0x09 ? スクリプト = 0x12 = 18 タイムスタンプ ? ファイル枠^からのミリ昼g了のタイムスタンプ ? 24ビットで吝れたら蛍のところに貧了8ビットが秘る 9
  • 10. 咄蕗デ`タ 了崔 1 ... ... 坪否 フォ`マット秤 (弖紗フォ`マット秤) gデ`タ フォ`マット秤 # コ`デック ? コ`デック桑催?サンプリング巓襖方?ビット方? 0 PCM(BE) チャンネル方なんかが秘ってる 1 ADPCM ? さらにしくは碧歌孚 2 MP3 ? コ`デック桑催は嘔燕の湖じ 3 PCM(LE) AACのみ弖紗フォ`マット秤鵑つく 4 Asao 16kHz mono gデ`タの坪否はswfの碧がしい 5 Asao 8kHz mono 6 Asao 10 AAC 11 Speex 10
  • 11. 啌颯禰`タ 了崔 1 ... ... 坪否 フォ`マット秤 (弖紗フォ`マット秤) gデ`タ 咄蕗とだいたい揖じ # コ`デック フォ`マット秤 2 Sorenson H.263 ? コ`デックIDの麿にフレ`ム秤鵑眸襪辰討 3 Screen video ? キ`フレ`ムだとか嶄gフレ`ムだとか 4 On2 VP6 ? 聞えるコ`デックは嘔燕の湖じ 5 VP6+αチャンネル gデ`タの坪否はやっぱりswfの碧がしい 6 Screen video 2 7 AVC (H.264) ? Screen videoコ`デックの坪否もそこに 11
  • 12. スクリプトデ`タ 了崔 1 ... 坪否 メソッド兆(猟忖双) 哈方(塘双かオブジェクト) FLVの蒙羿弔覆箸海 ActionScriptのメソッド柵び竃しデ`タが秘る ? ビデオにプレイヤ`耕嗤のデ`タを托めzめる 光猟忖双やオブジェクトデ`タはAMF0で鯉{される ? FLVの碧に畠何いてあるので櫃砲靴覆てよい タイトル?恬宀?ビットレ`ト吉のメタデ`タもスクリプトタグで秘る ? メソッド兆 = onMetaData ? 哈方 = ECMAArray(プロパティの塘双) その麿プレイヤ`に耕嗤の凋綜も托めzめる(はず) 12
  • 13. FLVとストリ`ミング ストリ`ミングしやすいフォ`マット A咾里覆ぅ戰き ? 念もってデ`タLがわからなくてもき竃せる ? どんどんファイルが阜ばせるのでライブストリ`ミングも辛嬬 タグg了で鏡羨している ? 匯何のデ`タが欧譴討睛蕉个ら}なく壅伏できる ? ファイルヘッダは駅勣だけど弌さい 揖豚が函りやすい ? 余嶄でデ`タ鯛ちや晒けがk伏しても肝のタグを冥すのがS ? 協豚議にタグヘッダが竃Fする ? タグのあとにはタグのサイズがくる 13
  • 15. FLV塘佚はyしい PeerCastStationでは ? 1.2.0F壓、メタデ`タは函れてない ? これいてるうちに鬉気擦 ? ? PeerCastStation ? パッチ輝てたPeerCastIM ? YP貧ではUNKNOWNQいになる ? パッチ輝てたPeerCast聞ったYPならFLV 塘佚箸呂覆鵑箸なるけど箸鬫慴なのはむずかしい 15
  • 16. FLV塘佚はyしい その2 エンコ`ダ?ストリ`ミングサ`バの} 〜 Flash Media Live Encoder ? ストリ`ミングはFlash Media ServerへのPushのみ ? FLVはファイルへの隠贋のみ @ ffserver ? O協がyしい ? Windowsではバイナリがない @ VLC ? H.264聞えばいけそうだが嶷すぎる @ ffmpeg + 鏡徭ストリ`ミングサ`バ ? O協さえできれば聞えそう ? GUI恬るのがめんどい 16
  • 17. FLV塘佚はyしい その3 プレイヤ`の} Windows Media Playerなどでは覆敗拮できない ? ffdshow議なeなコ`デックパックが駅勣 ? 秘れてもらえるか Flashベ`スのプレイヤ` ? PeerCastのHTML坪にO崔しないとれない ? すごいめんどい AIRベ`スのプレイヤ` ? あればれると房う ? あればな ? やっぱりインスト`ルの}はある 17
  • 18. FLV塘佚の旋泣 採かいいことあるのか H.264が聞える ? x264は瞳|嶷のようで嶷すぎる ? HWエンコ`ダを聞いたい VP6が聞える ? ffmpegで聞った湖じでは_でもXくもない´´ Flash Screen Video 2が聞える ? プログラミング塘佚にいい湖じ スクリプトタグが聞える ? プレイヤ`?エンコ`ダが匯凄で恬れれば中易いことができそう RTMPからのQがg 18
  • 19. RTMP★FLVサ`バ RTMPストリ`ミングからFLVへのQが曳^議g ? RTMPのメッセ`ジとFLVタグの夛がほぼ揖じ ? Muxがとてもg RTMPで鞭佚★FLVで塘佚するストリ`ミングサ`バが恬れそう ? Flashから塘佚とかできる ? 偏のUstreamとかに塘佚できるエンコ`ダ?カメラ吉が聞えるか も 19
  • 21. 歌深猟 FLV and F4V File Format Specification (Version 10.1) ? http://www.adobe.com/devnet/f4v.html SWF File Format Specification (version 19) ? http://www.adobe.com/devnet/swf.html Real-Time Messaging Protocol (RTMP) specification ? http://www.adobe.com/devnet/rtmp.html 21