« JavaでJNAを使う Main Javaでライブカメラ »

JMF: JMStudioでRTP試し

JMFのデータ通信には RTP (Real-time Transport Protocol) というのが使える

のだそうで、付属サンプルの JMStudio でこれが行なえるというので試してみた。



とりあえず、1つのパソコン上で2つの JMStudio を立ち上げてデータ転送を確認してみる。

転送側では、「File->Transmit」にて設定。




キャプチャ設定をしたら…





転送アドレスを指定するのだが、これは「マルチキャストアドレス」を使用したほうがよいようだ。

マシンのローカルアドレスを指定した場合は受信と送信と用途は違っても1台で2つのセッションは作れないようで「Failed to create Session Manager」とのエラーが出てしまう。



なので、ここではマルチキャストアドレスの「224.0.0.0」を指定し、ポート番号を「22224」としてみた(設定ダイアログに例として出ている224.123.111.101:22224でも動作するようだ)。



これでマルチキャストによるデータ転送が始まる。メイン画面とキャプチャ画面の2つが表示される。



引き続き、もう一つのJMStudio側で受信設定をする。メニューは「File->OpenRTP Session」となり、通信設定に送信側と同様「224.0.0.0:22224」を指定する。




うまくいけば、受信した画像が表示される。



受信できない場合は、次のようなダイアログが表示される。


通信状況は、次のようなダイアログなどで確認できる。





マルチキャストアドレスには、ルータ越えを指定できる「224.0.1.0」というのがあるようで、これを試してみようとしたのだが、うまくいかなかった。ルータ越えの際には、TTL値の設定も適切に行なう必要がありそうだ。

なお、今回試した 224.0.0.0 のアドレスは予約と示しているサイトもあり、どのアドレスを使うか確認が必要そう。

また、今回試したのは Windows 環境でだったが、Linux 側にも jmf をインストールしようと入手した jmf-2_1_1e-linux-i586.bin を実行すると「+309: Command not found」のようなエラーが出ていた。.bin ファイルの内容を眺めてみると、「tail +309」と行数を指定している箇所が未対応になったためのエラーだったようで、ここを「tail -n 309」と変更した。なお、そのままエラーが出る場合だと、.bin ファイルが壊れて0バイトになってしまうので注意…。(このあたりがメンテナンスされてないほど、jmfが旧いってことなんでしょうけどねぇ)。

Leave a comment

Your comment