22
Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved. 2011年2月9日(水) 21:30-21:40 FxUG勉強会 第130回@東京 ラトニングトーク 日本Red5ユーザ会/株式会社スタジオ・ゕルカナ 吉田 紳一郎

Red5とFlexで作るmixiアプリ「ビデオチャット」事例紹介

Embed Size (px)

DESCRIPTION

FxUG勉強会第130回@東京のライトニングトークの資料です。

Citation preview

Page 1: Red5とFlexで作るmixiアプリ「ビデオチャット」事例紹介

Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.

2011年2月9日(水) 21:30-21:40

FxUG勉強会 第130回@東京 ラトニングトーク

日本Red5ユーザ会/株式会社スタジオ・ゕルカナ

吉田 紳一郎

Page 2: Red5とFlexで作るmixiアプリ「ビデオチャット」事例紹介

Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.

吉田 紳一郎(よしだ しんいちろう)

⇨ Red5ユーザ会 会長

⇨ 株式会社スタジオ・ゕルカナ

システムエンジニゕ / プログラマー

⇨ 講演活動など

▶ OpenSourceConference 2010 Tokyo/Spring セミナー講師

http://www.ospn.jp/osc2010-spring/

▶ InfoTalk#18 セミナー講師

http://pk.aiit.ac.jp/index.php?InfoTalk/20100521

▶ OpenSourceConference 2010 Tokyo/Fall セミナー講師

http://www.ospn.jp/osc2010-fall/

自己紹介

2

Page 3: Red5とFlexで作るmixiアプリ「ビデオチャット」事例紹介

Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved. 3

Adobe Flash Media Server互換

⇨ RTMP(Real-Time Messaging Protocol)に準拠

オープンソースソフトウェゕ

⇨ ラセンスはLGPL

開発言語はJava

⇨ Linux, Windows, Mac OSX上で動作可能

※ Red5公式サト

⇨ 公式サト ⇒ http://code.google.com/p/red5/

▶ 旧公式サト ⇒ http://osflash.org/red5/

⇨ 公式Wiki ⇒ http://wiki.red5.org/

Red5の概要

<Red5とは?>

Page 4: Red5とFlexで作るmixiアプリ「ビデオチャット」事例紹介

Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved. 4

ビデオ映像のリゕルストリーミング

⇨ 保存された動画フゔルのストリーミング配信

ラブ映像のリゕルストリーミング

⇨ Ustreamやニコ生のようにWebカメラ映像のラブ配信

ラブ映像のレコーデゖング

⇨ Webカメラからの映像や音声をレコーデゖング

リモート共有オブジェクト

⇨ 複数クラゕント間でオブジェクトを共有

リモートメソッド呼び出し

⇨ クラゕントからサーバサドのメソッド呼び出し

Red5の概要

<Red5ができること>

Page 5: Red5とFlexで作るmixiアプリ「ビデオチャット」事例紹介

Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.

バージョン 主な機能

0.1.0 (2005-10-xx) 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サポート(予定)、RTMFPサポート(予定)

5

5年の歴史

Red5の技術要素

<Red5の歴史>

Page 6: Red5とFlexで作るmixiアプリ「ビデオチャット」事例紹介

Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved. 6

Tomcat

Apache Mina

Red5 API

Spring Framework (DIコンテナ)

Red5 Application

JMX

MBean

Client

RTMP (Real-Time Messaging Protocol)

開発が必要

開発が必要

停止

RMI

:9999

:1935

Red5の技術要素

<使用技術要素>

Page 7: Red5とFlexで作るmixiアプリ「ビデオチャット」事例紹介

Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.

Adobeサト『Flashの真実』

⇨ http://www.adobe.com/jp/choice/flash.html

7

Red5豆知識

<Adobeによる言及>

Page 8: Red5とFlexで作るmixiアプリ「ビデオチャット」事例紹介

Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.

Adobe Flex + Red5で開発した「ビデオチャット」

⇨ mixiゕプリとして公開中

▶ http://pk.aiit.ac.jp/avc/

ビデオ

テキスト

ボイス

※産業技術大学院大学におけるPBL(Project Based Learning)の一環として開発

mixiアプリでビデオチャット!

8

Page 9: Red5とFlexで作るmixiアプリ「ビデオチャット」事例紹介

Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.

実際のデモをご覧ください

mixiアプリでビデオチャット!

9

http://mixi.jp/view_appli.pl?id=4091

Page 10: Red5とFlexで作るmixiアプリ「ビデオチャット」事例紹介

Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.

Flash Flex

RTMP

Open Social API

ユーザーA

ユーザーB

mixiゕプリ

アーキテクチャ概要

10

Page 11: Red5とFlexで作るmixiアプリ「ビデオチャット」事例紹介

Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.

アプリ機能 Red5機能

1 テキストチャット リモートメソッド呼び出し

2 ビデオチャット 映像ストリーミング

2つの機能を例に コードを交えて説明

アプリ機能×Red5機能(1/7)

11

Page 12: Red5とFlexで作るmixiアプリ「ビデオチャット」事例紹介

Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.

アプリ機能 Red5機能

テキストチャット リモートメソッド呼び出し

アプリ機能×Red5機能(2/7)

‐テキストチャット‐

12

Page 13: Red5とFlexで作るmixiアプリ「ビデオチャット」事例紹介

Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.

Red5

Aさん

接続

入室 部屋

Bさん

“やっほー”

接続

入室

“やっほー” “やっほー”

アプリ機能×Red5機能(3/7)

‐テキストチャット‐

13

Page 14: Red5とFlexで作るmixiアプリ「ビデオチャット」事例紹介

Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.

Red5

Aさん

var nc:NetConnection = new NetConnection(); nc.connect("rtmp://red5server/Red5Application/room");

部屋 nc.call("sendMessage", new Responder(onResult), “やっほー”);

public boolean sendMessage(String msg) { IConnection conn = Red5.getConnectionLocal(); invokeOnAllConnections( conn.getScope(), "receiveMessage", msg ); }

Bさん

public function recieveMessage(msg:String):void { …; }

public function recieveMessage(msg:String):void { …; }

アプリ機能×Red5機能(4/7)

‐テキストチャット‐

14

Page 15: Red5とFlexで作るmixiアプリ「ビデオチャット」事例紹介

Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.

アプリ機能 Red5機能

ビデオチャット 映像ストリーミング

アプリ機能×Red5機能(5/7)

‐ビデオチャット‐

15

Page 16: Red5とFlexで作るmixiアプリ「ビデオチャット」事例紹介

Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.

Red5

Aさん

接続

Bさん

映像公開

接続

映像受信

アプリ機能×Red5機能(6/7)

‐ビデオチャット‐

16

Page 17: Red5とFlexで作るmixiアプリ「ビデオチャット」事例紹介

Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.

Red5

Aさん

var nc:NetConnection = new NetConnection(); nc.connect("rtmp://red5server/Red5Application");

var cam:Camera = Camera.get(); var mic:Microphone = Microphone.get();

Bさん

ns.play("red5BroadcastDemo", -1);

var ns:NetStream = new NetStream(nc); ns.attachVideo(cam); ns.attachAudio(mic); ns.publish("red5BroadcastDemo", "live");

アプリ機能×Red5機能(7/7)

‐ビデオチャット‐

17

Page 18: Red5とFlexで作るmixiアプリ「ビデオチャット」事例紹介

Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.

Google Code でソースコード公開中

▶http://code.google.com/p/aiit-videochat/

⇨ クラゕント サド

▶Adobe Flex(Action Script)

PureMVC Framework

⇨ サーバーサド

▶Red5(Java)

⇨ その他

▶mixiゕプリ用ガジェット(XML)

▶ボット機能(GoogleAppEngine/Python)

ソースコード公開中

18

Page 19: Red5とFlexで作るmixiアプリ「ビデオチャット」事例紹介

Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.

日本Red5ユーザ会

⇨ 2010年4月に発足

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

⇨ コンテンツはこれから充実

させていきます!

公式サト

⇨ http://www.red5.gr.jp/

19

日本Red5ユーザー会

日本Red5ユーザー会 検索

Page 20: Red5とFlexで作るmixiアプリ「ビデオチャット」事例紹介

Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.

OSC 2011 Tokyo/Spring で講演します

⇨ 3/5(土) 15:15 – 16:00 @早稲田大学

⇨ 「簡易電子会議室システムを作ってみよう」

⇨Red5+Flexで開発した例を交えてRed5を紹介

⇨システムのメージは次のページにて・・

OSC2011Tokyo/Spring 公式サト

⇨ http://www.ospn.org/osc2011-spring/

20

オープンソースカンファレンス

2011 Tokyo/Spring

osc2011 spring 検索

Page 21: Red5とFlexで作るmixiアプリ「ビデオチャット」事例紹介

Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved. 21

ログン画面 部屋選択画面 会議室画面

ユーザー

ユーザー

ユーザー

ユーザー

ユーザー

ユーザー

簡易電子会議室システム <RTMP>

<RTMP>

<RTMP>

<RTMP>

<RTMP>

<RTMP>

Page 22: Red5とFlexで作るmixiアプリ「ビデオチャット」事例紹介

Copyright 2011 Shinichiro Yoshida / STUDIO ARCANA Co.,Ltd. All Rights Reserved.