RTMPy インストール †内容 †
Git インストール †インストール †$ cd /usr/local/src $ wget http://www.kernel.org/pub/software/scm/git/git-1.6.5.tar.gz $ cd git-1.6.5 $ ./configure $ make $ sudo make install 参考URL †Twisted インストール †インストール †$ cd /usr/local/src $ wget http://tmrc.mit.edu/mirror/twisted/Twisted/8.2/Twisted-8.2.0.tar.bz2 $ tar jxvf Twisted-8.2.0.tar.bz2 $ cd Twisted-8.2.0 $ python setup.py install 参考URL †PyAMF インストール †インストール †$ cd /usr/local/src $ wget http://download.pyamf.org/releases/latest/PyAMF-0.5.1.tar.gz $ tar zxvf PyAMF-0.5.1.tar.gz $ cd PyAMF-0.5.1 $ python setup.py install $ python setup.py test 参考URL †Zope Interface インストール †インストール †特になし 参考URL †RTMPy インストール †インストール †$ cd /usr/local/src $ git clone git://rtmpy.org/rtmpy.git $ cd rtmpy $ python setup.py build $ python setup.py install 「$ trial rtmpy」がなーんかうまくいかなかったので、ここらへんした。 $ /usr/local/python-2.5.2/bin/python2.5 ez_setup.py $ /usr/local/python-2.5.2/bin/python2.5 ez_setup.py -U setuptools 確認 †$ trial rtmpy 参考URL †動作確認 †サンプルを取得する †$ cd 任意のフォルダ $ git clone git://rtmpy.org/rtmpy-examples.git/ EchoTest? サンプルを試す(1) †
クライアント側 †ドキュメントルートのディレクトリに移動する。 サーバ側 †$ cd rtmpy-examples/echo $ python server.py host を指定しする場合は、こんな感じ。 $ python server.py --host=192.168.00.00 ブラウザから確認する †RTMP のテキストボックスに、rtmp://192.168.00.00:1935/echo を入力し、「AMF 0」ボタンを押すと、つながった。 EchoTest? サンプルを試す(2) †クライアント側 †ActionScript? を書いて rtmp://localhost:1935/echo に接続できるか試してみる。 package { import flash.display.BitmapData; import flash.display.Bitmap; import flash.display.Sprite; import flash.net.NetConnection; import flash.net.SharedObject; import flash.net.NetStream; import flash.net.Responder; import flash.events.NetStatusEvent; import flash.events.Event; import flash.events.MouseEvent; import flash.net.ObjectEncoding; [SWF(width="465", height="465", backgroundColor="#000000", frameRate="60")] public class EchoSample extends Sprite { private var _nc:NetConnection; private var _ns:NetStream; private var _stageW:Number; private var _stageH:Number; public function EchoSample() { addEventListener(Event.ADDED_TO_STAGE, initialize); } private function initialize(e:Event):void { removeEventListener(Event.ADDED_TO_STAGE, initialize); _stageW = stage.stageWidth; _stageH = stage.stageHeight; _nc = new NetConnection(); _nc.objectEncoding = ObjectEncoding.AMF0; _nc.connect("rtmp://localhost:1935/echo"); _nc.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); } private function netStatusHandler(e:NetStatusEvent):void { trace("connected is: " + _nc.connected ); trace("event.info.level: " + e.info.level); trace("event.info.code: " + e.info.code); switch (e.info.code) { case "NetConnection.Connect.Success": trace("NetConnection connected"); break; case "NetConnection.Connect.Rejected": trace ("NetConnection was Rejected"); break; case "NetConnection.Connect.Failed": trace("NetConnection was Failed"); break; case "NetConnection.Connect.AppShutDown": trace("NetConnection AppShutDown"); break; case "NetConnection.Connect.Closed": trace("NetConnection Closed"); break; } } } } サーバ側 †$ cd rtmpy-examples/echo $ python server.py ブラウザから確認する †作成した SWF にブラウザからアクセスすると、とーりあえず "NetConnection? connected" と trace された。 Comment †
Counter: 9961,
today: 7,
yesterday: 0
|