タグ : lccs

LCCSでP2Pマルチキャストのビデオ配信を行うサンプル

Adobe Live Cycle Collaboration Serviceを使ってP2Pマルチキャスト配信サンプルを作ります。

下のビデオはLCCS(LiveCycle Collaboration Service)を使ったP2Pビデオ配信サンプルです。
androidのカメラで撮影されている動画をリアルタイムに複数のデバイスに配信できます。
フォーラムではまだ接続数に限界があると書き込みがありましたが、5同時接続程度ならきちんと配信されていました。

作り方
まずアカウントを登録など、各種準備を行います。
あとは下のコードでコンパイルすればOK

配信側AS3

package
{
	import com.adobe.rtc.authentication.AdobeHSAuthenticator;
	import com.adobe.rtc.collaboration.WebcamPublisher;
	import com.adobe.rtc.collaboration.WebcamSubscriber;
	import com.adobe.rtc.events.SessionEvent;
	import com.adobe.rtc.session.ConnectSession;

	import flash.display.Sprite;
	import flash.display.StageAlign;
	import flash.display.StageScaleMode;


	public class Main extends Sprite
	{
		protected var _cSession:ConnectSession =  new ConnectSession();
		protected var _webCamSubscriber:WebcamSubscriber;
		protected var _webCamPublisher:WebcamPublisher;
		
		private var _username:String = "LCCSログイン時のユーザー名(メルアド)";
		private var _pass:String = "LCCSログイン時のパスワード";
		private var _roomname:String = "LCCSで作成したルーム名";	
		
		public function Main()
		{
			stage.align = StageAlign.TOP_LEFT;
			stage.scaleMode = StageScaleMode.NO_SCALE;
			var authenticator:AdobeHSAuthenticator = new AdobeHSAuthenticator();
			authenticator.userName = _username;
			authenticator.password = _pass;
			_cSession.roomURL = _roomname;
			_cSession.authenticator = authenticator;
			_cSession.login();
			_cSession.addEventListener(SessionEvent.SYNCHRONIZATION_CHANGE, onLogin);
		}
		
		
		protected function onLogin(p_evt:SessionEvent):void
		{
			
			//プレビュー用ビデオ受信
			_webCamSubscriber = new WebcamSubscriber();
			_webCamSubscriber.subscribe();			
			
			//配信設定
			_webCamPublisher = new WebcamPublisher();
			_webCamPublisher.publish();
			_webCamSubscriber.webcamPublisher = _webCamPublisher;
			addChild(_webCamSubscriber);
		}
	}
}

受信側AS3

package
{
	import com.adobe.rtc.authentication.AdobeHSAuthenticator;
	import com.adobe.rtc.collaboration.WebcamSubscriber;
	import com.adobe.rtc.events.SessionEvent;
	import com.adobe.rtc.session.ConnectSession;

	import flash.display.Sprite;
	import flash.display.StageAlign;
	import flash.display.StageScaleMode;
	
	public class Main extends Sprite
	{
		protected var _cSession:ConnectSession =  new ConnectSession();
		protected var _webCamSubscriber:WebcamSubscriber;
		
		//ID,PASSをほんとのソースに埋め込むとまずいので、
		//管理画面で表示されているトークンを埋め込む方法がおすすめです。
		private var _username:String = "LCCSログイン時のユーザー名(メルアド)";
		private var _pass:String = "LCCSログイン時のパスワード";
		private var _roomname:String = "LCCSで作成したルーム名";
		
		public function Main()
		{
			stage.align = StageAlign.TOP_LEFT;
			stage.scaleMode = StageScaleMode.NO_SCALE;

			var authenticator:AdobeHSAuthenticator = new AdobeHSAuthenticator();
			authenticator.userName = _username;
			authenticator.password = _pass;
			_cSession.roomURL = _roomname;
			_cSession.authenticator = authenticator;
			_cSession.login();
			_cSession.addEventListener(SessionEvent.SYNCHRONIZATION_CHANGE, onLogin);
			
		}
		
		protected function onLogin(p_evt:SessionEvent):void
		{
			//受信側
			_webCamSubscriber = new WebcamSubscriber();
			_webCamSubscriber.subscribe();
			addChild(_webCamSubscriber);
		}
	}
}

※Packager for iPhoneではカメラをサポートしてないので今のところ配信はできません。
※動作確認できたのは、
・android2.2
・winXP,win7のAIR
・MacOSX AIR
・iPad,iPodTouch4G

Adobe LiveCycle Collaboration Service の使い方

Adobe LiveCycle Collaboration Serviceを使ってみました。

このサービスはチャット、WEBカメラ、ホワイトボード、VoIP、複数ユーザー、セッションの管理などが利用出来るとあります。

LCCSを利用するための手順を順番に説明します。

1,アカウントの登録

LCCSを利用するためのアカウントの登録を行います。登録フォームはこちら
※ここで登録したメアド、パスワードはコード上でも利用しますのでメモを忘れずに!

2,SDKをダウンロード。

アカウントの登録後、ログインすると下のような画面に遷移します。
画面の(3)からLCCSのライブラリをダウンロードします。
このライブラリの中には色々なサンプルが入っているのでとても重要です。

3,ROOMの作成

アカウントの登録後すでに何らかのROOMが作成済みかもしれません。
作成したROOMのURLは上記の画像の(2)+(1)のような表記になります。
https://collaboration.adobelivecycle.com/[youraccount]/[roomname]

4,完了

完了です。あとはなにかサンプルを作って動作確認できます。
※FlashファイルからダウンロードしたSDK内にあるswcファイルにライブラリ登録する必要があります。