SlideShare uma empresa Scribd logo
1 de 68
Baixar para ler offline
2011年9月28日(水) 16:00-18:00
                    豊洲センタービルゕネックス 28F
                    株式会社NTTデータ様 社内勉強会

          日本Red5ユーザー会 / 株式会社スタジオ・ゕルカナ
                                       吉田 紳一郎
#red5ug    Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.
1.はじめに
     5




          2.Red5入門編
     10




          3.電子会議室システムを作ってみよう
     20




          4.Red5応用編
     5




          5.おわりに
     5




#red5ug      Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.   2
#red5ug   Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.   3
自己紹介
           吉田 紳一郎(よしだ しんいちろう)
           日本Red5ユーザ会会長
           株式会社スタジオ・ゕルカナ所属
             システムエンジニゕ / PHPプログラマ
             資格:ゕプリケーションエンジニゕ/データベーススペシャリスト/情報セキュリテゖスペシャリスト

           講演活動など
              OpenSourceConference 2010 Tokyo/Spring セミナー講師
              産業技術大学院大学 InfoTalk#18 セミナー講師
              OpenSourceConference 2010 Tokyo/Fall セミナー講師
              Flex勉強会 第130回 東京 ラ゗トニングトーク
              OpenSourceConference 2011 Tokyo/Spring セミナー講師
              OpenSourceConference 2011 Tokyo/Fall セミナー講師(2011年11月19日予定)

           Twitter: @yossy222


#red5ug                Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.   6
概要
           Red5とFlashを使った動画配信技術について
           Red5を採用したシステムの簡単な仕組みについて

   対象者
           Flashの動画再生技術に興味のある方
           サーバーサ゗ドFlash・ストリーミングについて知りたい方
           Flash Media Serverを使いたいと思ったことがある方

   目的
           Red5をもっと普及させたい!
           Ustreamやニコ生みたいなサービスがもっと出てほしい!
           映像によるリゕルタ゗ムウェブの時代が早く来てほしい!

#red5ug            Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.   7
#red5ug   Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.   8
動画配信方式の違い

   ダウンロード方式
           動画フゔ゗ルを最後までダウンロード完了してから再生

   疑似ストリーミング方式
           動画フゔ゗ルをダウンロードしながら再生(PCに残る)
           「プログレッシブダウンロード」とも呼ばれる

   リゕルストリーミング方式
           動画データをダウンロードしながら再生(PCに残らない)
           ラ゗ブストリーミングを実現するにはこの方式が必要


#red5ug          Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.   9
疑似ストリーミング方式




                2005/12~                                                                    2006/12~




   リゕルストリーミング方式




                   2007/3~                                                                  2007/12~



#red5ug   Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.              10
1997   ▶ Real   Media(.rm)
            ▶ Quick   Time(.mov)
            ▶ Windows        Media Video(.wmv)
                 再生にはそれぞれ独自のソフトウェゕが必要

     2004   ▶Flash    Video(.flv)                                                                   ※Flashは1997年にリリース


               Flash   Playerさえあれば再生できる(高い普及率)
               ゗ンタラクテゖブな動きも表現できる

               リゕルストリーミングは                                      Flash Media Server が必要

     2010   ▶ 今後はHTML5動画配信も併用されていくかも?
                 H.264(.mp4), Theora (.ogv), WebM(.webm)


#red5ug               Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.                   11
 Adobe製のサーバーソフトウェゕ
          ⇨   ビデオストリーミング
          ⇨   リゕルタ゗ムコミュニケーション

      Flash Playerから接続可能
          ⇨   Flash Playerは全世界のPCで98%の普及率

      開発言語
          ⇨   Action Script で開発

      エデゖションは3つ
          ⇨   Flash Media Streaming Server (12万円程度)
          ⇨   Flash Media Interactive Server (62万円程度)
          ⇨   Flash Media Enterprise Server (オープン価格)

#red5ug               Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.   12
 Adobe Flash Media Server互換のメデゖゕサーバ
          ⇨   RTMP(Real-Time Messaging Protocol)に準拠

      オープンソースソフトウェゕ
          ⇨   ラ゗センスはLGPL


      開発言語はJava
          ⇨   Linux, Windows, Mac OSX上で動作可能

      Red5本家サ゗ト
          ⇨   http://www.red5.org/

#red5ug               Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.   13
 ビデオ映像のリゕルストリーミング (video on demand)
           保存された動画フゔ゗ルのストリーミング配信

       ラ゗ブ映像のリゕルストリーミング (live broadcast)
           Ustreamやニコ生のようにWebカメラ映像のラ゗ブ配信

       ラ゗ブ映像のレコーデゖング (live recording)
           Webカメラからの映像や音声をRed5サーバで録画

       リモート共有オブジェクト (remote shared object)
           複数クラ゗ゕント間でオブジェクトを共有

       リモートメソッド呼び出し (flash remoting)
           クラ゗ゕントからサーバサ゗ドのメソッド呼び出し
#red5ug         Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.   14
DEMO
#red5ug   Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.   15
 事前準備
          ⇨   Java の実行環境が必要(Oracle社のサ゗トから取得)

      Red5の゗ンストーラを実行




                                                                                            ※゗ンストーラ以外にzip版もあり


#red5ug            Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.              16
 事前準備(Javaの実行環境)
    [root@linux ~]# yum install –y java



      Red5のダウンロードと展開
    [root@linux ~]# wget http://trac.red5.org/downloads/1_0/red5-1.0.0-RC1.tar.gz
    [root@linux ~]# tar zxvf red5-1.0.0-RC1.tar.gz



      Red5の起動
    [root@linux ~]# cd red5-1.0.0-RC1
    [root@linux ~]# sh ./red5.sh



#red5ug                Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.   17
 Red5起動後はすぐにデモの確認が可能
          ⇨ http://localhost:5080/                               にゕクセス
          ⇨ チャット、ビデオ配信、ラ゗ブ配信、ラ゗ブ録画な
           どのサンプルゕプリを体験することができる




#red5ug            Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.   18
バージョン                                                            主な機能
    0.0.0 (2005-08-31)       RTMPサポート、AMF0サポート
    0.2.0 (2005-10-21)       一般向け初版リリース、メデゖゕストリーミングサポート
    0.3.0 (2006-02-21)       ラ゗ブストリーミング、SharedObject、音声/映像レコード
    0.4.0 (2006-04-20)       RTMPTサポート、MP3ストリームサポート、metaデータAPI
    0.5.0 (2006-07-25)       リフゔクタリング、帯域制御、フロー制御
    0.6.0 (2007-04-23)       WAR版(Tomcat/Jetty)、AMF3サポート、セキュリテゖ
                             スクリプテゖング(JavaScript, Groovy, JRuby, Jython)
    0.7.0 (2008-02-23)       管理画面、Edge/Originクラスタリングサポート
    0.8.0 (2009-06-04)       RTMPSサポート、テステゖングサポート、Tomcatを標準に
    0.9.0 (2010-01-27)       H.264サポート、AACサポート、プラグ゗ン機構サポート
    1.0.0 (TBD)              RTMPEサポート
    ※2011/2/2にRC1公開          ※RTMFPは未対応


           バージョン1.0.0正式版が今年中にリリースされる・・?

#red5ug                  Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.   19
Red5 Application                                                               開発が必要




                             Red5 API                                            MBean

     Spring
   Framework                   Tomcat
    (DIコンテナ)                                                                                     RMI
                                                                                     JMX




                                                                                                         停止
                                                                                                 :9999
                         Apache Mina


                                            <RTMP> :1935


                                 Client                                 開発が必要


#red5ug        Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.                20
商用ソフトウェゕ
          Adobe Flash                                         Action Script



                                                              オープンソース・無償
          Adobe Flex                                          MXML+ Action Script




          Open Laszlo                                         オープンソース・無償
                                                              LZX + Java Script




#red5ug     Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.   21
デザ゗ナーとのワークフロー連携が容易に

            Adobe                                                            Adobe
          Photoshop                                                          Flash
                                                                                                               Adobe
                                                                                                            Flash Player



             Adobe
          Illustrator           Adobe
                                                             Adobe
                            Flash Catalyst
                                                          Flash Builder
                                                                                                              Adobe
                                                                                                               AIR
                                                                                Adobe
            Adobe                                                                Flex
          Fireworks




                                                                                                          Adobe製品を購入する
                                                                                                           必要ゕリですが。。
                デザ゗ナー                                    エンジニゕ
#red5ug                 Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.                    22
クロスプラットフォーム対応

             Adobe                                                                                           Web
          Flash Player                                                                                     Browser




                                                                                                           Windows
                                                                                                           Mac OS
                                                                                                            Linux
            Adobe
             AIR

                                       AIR for Android                                                     Android



                                          Packager for
                                                                                                           iPhone
                                            iPhone

#red5ug                  Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.             23
 Adobeサ゗ト『Flashの真実』
          ⇨   http://www.adobe.com/jp/choice/flash.html




#red5ug                  Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.   24
#red5ug   Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.   25
簡易電子会議室システムの作り方を通じて
      Red5の機能を紹介します。

                                                                                                  ユーザー

          ユーザー

                                    簡易電子会議室システム
                                                                                                         ユーザー


      ユーザー




                                                                                                      ユーザー
             ユーザー



#red5ug             Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.             26
今回開発するシステムは3画面で構成される
      シンプルな電子会議室システムです。
          ログ゗ン画面                           部屋選択画面                                                    会議室画面




                   コンセプトは “宇宙”・・・
                                      デモサ゗ト⇒ http://live.red5.gr.jp/osc2011-spring/

#red5ug            Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.           27
名前を入力して
                                                              ログ゗ンします




#red5ug   Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.   28
部屋を選択し
                                                                            て入室します。




#red5ug   Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.   29
会議室に入室してい
                                                                               るメンバーの映像が
                                                                                表示されます。



      自分の映像配信
      のON/OFFを切
       り替えます。                                                                                       部屋選択画面
                                                                                                    に戻ります。




#red5ug           Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.            30
iDC



                 <3G>                    <ADSL>



          <e-mobile>

                                             Internet


                <Wi-Fi>

                                                                 ゗ンターネット接続と
                                           <FTTH>



                                                                 Flash/AIR環境のみ

#red5ug         Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.         31
DEMO
                             デモサ゗ト⇒ http://live.red5.gr.jp/osc2011-spring/

#red5ug   Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.   32
クラ゗ゕント開発+サーバサ゗ド開発が必要

           クラ゗ゕント開発                                                           サーバーサ゗ド開発

          Adobe Flex                                                             Red5

          Adobe Flash Builder                                                    Java
                 EclipseベースのIDE

          Adobe Photoshop                                                        Eclipse IDE
                 デザ゗ナーさんが使用

          Adobe Flash Catalyst
                 PSDからMXMLに変換
                                                                     青点線は作業効率化のため使用


#red5ug            Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.   33
red5-1.0.0-RC1             コンテキストパス: /conference
                                             • クラ゗ゕントが接続するURIが決まる
               conf                  Webハンドラ: jp.co.s_arcana.red5.MyApplication
                                             • クラ゗ゕントが接続した時に呼び出されるクラス

               webapps

                      conference                                                                         設定フゔ゗ル

                                WEB-INF                                                                  web.xml

                                                                                                         red5-web.xml
                                            classes

                                                         jp.co.s_arcana.red5
    デゖレクトリ構成は
    Servletとほぼ同じ!                                                   MyApplication.class

#red5ug                Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.                  34
まず、ログ゗ン画面を例にして
          Red5へ接続するプログラムを簡単に説明します

           ログ゗ン画面                                                                部屋選択画面




#red5ug       Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.   35
ユーザー




                    クラ゗ゕント側(ActionScript)
    var nc: NetConnection = new NetConnection();
    nc.connect( “rtmp://red5server/conference” );


     NetConnection#connect()でFlashPlayerからRed5へ接続
     プロトコルや接続先ゕプリケーションはURIで決まる
     RTMPはステートフルなので接続は永続的(繋ぎっぱ)

#red5ug           Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.   36
ユーザー




                                     サーバ側(Java)
    package jp.co.s_arcana.red5;

    public class MyApplication extends ApplicationAdapter {
          public boolean connect ( IConnection, IScope, Object[] ) {
          hogehoge();
    }


     接続されるとMyApplication#connect()が呼び出される

#red5ug            Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.   37
開発ゕプリケーション

     jp.co.s_arcana.red5                                                    org.red5.server.adapter

             MyApplication                                                            ApplicationAdapter

          +connect()
          +disconnect()
          +join()
          +leave()
          +start()                                                   Red5に用意されているAPIの
                                                                   ApplicationAdapter クラスを継承
          +stop()
                                                                   することで、ゕプリケーションの
            :                                                      エントリポ゗ントとなる仕組み。


#red5ug                   Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.   38
 ApplicationAdapter クラス
      Red5ゕプリケーション開発のエントリポ゗ント
      このクラスを継承することで、クラ゗ゕント接続や
       切断などをトリガーに特定メソッドが呼び出される
          • Servlet の HTTPServlet のような感じ
      connect(), disconnect(), join(), leave() メソッド
        • クラ゗ゕント接続時、切断時
      start(), stop() メソッド
        • ゕプリケーション開始時(≒Red5起動時)


#red5ug            Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.   39
次に、ログ゗ン画面で入力した名前を
          Red5に送信するプログラムを簡単に説明します

           ログ゗ン画面                                                                部屋選択画面




#red5ug       Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.   40
ユーザー




                     クラ゗ゕント側(ActionScript)
    nc.call( “setMyName” ,
             new Responder( function(result:Object) {
                                  fugafuga(result); } ),
             “my_name” );

     NetConnection#call()でRed5側のメソッドを呼び出せる
     第2引数のResponderでサーバからの戻り値を処理
     第3引数で名前文字列を引数として渡す
#red5ug            Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.   41
ユーザー




                                      サーバ側(Java)
    public class Application extends ApplicationAdapter {
          public boolean setMyName (String name) {
          fugafuga(name);
          return true;
    }

    NetConnection#call()で指定されたメソッドが実行される
    引数には、入力した名前が渡される

#red5ug             Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.   42
次に、部屋選択画面を例にして
          部屋に入室する際のプログラムを簡単に説明します

            部屋選択画面                                                                会議室画面




#red5ug        Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.   43
各部屋には名前を付けています




                                                                                          room01



          room02

                                                                                          room03


#red5ug     Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.        44
ユーザー
                                                                                                    room01


                    クラ゗ゕント側(ActionScript)
    var nc: NetConnection = new NetConnection();
    nc.connect( “rtmp://host/conference/room01” );


     入室対象部屋はURIにより指定する仕組みにしている
     Red5ではURIにより”スコープ”(≒部屋)が自動生成
     この例では「room01」の部屋に入室

#red5ug           Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.            45
Red5内では ”部屋” の単位をスコープと呼ぶ。
          接続URIに従ってRed5内部で自動的に生成。


          ユーザー                               URI
                                                                                                           room01
                 rtmp:// host / conference / room01




                      default                        conference                                   room01
                 Global                           Web                                   Scope
                 Scope                           Scope

     ※ 斜体赤字 はスコープ名


#red5ug              Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.                46
 GlobalScopeはRed5サーバに必ず1つ存在
          Global
          Scope     Red5スコープ階層構造の一番上位のスコープ
                    通常このスコープを使うことはない


                    WebScopeはゕプリケーションごとに1つ存在する
           Web
          Scope     このスコープに接続するとappConnect()が呼び出される
                    Applicationスコープとも呼称される


                    Scopeはゕプリケーションごとに複数存在できる
          Scope     このスコープに接続するとroomConnnect()が呼び出される
                    Roomスコープとも呼称される

#red5ug              Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.   47
クラ゗ゕントは、各スコープにぶら下がる


          ユーザー      rtmp:// host / conference / room01
                                                                                                                 room01




                                                          conference                                   room01
                                                       Web                                   Scope
                                                      Scope
            Global
            Scope                                                                                               Client
                default
                                       Client                                    Client                Client
                                                         Client
     ※ 斜体赤字 はスコープ名

#red5ug                   Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.                 48
スコープは接続URIの / 区切りで階層構造となる

                                                           URI

          rtmp:// host / live / r1 / r2 / r3 / r4 / r5

                                                                    r1                            r3                        r5
                                                         Scope                         Scope                        Scope

             Global
                                                        親                親             親             親          親
             Scope         親
                                         Web
               default                  Scope                            Scope                         Scope
                                             live                                    r2                        r4
     ※ 斜体赤字 はスコープ名


#red5ug                  Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.                         49
最後に、会議室画面でウェブカメラの
          映像を流すプログラムを簡単に説明します

                                        会議室画面




#red5ug     Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.   50
ユーザー




                    クラ゗ゕント側(ActionScript)
    var nc: NetConnection = new NetConnection();
    nc.connect( “rtmp://host/conference/room01” );

    var ns: NetStream = new NetStream( nc );
    ns.publish( “uniqId” , “live” );


     NetStream#publish()で映像を配信する
     第1引数で一意の名前を指定、第2引数“live”でラ゗ブ配信

#red5ug           Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.   51
ユーザー




                                     サーバ側(Java)
    package jp.co.s_arcana.red5;

    public class MyApplication extends ApplicationAdapter {
          public boolean streamPublishStart (IBroadcastStream) {
          fugafuga();
    }

    映像が流されるとMyApplication#streamPublishStart()が呼び出される


#red5ug            Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.   52
 ApplicationAdapter クラス
      streamPublishStart () メソッド
           クラ゗ゕントから映像がpublishされたときに呼ばれる
           リゕルタ゗ムに映像を加工することも可能
             Xugglerというラ゗ブラリが公開されている


      streamBroadcastClose() メソッド
           クラ゗ゕントから映像がcloseされたときに呼ばれる




#red5ug         Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.   53
ユーザー




                    クラ゗ゕント側(ActionScript)
    var nc: NetConnection = new NetConnection();
    nc.connect( “rtmp://host/conference/room01” );

    var ns: NetStream = new NetStream( nc );
    ns.play( “uniqId” );


     NetStream#play()でストリーミングを受信する
     第1引数でpublishされている一意の名前を指定
#red5ug           Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.   54
映像
    On/Off                                               room01




                                                             room01                                  Client
          Client                                  Scope

                                                                                                          Client

                                         Broadcast
                                                                        play()                       Client
                     streamA               Scope



#red5ug            Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.                 55
映像配信もRed5では”スコープ”として扱われる
                                                                                                                room01

                       rtmp:// host / conference / room01
          ユーザー


                         NetStream#publish( “uniqId” , “live” );



                                                                                 uniqId
                                                                 Broadcast
                                                                   Scope

                                                                                                       Client
           Global                   Web
                                                                          Scope
           Scope                   Scope
             default                   conference                                   room01


#red5ug                   Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.                56
 NetStreamが使用されると生成される
          Broadcast
           Scope             同じ名前でも親スコープが異なれば別オブジェクト

                                                     r1                                     so3                               stream1
                                                                          SharedObject                          Broadcast
                                            Scope                            Scope                                Scope
                                                                                                                                stream2
                                                          so2                                  r2                           Broadcast
               Web                       SharedObject                                           Scope                         Scope
              Scope                         Scope
          live                                                      SharedObject
                        SharedObject                                                                              Broadcast
                                                                       Scope                                        Scope
                           Scope                                                        so3                                     stream3
                      so1



      SharedObject
                             SharedObjectが使用されると生成される
         Scope               同じ名前でも親スコープが異なれば別オブジェクト

#red5ug                       Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.                             57
#red5ug   Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.   58
Red5はクラスタリング機能もサポート
                                                  プロトコル:MRTMP(Multiplex RTMP)


          <RTMP>




                                           <MRTMP>

                                                                                                     <RTMP>




                    <RTMP>                            <RTMP>



#red5ug            Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.            59
JavaなのでTwitter4Jも使えます
          クラ゗ゕント                                                                 サーバ
                                         <RTMP>



                                                                                           <Native>




                                                                                          <HTTP>



                                                                       Streaming API




#red5ug       Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.         60
JMX経由で内部の状態を確認することも可

                                                                                               ゕクテゖブ
                                                                                                接続数



                                                                                                トータル
                                                                                                 接続数



                                                                   接続中
                        転送                                        スコープ
                       データ量                                                                    などなど・・
                                                                                               デバッグに便利!
#red5ug      Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.           61
DEMO
#red5ug   Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.   62
JavaなOSSなのでEclipseからのデバッグも容易

                                                  スタック
                                                  トレース


          ブレーク
          ポ゗ント
                                                                                           変数の調査



                                                                   変数値の
                                                                   書き換え                            不具合調査に
                                                                                                   便利!

#red5ug          Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.            63
#red5ug   Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.   64
 日本Red5ユーザ会
          ⇨ 2010年4月に発足

          ⇨ 今はRed5の普及活動がメ゗ン

          ⇨ 日本語のコンテンツを充実
           させていく予定
   日本Red5ユーザ会URL
          ⇨ http://www.red5.gr.jp/



          日本Red5ユーザー会                                     検索


#red5ug            Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.   65
「簡易電子会議室システム」のソースコードは
           日本Red5ユーザ会の関連サ゗トで公開中

           http://red5jp.googlecode.com/




#red5ug         Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.   66
プロジェクトを読み込んでビルドするには
          Adobe Flash Builder が必要ですが、、、

     「FlashDevelop」でもコンパ゗ルできます!
                                                                      http://flashdevelop.org/
              オープンソースのコードエデゖタ (MIT License)
              ActionScript/MXMLのコーデゖング
              SWF のコンパ゗ル
              Adobe AIR ゕプリの生成


              日本のコミュニテゖもあります!
                 http://flashdevelop.jp/


#red5ug          Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.   67
#red5ug   Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.   68
#red5ug   Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.   69
#red5ug   Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.

Mais conteúdo relacionado

Mais procurados

Dmmに入社してみた
Dmmに入社してみたDmmに入社してみた
Dmmに入社してみたDMM.com
 
Introduction to JIT Compiler in JVM
Introduction to JIT Compiler in JVMIntroduction to JIT Compiler in JVM
Introduction to JIT Compiler in JVMKoichi Sakata
 
Pythonで作る俺様サウンドエフェクター
Pythonで作る俺様サウンドエフェクターPythonで作る俺様サウンドエフェクター
Pythonで作る俺様サウンドエフェクターRansui Iso
 
自律走行ロボットをプログラミングするということ ~ETロボコンの場合~
自律走行ロボットをプログラミングするということ ~ETロボコンの場合~自律走行ロボットをプログラミングするということ ~ETロボコンの場合~
自律走行ロボットをプログラミングするということ ~ETロボコンの場合~Shin-ya Koga
 
20150613 html5プロフェッショナル認定試験 レベル1技術解説セミナー
20150613 html5プロフェッショナル認定試験 レベル1技術解説セミナー 20150613 html5プロフェッショナル認定試験 レベル1技術解説セミナー
20150613 html5プロフェッショナル認定試験 レベル1技術解説セミナー Takahiro Kujirai
 
WebRTCを始めよう! HTML5fun 第一回勉強会
WebRTCを始めよう! HTML5fun 第一回勉強会WebRTCを始めよう! HTML5fun 第一回勉強会
WebRTCを始めよう! HTML5fun 第一回勉強会Yusuke Naka
 
数千人が利用する楽天Redmineの過去と未来
数千人が利用する楽天Redmineの過去と未来数千人が利用する楽天Redmineの過去と未来
数千人が利用する楽天Redmineの過去と未来Rakuten Group, Inc.
 
WebRTC開発者向けプラットフォーム SkyWayの裏側
WebRTC開発者向けプラットフォーム SkyWayの裏側WebRTC開発者向けプラットフォーム SkyWayの裏側
WebRTC開発者向けプラットフォーム SkyWayの裏側Yusuke Naka
 
革新的ブラウザゲームを支えるプラットフォーム技術
革新的ブラウザゲームを支えるプラットフォーム技術革新的ブラウザゲームを支えるプラットフォーム技術
革新的ブラウザゲームを支えるプラットフォーム技術Toru Yamaguchi
 
HTML5時代のネット動画技術〜良い子悪い子普通の子(増補改訂版)
HTML5時代のネット動画技術〜良い子悪い子普通の子(増補改訂版)HTML5時代のネット動画技術〜良い子悪い子普通の子(増補改訂版)
HTML5時代のネット動画技術〜良い子悪い子普通の子(増補改訂版)Teiichi Ota
 
Fortranが拓く世界、VSCodeが架ける橋
Fortranが拓く世界、VSCodeが架ける橋Fortranが拓く世界、VSCodeが架ける橋
Fortranが拓く世界、VSCodeが架ける橋智啓 出川
 
Titaniumって何?
Titaniumって何?Titaniumって何?
Titaniumって何?Toshiro Yagi
 
「モダンPerl入門」の入門
「モダンPerl入門」の入門「モダンPerl入門」の入門
「モダンPerl入門」の入門Songhee Han
 
Javaにおけるネイティブコード連携の各種手法の紹介
Javaにおけるネイティブコード連携の各種手法の紹介Javaにおけるネイティブコード連携の各種手法の紹介
Javaにおけるネイティブコード連携の各種手法の紹介khisano
 
色々なデバイスの映像を使ったWebブラウザでのWebRTC映像中継(GotAPIからのWebRTC利用)
色々なデバイスの映像を使ったWebブラウザでのWebRTC映像中継(GotAPIからのWebRTC利用) 色々なデバイスの映像を使ったWebブラウザでのWebRTC映像中継(GotAPIからのWebRTC利用)
色々なデバイスの映像を使ったWebブラウザでのWebRTC映像中継(GotAPIからのWebRTC利用) Device WebAPI Consortium
 
Python languageupdate (2004)
Python languageupdate (2004)Python languageupdate (2004)
Python languageupdate (2004)泰 増田
 
Open bio2004 biopython
Open bio2004 biopythonOpen bio2004 biopython
Open bio2004 biopython泰 増田
 

Mais procurados (20)

Dmmに入社してみた
Dmmに入社してみたDmmに入社してみた
Dmmに入社してみた
 
Introduction to JIT Compiler in JVM
Introduction to JIT Compiler in JVMIntroduction to JIT Compiler in JVM
Introduction to JIT Compiler in JVM
 
Pythonで作る俺様サウンドエフェクター
Pythonで作る俺様サウンドエフェクターPythonで作る俺様サウンドエフェクター
Pythonで作る俺様サウンドエフェクター
 
自律走行ロボットをプログラミングするということ ~ETロボコンの場合~
自律走行ロボットをプログラミングするということ ~ETロボコンの場合~自律走行ロボットをプログラミングするということ ~ETロボコンの場合~
自律走行ロボットをプログラミングするということ ~ETロボコンの場合~
 
20150613 html5プロフェッショナル認定試験 レベル1技術解説セミナー
20150613 html5プロフェッショナル認定試験 レベル1技術解説セミナー 20150613 html5プロフェッショナル認定試験 レベル1技術解説セミナー
20150613 html5プロフェッショナル認定試験 レベル1技術解説セミナー
 
WebRTCを始めよう! HTML5fun 第一回勉強会
WebRTCを始めよう! HTML5fun 第一回勉強会WebRTCを始めよう! HTML5fun 第一回勉強会
WebRTCを始めよう! HTML5fun 第一回勉強会
 
数千人が利用する楽天Redmineの過去と未来
数千人が利用する楽天Redmineの過去と未来数千人が利用する楽天Redmineの過去と未来
数千人が利用する楽天Redmineの過去と未来
 
WebRTC開発者向けプラットフォーム SkyWayの裏側
WebRTC開発者向けプラットフォーム SkyWayの裏側WebRTC開発者向けプラットフォーム SkyWayの裏側
WebRTC開発者向けプラットフォーム SkyWayの裏側
 
革新的ブラウザゲームを支えるプラットフォーム技術
革新的ブラウザゲームを支えるプラットフォーム技術革新的ブラウザゲームを支えるプラットフォーム技術
革新的ブラウザゲームを支えるプラットフォーム技術
 
HTML5時代のネット動画技術〜良い子悪い子普通の子(増補改訂版)
HTML5時代のネット動画技術〜良い子悪い子普通の子(増補改訂版)HTML5時代のネット動画技術〜良い子悪い子普通の子(増補改訂版)
HTML5時代のネット動画技術〜良い子悪い子普通の子(増補改訂版)
 
Fortranが拓く世界、VSCodeが架ける橋
Fortranが拓く世界、VSCodeが架ける橋Fortranが拓く世界、VSCodeが架ける橋
Fortranが拓く世界、VSCodeが架ける橋
 
⼤企業で実現するイマドキの内製開発
⼤企業で実現するイマドキの内製開発⼤企業で実現するイマドキの内製開発
⼤企業で実現するイマドキの内製開発
 
Titaniumって何?
Titaniumって何?Titaniumって何?
Titaniumって何?
 
「モダンPerl入門」の入門
「モダンPerl入門」の入門「モダンPerl入門」の入門
「モダンPerl入門」の入門
 
Javaにおけるネイティブコード連携の各種手法の紹介
Javaにおけるネイティブコード連携の各種手法の紹介Javaにおけるネイティブコード連携の各種手法の紹介
Javaにおけるネイティブコード連携の各種手法の紹介
 
New VIdeo CODEC AV1
New VIdeo CODEC AV1 New VIdeo CODEC AV1
New VIdeo CODEC AV1
 
Try new transport protocol SRT
Try new transport protocol SRTTry new transport protocol SRT
Try new transport protocol SRT
 
色々なデバイスの映像を使ったWebブラウザでのWebRTC映像中継(GotAPIからのWebRTC利用)
色々なデバイスの映像を使ったWebブラウザでのWebRTC映像中継(GotAPIからのWebRTC利用) 色々なデバイスの映像を使ったWebブラウザでのWebRTC映像中継(GotAPIからのWebRTC利用)
色々なデバイスの映像を使ったWebブラウザでのWebRTC映像中継(GotAPIからのWebRTC利用)
 
Python languageupdate (2004)
Python languageupdate (2004)Python languageupdate (2004)
Python languageupdate (2004)
 
Open bio2004 biopython
Open bio2004 biopythonOpen bio2004 biopython
Open bio2004 biopython
 

Destaque

HTML5ビデオ導入編
HTML5ビデオ導入編HTML5ビデオ導入編
HTML5ビデオ導入編Yuki Naotori
 
ち〜ん
ち〜んち〜ん
ち〜んtadfmac
 
ORTCの仕様書をざっくり斜め読みする
ORTCの仕様書をざっくり斜め読みするORTCの仕様書をざっくり斜め読みする
ORTCの仕様書をざっくり斜め読みするYusuke Naka
 
Jitsi video bridge で遊んでみた
Jitsi video bridge で遊んでみたJitsi video bridge で遊んでみた
Jitsi video bridge で遊んでみたtnoho
 
知ってると得するかもしれないConstraintsたち
知ってると得するかもしれないConstraintsたち知ってると得するかもしれないConstraintsたち
知ってると得するかもしれないConstraintsたちKensaku Komatsu
 
オープンソースで作る動画配信サイト OSC2013名古屋
オープンソースで作る動画配信サイト OSC2013名古屋オープンソースで作る動画配信サイト OSC2013名古屋
オープンソースで作る動画配信サイト OSC2013名古屋Masaki Goto
 
オープンソースの情報共有の仕組み"Knowledge"のご紹介
オープンソースの情報共有の仕組み"Knowledge"のご紹介オープンソースの情報共有の仕組み"Knowledge"のご紹介
オープンソースの情報共有の仕組み"Knowledge"のご紹介koda3
 
インターネット生放送を支える技術としくみ2015年版
インターネット生放送を支える技術としくみ2015年版インターネット生放送を支える技術としくみ2015年版
インターネット生放送を支える技術としくみ2015年版Yusei Yamanaka
 

Destaque (8)

HTML5ビデオ導入編
HTML5ビデオ導入編HTML5ビデオ導入編
HTML5ビデオ導入編
 
ち〜ん
ち〜んち〜ん
ち〜ん
 
ORTCの仕様書をざっくり斜め読みする
ORTCの仕様書をざっくり斜め読みするORTCの仕様書をざっくり斜め読みする
ORTCの仕様書をざっくり斜め読みする
 
Jitsi video bridge で遊んでみた
Jitsi video bridge で遊んでみたJitsi video bridge で遊んでみた
Jitsi video bridge で遊んでみた
 
知ってると得するかもしれないConstraintsたち
知ってると得するかもしれないConstraintsたち知ってると得するかもしれないConstraintsたち
知ってると得するかもしれないConstraintsたち
 
オープンソースで作る動画配信サイト OSC2013名古屋
オープンソースで作る動画配信サイト OSC2013名古屋オープンソースで作る動画配信サイト OSC2013名古屋
オープンソースで作る動画配信サイト OSC2013名古屋
 
オープンソースの情報共有の仕組み"Knowledge"のご紹介
オープンソースの情報共有の仕組み"Knowledge"のご紹介オープンソースの情報共有の仕組み"Knowledge"のご紹介
オープンソースの情報共有の仕組み"Knowledge"のご紹介
 
インターネット生放送を支える技術としくみ2015年版
インターネット生放送を支える技術としくみ2015年版インターネット生放送を支える技術としくみ2015年版
インターネット生放送を支える技術としくみ2015年版
 

Semelhante a TV会議をオープンソースで実現!RED5によるストリーミング配信講座

【OSC2011広島】共有アプリで遊ぼう!(日本Red5ユーザー会)
【OSC2011広島】共有アプリで遊ぼう!(日本Red5ユーザー会)【OSC2011広島】共有アプリで遊ぼう!(日本Red5ユーザー会)
【OSC2011広島】共有アプリで遊ぼう!(日本Red5ユーザー会)Shinichiro Yoshida
 
Dutch PHP Conference 2009 report
Dutch PHP Conference 2009 reportDutch PHP Conference 2009 report
Dutch PHP Conference 2009 reportYusuke Ando
 
OSC@京都 2011-07-15
OSC@京都 2011-07-15OSC@京都 2011-07-15
OSC@京都 2011-07-15Hiroshi Bunya
 
ドリコムを支える課金ライブラリを支えるJenkins
ドリコムを支える課金ライブラリを支えるJenkinsドリコムを支える課金ライブラリを支えるJenkins
ドリコムを支える課金ライブラリを支えるJenkinsGo Sueyoshi (a.k.a sue445)
 
PHPにおけるRIA事情と開発
PHPにおけるRIA事情と開発PHPにおけるRIA事情と開発
PHPにおけるRIA事情と開発konekto
 
RUNNING Smalltalk - 実践Smalltalk
RUNNING Smalltalk - 実践SmalltalkRUNNING Smalltalk - 実践Smalltalk
RUNNING Smalltalk - 実践SmalltalkSho Yoshida
 
20101127 Android Usability Seminar
20101127 Android Usability Seminar20101127 Android Usability Seminar
20101127 Android Usability SeminarVisso株式会社
 
Eclipse PDT + MakeGoodによるPHPコードのテスト
Eclipse PDT + MakeGoodによるPHPコードのテストEclipse PDT + MakeGoodによるPHPコードのテスト
Eclipse PDT + MakeGoodによるPHPコードのテストAtsuhiro Kubo
 
ABEJAの映像解析を支える仕組みとRancher - Japan Container Days v18.12
ABEJAの映像解析を支える仕組みとRancher - Japan Container Days v18.12ABEJAの映像解析を支える仕組みとRancher - Japan Container Days v18.12
ABEJAの映像解析を支える仕組みとRancher - Japan Container Days v18.12紘之 大田黒
 
Delphi Community Edition Meet up !
Delphi Community Edition Meet up !Delphi Community Edition Meet up !
Delphi Community Edition Meet up !Jun Hosokawa
 
スタートアップ向け!1人日でできるサービスの高速化方法と成果
スタートアップ向け!1人日でできるサービスの高速化方法と成果スタートアップ向け!1人日でできるサービスの高速化方法と成果
スタートアップ向け!1人日でできるサービスの高速化方法と成果Koichiro Sumi
 
FFRKを支えるWebアプリケーションフレームワークの技術
FFRKを支えるWebアプリケーションフレームワークの技術FFRKを支えるWebアプリケーションフレームワークの技術
FFRKを支えるWebアプリケーションフレームワークの技術dena_study
 
Zabbixをもっと便利に!安全に!
Zabbixをもっと便利に!安全に!Zabbixをもっと便利に!安全に!
Zabbixをもっと便利に!安全に!Takashi Matsunaga
 
ネイティブ機能を利用する Webアプリの実例 ~PhoneGap×Rails~
ネイティブ機能を利用するWebアプリの実例~PhoneGap×Rails~ネイティブ機能を利用するWebアプリの実例~PhoneGap×Rails~
ネイティブ機能を利用する Webアプリの実例 ~PhoneGap×Rails~Daisuke Futatsumori
 
coma - creator’s talk session: Code - openFrameworks
coma - creator’s talk session: Code - openFrameworkscoma - creator’s talk session: Code - openFrameworks
coma - creator’s talk session: Code - openFrameworksAtsushi Tadokoro
 
Pepperのアプリ開発について - ABC2015 Summer -
Pepperのアプリ開発について - ABC2015 Summer -Pepperのアプリ開発について - ABC2015 Summer -
Pepperのアプリ開発について - ABC2015 Summer -Hirokazu Egashira
 
DeNA流cocos2d xとの付き合い方
DeNA流cocos2d xとの付き合い方DeNA流cocos2d xとの付き合い方
DeNA流cocos2d xとの付き合い方dena_study
 

Semelhante a TV会議をオープンソースで実現!RED5によるストリーミング配信講座 (20)

【OSC2011広島】共有アプリで遊ぼう!(日本Red5ユーザー会)
【OSC2011広島】共有アプリで遊ぼう!(日本Red5ユーザー会)【OSC2011広島】共有アプリで遊ぼう!(日本Red5ユーザー会)
【OSC2011広島】共有アプリで遊ぼう!(日本Red5ユーザー会)
 
Dutch PHP Conference 2009 report
Dutch PHP Conference 2009 reportDutch PHP Conference 2009 report
Dutch PHP Conference 2009 report
 
OSC@京都 2011-07-15
OSC@京都 2011-07-15OSC@京都 2011-07-15
OSC@京都 2011-07-15
 
OSC Kansai@Kyoto
OSC Kansai@KyotoOSC Kansai@Kyoto
OSC Kansai@Kyoto
 
ドリコムを支える課金ライブラリを支えるJenkins
ドリコムを支える課金ライブラリを支えるJenkinsドリコムを支える課金ライブラリを支えるJenkins
ドリコムを支える課金ライブラリを支えるJenkins
 
PHPにおけるRIA事情と開発
PHPにおけるRIA事情と開発PHPにおけるRIA事情と開発
PHPにおけるRIA事情と開発
 
RUNNING Smalltalk - 実践Smalltalk
RUNNING Smalltalk - 実践SmalltalkRUNNING Smalltalk - 実践Smalltalk
RUNNING Smalltalk - 実践Smalltalk
 
20101127 Android Usability Seminar
20101127 Android Usability Seminar20101127 Android Usability Seminar
20101127 Android Usability Seminar
 
Eclipse PDT + MakeGoodによるPHPコードのテスト
Eclipse PDT + MakeGoodによるPHPコードのテストEclipse PDT + MakeGoodによるPHPコードのテスト
Eclipse PDT + MakeGoodによるPHPコードのテスト
 
RPAって何、どんなことできるの
RPAって何、どんなことできるのRPAって何、どんなことできるの
RPAって何、どんなことできるの
 
ABEJAの映像解析を支える仕組みとRancher - Japan Container Days v18.12
ABEJAの映像解析を支える仕組みとRancher - Japan Container Days v18.12ABEJAの映像解析を支える仕組みとRancher - Japan Container Days v18.12
ABEJAの映像解析を支える仕組みとRancher - Japan Container Days v18.12
 
Delphi Community Edition Meet up !
Delphi Community Edition Meet up !Delphi Community Edition Meet up !
Delphi Community Edition Meet up !
 
MeeGo won't die
MeeGo won't dieMeeGo won't die
MeeGo won't die
 
スタートアップ向け!1人日でできるサービスの高速化方法と成果
スタートアップ向け!1人日でできるサービスの高速化方法と成果スタートアップ向け!1人日でできるサービスの高速化方法と成果
スタートアップ向け!1人日でできるサービスの高速化方法と成果
 
FFRKを支えるWebアプリケーションフレームワークの技術
FFRKを支えるWebアプリケーションフレームワークの技術FFRKを支えるWebアプリケーションフレームワークの技術
FFRKを支えるWebアプリケーションフレームワークの技術
 
Zabbixをもっと便利に!安全に!
Zabbixをもっと便利に!安全に!Zabbixをもっと便利に!安全に!
Zabbixをもっと便利に!安全に!
 
ネイティブ機能を利用する Webアプリの実例 ~PhoneGap×Rails~
ネイティブ機能を利用するWebアプリの実例~PhoneGap×Rails~ネイティブ機能を利用するWebアプリの実例~PhoneGap×Rails~
ネイティブ機能を利用する Webアプリの実例 ~PhoneGap×Rails~
 
coma - creator’s talk session: Code - openFrameworks
coma - creator’s talk session: Code - openFrameworkscoma - creator’s talk session: Code - openFrameworks
coma - creator’s talk session: Code - openFrameworks
 
Pepperのアプリ開発について - ABC2015 Summer -
Pepperのアプリ開発について - ABC2015 Summer -Pepperのアプリ開発について - ABC2015 Summer -
Pepperのアプリ開発について - ABC2015 Summer -
 
DeNA流cocos2d xとの付き合い方
DeNA流cocos2d xとの付き合い方DeNA流cocos2d xとの付き合い方
DeNA流cocos2d xとの付き合い方
 

Mais de Shinichiro Yoshida

Laravel×DevOps -インフラ構築の自動化から運用ログの監視まで-
Laravel×DevOps -インフラ構築の自動化から運用ログの監視まで-Laravel×DevOps -インフラ構築の自動化から運用ログの監視まで-
Laravel×DevOps -インフラ構築の自動化から運用ログの監視まで-Shinichiro Yoshida
 
"Oculus Go" と "Gear VR" のチガイ #sa_study
"Oculus Go" と "Gear VR" のチガイ #sa_study"Oculus Go" と "Gear VR" のチガイ #sa_study
"Oculus Go" と "Gear VR" のチガイ #sa_studyShinichiro Yoshida
 
自己紹介&このスライドのデザインの作り方 #sa_study
自己紹介&このスライドのデザインの作り方 #sa_study自己紹介&このスライドのデザインの作り方 #sa_study
自己紹介&このスライドのデザインの作り方 #sa_studyShinichiro Yoshida
 
ルワンダの IT視察レポートだよ #sa_study
ルワンダのIT視察レポートだよ #sa_studyルワンダのIT視察レポートだよ #sa_study
ルワンダの IT視察レポートだよ #sa_studyShinichiro Yoshida
 
World Wide Web with Virtual Reality #sa_study
World Wide Web with Virtual Reality #sa_studyWorld Wide Web with Virtual Reality #sa_study
World Wide Web with Virtual Reality #sa_studyShinichiro Yoshida
 
React + FLUX + Redux + Redux Saga のお話
React + FLUX + Redux + Redux Saga のお話React + FLUX + Redux + Redux Saga のお話
React + FLUX + Redux + Redux Saga のお話Shinichiro Yoshida
 
実践 Redux Saga -Practical Redux Saga-
実践 Redux Saga -Practical Redux Saga-実践 Redux Saga -Practical Redux Saga-
実践 Redux Saga -Practical Redux Saga-Shinichiro Yoshida
 
インターネッツの繋がるしくみ(DNS編) #sa_study
インターネッツの繋がるしくみ(DNS編) #sa_studyインターネッツの繋がるしくみ(DNS編) #sa_study
インターネッツの繋がるしくみ(DNS編) #sa_studyShinichiro Yoshida
 
インターネッツの繋がるしくみ(TCP/IP編) #sa_study
インターネッツの繋がるしくみ(TCP/IP編) #sa_studyインターネッツの繋がるしくみ(TCP/IP編) #sa_study
インターネッツの繋がるしくみ(TCP/IP編) #sa_studyShinichiro Yoshida
 
インターネッツの繋がるしくみ(物理層編) #sa_study
インターネッツの繋がるしくみ(物理層編) #sa_studyインターネッツの繋がるしくみ(物理層編) #sa_study
インターネッツの繋がるしくみ(物理層編) #sa_studyShinichiro Yoshida
 
AWS Opsworksを使ってPHPとLaravelが動くサーバーを構築してみよう!at phpstudy#97
AWS Opsworksを使ってPHPとLaravelが動くサーバーを構築してみよう!at phpstudy#97AWS Opsworksを使ってPHPとLaravelが動くサーバーを構築してみよう!at phpstudy#97
AWS Opsworksを使ってPHPとLaravelが動くサーバーを構築してみよう!at phpstudy#97Shinichiro Yoshida
 
~新しい着回しと出会おう~ 『XZ(クローゼット)』 を支える技術 -Cordova編-
~新しい着回しと出会おう~ 『XZ(クローゼット)』 を支える技術 -Cordova編-~新しい着回しと出会おう~ 『XZ(クローゼット)』 を支える技術 -Cordova編-
~新しい着回しと出会おう~ 『XZ(クローゼット)』 を支える技術 -Cordova編-Shinichiro Yoshida
 
【DevLOVE現場甲子園2014】【守】「テレビ×スマホで視聴者が番組に参加!そのメディア体験を支えるインフラと運用の舞台裏」
【DevLOVE現場甲子園2014】【守】「テレビ×スマホで視聴者が番組に参加!そのメディア体験を支えるインフラと運用の舞台裏」【DevLOVE現場甲子園2014】【守】「テレビ×スマホで視聴者が番組に参加!そのメディア体験を支えるインフラと運用の舞台裏」
【DevLOVE現場甲子園2014】【守】「テレビ×スマホで視聴者が番組に参加!そのメディア体験を支えるインフラと運用の舞台裏」Shinichiro Yoshida
 
簡単/動画共有サービス『REPRE(リプレ)』の紹介|第75回PHP勉強会LT@EngineYard
簡単/動画共有サービス『REPRE(リプレ)』の紹介|第75回PHP勉強会LT@EngineYard簡単/動画共有サービス『REPRE(リプレ)』の紹介|第75回PHP勉強会LT@EngineYard
簡単/動画共有サービス『REPRE(リプレ)』の紹介|第75回PHP勉強会LT@EngineYardShinichiro Yoshida
 
【OSC2011広島】Red5デモ(日本Red5ユーザー会)
【OSC2011広島】Red5デモ(日本Red5ユーザー会)【OSC2011広島】Red5デモ(日本Red5ユーザー会)
【OSC2011広島】Red5デモ(日本Red5ユーザー会)Shinichiro Yoshida
 
オープンソースカンファレンス2011 Kansai@Kobe
オープンソースカンファレンス2011 Kansai@Kobeオープンソースカンファレンス2011 Kansai@Kobe
オープンソースカンファレンス2011 Kansai@KobeShinichiro Yoshida
 

Mais de Shinichiro Yoshida (17)

Laravel×DevOps -インフラ構築の自動化から運用ログの監視まで-
Laravel×DevOps -インフラ構築の自動化から運用ログの監視まで-Laravel×DevOps -インフラ構築の自動化から運用ログの監視まで-
Laravel×DevOps -インフラ構築の自動化から運用ログの監視まで-
 
"Oculus Go" と "Gear VR" のチガイ #sa_study
"Oculus Go" と "Gear VR" のチガイ #sa_study"Oculus Go" と "Gear VR" のチガイ #sa_study
"Oculus Go" と "Gear VR" のチガイ #sa_study
 
自己紹介&このスライドのデザインの作り方 #sa_study
自己紹介&このスライドのデザインの作り方 #sa_study自己紹介&このスライドのデザインの作り方 #sa_study
自己紹介&このスライドのデザインの作り方 #sa_study
 
ルワンダの IT視察レポートだよ #sa_study
ルワンダのIT視察レポートだよ #sa_studyルワンダのIT視察レポートだよ #sa_study
ルワンダの IT視察レポートだよ #sa_study
 
World Wide Web with Virtual Reality #sa_study
World Wide Web with Virtual Reality #sa_studyWorld Wide Web with Virtual Reality #sa_study
World Wide Web with Virtual Reality #sa_study
 
React + FLUX + Redux + Redux Saga のお話
React + FLUX + Redux + Redux Saga のお話React + FLUX + Redux + Redux Saga のお話
React + FLUX + Redux + Redux Saga のお話
 
実践 Redux Saga -Practical Redux Saga-
実践 Redux Saga -Practical Redux Saga-実践 Redux Saga -Practical Redux Saga-
実践 Redux Saga -Practical Redux Saga-
 
インターネッツの繋がるしくみ(DNS編) #sa_study
インターネッツの繋がるしくみ(DNS編) #sa_studyインターネッツの繋がるしくみ(DNS編) #sa_study
インターネッツの繋がるしくみ(DNS編) #sa_study
 
インターネッツの繋がるしくみ(TCP/IP編) #sa_study
インターネッツの繋がるしくみ(TCP/IP編) #sa_studyインターネッツの繋がるしくみ(TCP/IP編) #sa_study
インターネッツの繋がるしくみ(TCP/IP編) #sa_study
 
インターネッツの繋がるしくみ(物理層編) #sa_study
インターネッツの繋がるしくみ(物理層編) #sa_studyインターネッツの繋がるしくみ(物理層編) #sa_study
インターネッツの繋がるしくみ(物理層編) #sa_study
 
AWS Opsworksを使ってPHPとLaravelが動くサーバーを構築してみよう!at phpstudy#97
AWS Opsworksを使ってPHPとLaravelが動くサーバーを構築してみよう!at phpstudy#97AWS Opsworksを使ってPHPとLaravelが動くサーバーを構築してみよう!at phpstudy#97
AWS Opsworksを使ってPHPとLaravelが動くサーバーを構築してみよう!at phpstudy#97
 
~新しい着回しと出会おう~ 『XZ(クローゼット)』 を支える技術 -Cordova編-
~新しい着回しと出会おう~ 『XZ(クローゼット)』 を支える技術 -Cordova編-~新しい着回しと出会おう~ 『XZ(クローゼット)』 を支える技術 -Cordova編-
~新しい着回しと出会おう~ 『XZ(クローゼット)』 を支える技術 -Cordova編-
 
【DevLOVE現場甲子園2014】【守】「テレビ×スマホで視聴者が番組に参加!そのメディア体験を支えるインフラと運用の舞台裏」
【DevLOVE現場甲子園2014】【守】「テレビ×スマホで視聴者が番組に参加!そのメディア体験を支えるインフラと運用の舞台裏」【DevLOVE現場甲子園2014】【守】「テレビ×スマホで視聴者が番組に参加!そのメディア体験を支えるインフラと運用の舞台裏」
【DevLOVE現場甲子園2014】【守】「テレビ×スマホで視聴者が番組に参加!そのメディア体験を支えるインフラと運用の舞台裏」
 
簡単/動画共有サービス『REPRE(リプレ)』の紹介|第75回PHP勉強会LT@EngineYard
簡単/動画共有サービス『REPRE(リプレ)』の紹介|第75回PHP勉強会LT@EngineYard簡単/動画共有サービス『REPRE(リプレ)』の紹介|第75回PHP勉強会LT@EngineYard
簡単/動画共有サービス『REPRE(リプレ)』の紹介|第75回PHP勉強会LT@EngineYard
 
【OSC2011広島】Red5デモ(日本Red5ユーザー会)
【OSC2011広島】Red5デモ(日本Red5ユーザー会)【OSC2011広島】Red5デモ(日本Red5ユーザー会)
【OSC2011広島】Red5デモ(日本Red5ユーザー会)
 
オープンソースカンファレンス2011 Kansai@Kobe
オープンソースカンファレンス2011 Kansai@Kobeオープンソースカンファレンス2011 Kansai@Kobe
オープンソースカンファレンス2011 Kansai@Kobe
 
Osc2011 kobe 20110416_01
Osc2011 kobe 20110416_01Osc2011 kobe 20110416_01
Osc2011 kobe 20110416_01
 

Último

【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 

Último (10)

【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 

TV会議をオープンソースで実現!RED5によるストリーミング配信講座

  • 1. 2011年9月28日(水) 16:00-18:00 豊洲センタービルゕネックス 28F 株式会社NTTデータ様 社内勉強会 日本Red5ユーザー会 / 株式会社スタジオ・ゕルカナ 吉田 紳一郎 #red5ug Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.
  • 2. 1.はじめに 5 2.Red5入門編 10 3.電子会議室システムを作ってみよう 20 4.Red5応用編 5 5.おわりに 5 #red5ug Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved. 2
  • 3. #red5ug Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved. 3
  • 4. 自己紹介  吉田 紳一郎(よしだ しんいちろう)  日本Red5ユーザ会会長  株式会社スタジオ・ゕルカナ所属 システムエンジニゕ / PHPプログラマ 資格:ゕプリケーションエンジニゕ/データベーススペシャリスト/情報セキュリテゖスペシャリスト  講演活動など  OpenSourceConference 2010 Tokyo/Spring セミナー講師  産業技術大学院大学 InfoTalk#18 セミナー講師  OpenSourceConference 2010 Tokyo/Fall セミナー講師  Flex勉強会 第130回 東京 ラ゗トニングトーク  OpenSourceConference 2011 Tokyo/Spring セミナー講師  OpenSourceConference 2011 Tokyo/Fall セミナー講師(2011年11月19日予定)  Twitter: @yossy222 #red5ug Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved. 6
  • 5. 概要  Red5とFlashを使った動画配信技術について  Red5を採用したシステムの簡単な仕組みについて 対象者  Flashの動画再生技術に興味のある方  サーバーサ゗ドFlash・ストリーミングについて知りたい方  Flash Media Serverを使いたいと思ったことがある方 目的  Red5をもっと普及させたい!  Ustreamやニコ生みたいなサービスがもっと出てほしい!  映像によるリゕルタ゗ムウェブの時代が早く来てほしい! #red5ug Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved. 7
  • 6. #red5ug Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved. 8
  • 7. 動画配信方式の違い ダウンロード方式  動画フゔ゗ルを最後までダウンロード完了してから再生 疑似ストリーミング方式  動画フゔ゗ルをダウンロードしながら再生(PCに残る)  「プログレッシブダウンロード」とも呼ばれる リゕルストリーミング方式  動画データをダウンロードしながら再生(PCに残らない)  ラ゗ブストリーミングを実現するにはこの方式が必要 #red5ug Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved. 9
  • 8. 疑似ストリーミング方式 2005/12~ 2006/12~ リゕルストリーミング方式 2007/3~ 2007/12~ #red5ug Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved. 10
  • 9. 1997 ▶ Real Media(.rm) ▶ Quick Time(.mov) ▶ Windows Media Video(.wmv)  再生にはそれぞれ独自のソフトウェゕが必要 2004 ▶Flash Video(.flv) ※Flashは1997年にリリース  Flash Playerさえあれば再生できる(高い普及率)  ゗ンタラクテゖブな動きも表現できる  リゕルストリーミングは Flash Media Server が必要 2010 ▶ 今後はHTML5動画配信も併用されていくかも?  H.264(.mp4), Theora (.ogv), WebM(.webm) #red5ug Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved. 11
  • 10.  Adobe製のサーバーソフトウェゕ ⇨ ビデオストリーミング ⇨ リゕルタ゗ムコミュニケーション  Flash Playerから接続可能 ⇨ Flash Playerは全世界のPCで98%の普及率  開発言語 ⇨ Action Script で開発  エデゖションは3つ ⇨ Flash Media Streaming Server (12万円程度) ⇨ Flash Media Interactive Server (62万円程度) ⇨ Flash Media Enterprise Server (オープン価格) #red5ug Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved. 12
  • 11.  Adobe Flash Media Server互換のメデゖゕサーバ ⇨ RTMP(Real-Time Messaging Protocol)に準拠  オープンソースソフトウェゕ ⇨ ラ゗センスはLGPL  開発言語はJava ⇨ Linux, Windows, Mac OSX上で動作可能  Red5本家サ゗ト ⇨ http://www.red5.org/ #red5ug Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved. 13
  • 12.  ビデオ映像のリゕルストリーミング (video on demand)  保存された動画フゔ゗ルのストリーミング配信  ラ゗ブ映像のリゕルストリーミング (live broadcast)  Ustreamやニコ生のようにWebカメラ映像のラ゗ブ配信  ラ゗ブ映像のレコーデゖング (live recording)  Webカメラからの映像や音声をRed5サーバで録画  リモート共有オブジェクト (remote shared object)  複数クラ゗ゕント間でオブジェクトを共有  リモートメソッド呼び出し (flash remoting)  クラ゗ゕントからサーバサ゗ドのメソッド呼び出し #red5ug Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved. 14
  • 13. DEMO #red5ug Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved. 15
  • 14.  事前準備 ⇨ Java の実行環境が必要(Oracle社のサ゗トから取得)  Red5の゗ンストーラを実行 ※゗ンストーラ以外にzip版もあり #red5ug Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved. 16
  • 15.  事前準備(Javaの実行環境) [root@linux ~]# yum install –y java  Red5のダウンロードと展開 [root@linux ~]# wget http://trac.red5.org/downloads/1_0/red5-1.0.0-RC1.tar.gz [root@linux ~]# tar zxvf red5-1.0.0-RC1.tar.gz  Red5の起動 [root@linux ~]# cd red5-1.0.0-RC1 [root@linux ~]# sh ./red5.sh #red5ug Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved. 17
  • 16.  Red5起動後はすぐにデモの確認が可能 ⇨ http://localhost:5080/ にゕクセス ⇨ チャット、ビデオ配信、ラ゗ブ配信、ラ゗ブ録画な どのサンプルゕプリを体験することができる #red5ug Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved. 18
  • 17. バージョン 主な機能 0.0.0 (2005-08-31) RTMPサポート、AMF0サポート 0.2.0 (2005-10-21) 一般向け初版リリース、メデゖゕストリーミングサポート 0.3.0 (2006-02-21) ラ゗ブストリーミング、SharedObject、音声/映像レコード 0.4.0 (2006-04-20) RTMPTサポート、MP3ストリームサポート、metaデータAPI 0.5.0 (2006-07-25) リフゔクタリング、帯域制御、フロー制御 0.6.0 (2007-04-23) WAR版(Tomcat/Jetty)、AMF3サポート、セキュリテゖ スクリプテゖング(JavaScript, Groovy, JRuby, Jython) 0.7.0 (2008-02-23) 管理画面、Edge/Originクラスタリングサポート 0.8.0 (2009-06-04) RTMPSサポート、テステゖングサポート、Tomcatを標準に 0.9.0 (2010-01-27) H.264サポート、AACサポート、プラグ゗ン機構サポート 1.0.0 (TBD) RTMPEサポート ※2011/2/2にRC1公開 ※RTMFPは未対応 バージョン1.0.0正式版が今年中にリリースされる・・? #red5ug Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved. 19
  • 18. Red5 Application 開発が必要 Red5 API MBean Spring Framework Tomcat (DIコンテナ) RMI JMX 停止 :9999 Apache Mina <RTMP> :1935 Client 開発が必要 #red5ug Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved. 20
  • 19. 商用ソフトウェゕ Adobe Flash Action Script オープンソース・無償 Adobe Flex MXML+ Action Script Open Laszlo オープンソース・無償 LZX + Java Script #red5ug Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved. 21
  • 20. デザ゗ナーとのワークフロー連携が容易に Adobe Adobe Photoshop Flash Adobe Flash Player Adobe Illustrator Adobe Adobe Flash Catalyst Flash Builder Adobe AIR Adobe Adobe Flex Fireworks Adobe製品を購入する 必要ゕリですが。。 デザ゗ナー エンジニゕ #red5ug Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved. 22
  • 21. クロスプラットフォーム対応 Adobe Web Flash Player Browser Windows Mac OS Linux Adobe AIR AIR for Android Android Packager for iPhone iPhone #red5ug Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved. 23
  • 22.  Adobeサ゗ト『Flashの真実』 ⇨ http://www.adobe.com/jp/choice/flash.html #red5ug Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved. 24
  • 23. #red5ug Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved. 25
  • 24. 簡易電子会議室システムの作り方を通じて Red5の機能を紹介します。 ユーザー ユーザー 簡易電子会議室システム ユーザー ユーザー ユーザー ユーザー #red5ug Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved. 26
  • 25. 今回開発するシステムは3画面で構成される シンプルな電子会議室システムです。 ログ゗ン画面 部屋選択画面 会議室画面 コンセプトは “宇宙”・・・ デモサ゗ト⇒ http://live.red5.gr.jp/osc2011-spring/ #red5ug Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved. 27
  • 26. 名前を入力して ログ゗ンします #red5ug Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved. 28
  • 27. 部屋を選択し て入室します。 #red5ug Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved. 29
  • 28. 会議室に入室してい るメンバーの映像が 表示されます。 自分の映像配信 のON/OFFを切 り替えます。 部屋選択画面 に戻ります。 #red5ug Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved. 30
  • 29. iDC <3G> <ADSL> <e-mobile> Internet <Wi-Fi> ゗ンターネット接続と <FTTH> Flash/AIR環境のみ #red5ug Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved. 31
  • 30. DEMO デモサ゗ト⇒ http://live.red5.gr.jp/osc2011-spring/ #red5ug Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved. 32
  • 31. クラ゗ゕント開発+サーバサ゗ド開発が必要 クラ゗ゕント開発 サーバーサ゗ド開発 Adobe Flex Red5 Adobe Flash Builder Java EclipseベースのIDE Adobe Photoshop Eclipse IDE デザ゗ナーさんが使用 Adobe Flash Catalyst PSDからMXMLに変換 青点線は作業効率化のため使用 #red5ug Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved. 33
  • 32. red5-1.0.0-RC1  コンテキストパス: /conference • クラ゗ゕントが接続するURIが決まる conf  Webハンドラ: jp.co.s_arcana.red5.MyApplication • クラ゗ゕントが接続した時に呼び出されるクラス webapps conference 設定フゔ゗ル WEB-INF web.xml red5-web.xml classes jp.co.s_arcana.red5 デゖレクトリ構成は Servletとほぼ同じ! MyApplication.class #red5ug Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved. 34
  • 33. まず、ログ゗ン画面を例にして Red5へ接続するプログラムを簡単に説明します ログ゗ン画面 部屋選択画面 #red5ug Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved. 35
  • 34. ユーザー クラ゗ゕント側(ActionScript) var nc: NetConnection = new NetConnection(); nc.connect( “rtmp://red5server/conference” );  NetConnection#connect()でFlashPlayerからRed5へ接続  プロトコルや接続先ゕプリケーションはURIで決まる  RTMPはステートフルなので接続は永続的(繋ぎっぱ) #red5ug Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved. 36
  • 35. ユーザー サーバ側(Java) package jp.co.s_arcana.red5; public class MyApplication extends ApplicationAdapter { public boolean connect ( IConnection, IScope, Object[] ) { hogehoge(); }  接続されるとMyApplication#connect()が呼び出される #red5ug Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved. 37
  • 36. 開発ゕプリケーション jp.co.s_arcana.red5 org.red5.server.adapter MyApplication ApplicationAdapter +connect() +disconnect() +join() +leave() +start() Red5に用意されているAPIの ApplicationAdapter クラスを継承 +stop() することで、ゕプリケーションの : エントリポ゗ントとなる仕組み。 #red5ug Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved. 38
  • 37.  ApplicationAdapter クラス  Red5ゕプリケーション開発のエントリポ゗ント  このクラスを継承することで、クラ゗ゕント接続や 切断などをトリガーに特定メソッドが呼び出される • Servlet の HTTPServlet のような感じ  connect(), disconnect(), join(), leave() メソッド • クラ゗ゕント接続時、切断時  start(), stop() メソッド • ゕプリケーション開始時(≒Red5起動時) #red5ug Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved. 39
  • 38. 次に、ログ゗ン画面で入力した名前を Red5に送信するプログラムを簡単に説明します ログ゗ン画面 部屋選択画面 #red5ug Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved. 40
  • 39. ユーザー クラ゗ゕント側(ActionScript) nc.call( “setMyName” , new Responder( function(result:Object) { fugafuga(result); } ), “my_name” );  NetConnection#call()でRed5側のメソッドを呼び出せる  第2引数のResponderでサーバからの戻り値を処理  第3引数で名前文字列を引数として渡す #red5ug Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved. 41
  • 40. ユーザー サーバ側(Java) public class Application extends ApplicationAdapter { public boolean setMyName (String name) { fugafuga(name); return true; }  NetConnection#call()で指定されたメソッドが実行される  引数には、入力した名前が渡される #red5ug Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved. 42
  • 41. 次に、部屋選択画面を例にして 部屋に入室する際のプログラムを簡単に説明します 部屋選択画面 会議室画面 #red5ug Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved. 43
  • 42. 各部屋には名前を付けています room01 room02 room03 #red5ug Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved. 44
  • 43. ユーザー room01 クラ゗ゕント側(ActionScript) var nc: NetConnection = new NetConnection(); nc.connect( “rtmp://host/conference/room01” );  入室対象部屋はURIにより指定する仕組みにしている  Red5ではURIにより”スコープ”(≒部屋)が自動生成  この例では「room01」の部屋に入室 #red5ug Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved. 45
  • 44. Red5内では ”部屋” の単位をスコープと呼ぶ。 接続URIに従ってRed5内部で自動的に生成。 ユーザー URI room01 rtmp:// host / conference / room01 default conference room01 Global Web Scope Scope Scope ※ 斜体赤字 はスコープ名 #red5ug Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved. 46
  • 45.  GlobalScopeはRed5サーバに必ず1つ存在 Global Scope  Red5スコープ階層構造の一番上位のスコープ  通常このスコープを使うことはない  WebScopeはゕプリケーションごとに1つ存在する Web Scope  このスコープに接続するとappConnect()が呼び出される  Applicationスコープとも呼称される  Scopeはゕプリケーションごとに複数存在できる Scope  このスコープに接続するとroomConnnect()が呼び出される  Roomスコープとも呼称される #red5ug Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved. 47
  • 46. クラ゗ゕントは、各スコープにぶら下がる ユーザー rtmp:// host / conference / room01 room01 conference room01 Web Scope Scope Global Scope Client default Client Client Client Client ※ 斜体赤字 はスコープ名 #red5ug Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved. 48
  • 47. スコープは接続URIの / 区切りで階層構造となる URI rtmp:// host / live / r1 / r2 / r3 / r4 / r5 r1 r3 r5 Scope Scope Scope Global 親 親 親 親 親 Scope 親 Web default Scope Scope Scope live r2 r4 ※ 斜体赤字 はスコープ名 #red5ug Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved. 49
  • 48. 最後に、会議室画面でウェブカメラの 映像を流すプログラムを簡単に説明します 会議室画面 #red5ug Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved. 50
  • 49. ユーザー クラ゗ゕント側(ActionScript) var nc: NetConnection = new NetConnection(); nc.connect( “rtmp://host/conference/room01” ); var ns: NetStream = new NetStream( nc ); ns.publish( “uniqId” , “live” );  NetStream#publish()で映像を配信する  第1引数で一意の名前を指定、第2引数“live”でラ゗ブ配信 #red5ug Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved. 51
  • 50. ユーザー サーバ側(Java) package jp.co.s_arcana.red5; public class MyApplication extends ApplicationAdapter { public boolean streamPublishStart (IBroadcastStream) { fugafuga(); }  映像が流されるとMyApplication#streamPublishStart()が呼び出される #red5ug Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved. 52
  • 51.  ApplicationAdapter クラス  streamPublishStart () メソッド  クラ゗ゕントから映像がpublishされたときに呼ばれる  リゕルタ゗ムに映像を加工することも可能  Xugglerというラ゗ブラリが公開されている  streamBroadcastClose() メソッド  クラ゗ゕントから映像がcloseされたときに呼ばれる #red5ug Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved. 53
  • 52. ユーザー クラ゗ゕント側(ActionScript) var nc: NetConnection = new NetConnection(); nc.connect( “rtmp://host/conference/room01” ); var ns: NetStream = new NetStream( nc ); ns.play( “uniqId” );  NetStream#play()でストリーミングを受信する  第1引数でpublishされている一意の名前を指定 #red5ug Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved. 54
  • 53. 映像 On/Off room01 room01 Client Client Scope Client Broadcast play() Client streamA Scope #red5ug Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved. 55
  • 54. 映像配信もRed5では”スコープ”として扱われる room01 rtmp:// host / conference / room01 ユーザー NetStream#publish( “uniqId” , “live” ); uniqId Broadcast Scope Client Global Web Scope Scope Scope default conference room01 #red5ug Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved. 56
  • 55.  NetStreamが使用されると生成される Broadcast Scope  同じ名前でも親スコープが異なれば別オブジェクト r1 so3 stream1 SharedObject Broadcast Scope Scope Scope stream2 so2 r2 Broadcast Web SharedObject Scope Scope Scope Scope live SharedObject SharedObject Broadcast Scope Scope Scope so3 stream3 so1 SharedObject  SharedObjectが使用されると生成される Scope  同じ名前でも親スコープが異なれば別オブジェクト #red5ug Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved. 57
  • 56. #red5ug Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved. 58
  • 57. Red5はクラスタリング機能もサポート プロトコル:MRTMP(Multiplex RTMP) <RTMP> <MRTMP> <RTMP> <RTMP> <RTMP> #red5ug Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved. 59
  • 58. JavaなのでTwitter4Jも使えます クラ゗ゕント サーバ <RTMP> <Native> <HTTP> Streaming API #red5ug Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved. 60
  • 59. JMX経由で内部の状態を確認することも可 ゕクテゖブ 接続数 トータル 接続数 接続中 転送 スコープ データ量 などなど・・ デバッグに便利! #red5ug Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved. 61
  • 60. DEMO #red5ug Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved. 62
  • 61. JavaなOSSなのでEclipseからのデバッグも容易 スタック トレース ブレーク ポ゗ント 変数の調査 変数値の 書き換え 不具合調査に 便利! #red5ug Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved. 63
  • 62. #red5ug Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved. 64
  • 63.  日本Red5ユーザ会 ⇨ 2010年4月に発足 ⇨ 今はRed5の普及活動がメ゗ン ⇨ 日本語のコンテンツを充実 させていく予定  日本Red5ユーザ会URL ⇨ http://www.red5.gr.jp/ 日本Red5ユーザー会 検索 #red5ug Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved. 65
  • 64. 「簡易電子会議室システム」のソースコードは 日本Red5ユーザ会の関連サ゗トで公開中 http://red5jp.googlecode.com/ #red5ug Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved. 66
  • 65. プロジェクトを読み込んでビルドするには Adobe Flash Builder が必要ですが、、、 「FlashDevelop」でもコンパ゗ルできます! http://flashdevelop.org/  オープンソースのコードエデゖタ (MIT License)  ActionScript/MXMLのコーデゖング  SWF のコンパ゗ル  Adobe AIR ゕプリの生成  日本のコミュニテゖもあります!  http://flashdevelop.jp/ #red5ug Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved. 67
  • 66. #red5ug Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved. 68
  • 67. #red5ug Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved. 69
  • 68. #red5ug Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.