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

  1. コメントはまだありません。

  1. 2012年 2月 22日