TCPSyphonとUDPSyphonの違いについて

 TCPSyphonは、BonjourによってIPアドレスやネットワークポートを自動検知しておりましたが、UDPSyphonでは自分で入力する必要があります。その代わり、通常の1対1の通信であるユニキャストの他に、 ローカルブロードキャスト、マルチキャストに対応しています。ブロードキャスト、マルチキャストを使用する場合、Methodプルダウンリストを選択し、IPアドレスもそれに合わせたものを準備する必要があります。

 UDPは特に相手を指定せずに送れるのがメリットですが、その代わり通信途中でパケットをロスするなど安定性と信頼性に欠けます。主に転送サイズが大きくなるか、ネットワークの品質が悪くなると、 送信時にパケットロス、ルータでのパケットロス、受信時のパケットロスが発生しますので、転送サイズの表示を確認して画質が許すだけ転送サイズが小さくなるように送るのがコツです。またパケットロスした回数をサーバ側、 クライアント側のそれぞれを表示するようにしましたので、そちらも参考に送出条件とネットワーク環境の準備を行うようにしてください。

 理論上はかなりの台数に映像を送出出来ると思うのですが、実際に弊社でそれだけの数を用意出来ておりませんので未確認です(2、3台での動作確認はしております)。 配信先が1つや2つの場合で、確実に高いフレームレートで送出したい場合は、TCPSyphonをお使いください。 配信先が多い場合(10個やそれ以上)で、それほど配信品質にこだわらない場合は、UDPSyphonのご使用をお勧め致します。  なお、UDPSyphonは如実に画質を良くすると、転送サイズが大きくなり、それによってクライアント側のフレームレートが極端に低くなります。画質が許すだけ転送サイズが小さくなるように、TURBOJPEG圧縮を選択し、画質を低くしてお使いください。

もし、希有な方が居りましたら、ぜひフィードバックを頂けたらと思います。

私たちは、TCPSyphon, TLRemoteCamera for iOS, TLSyphonViewer for iOSも提供しています。

Attention "AppNap" on OSX10.9

OSX Mavericksから、バックグラウンドプロセスをスリープ状態にしてバッテリーを節約する機能が付きました。TCPSyphonは常に稼働してほしいので、この機能を無効にして使用してください。 有効なままですと、ウィンドウが陰に隠れた段階で、送信や受信が止まってしまう恐れがあります。

defaults write sg.techlife.TCPSyphonClient NSAppSleepDisabled -bool YES
defaults write sg.techlife.TCPSyphonServer NSAppSleepDisabled -bool YES

OSX MavericksのAppNapを無効にする(右クリックメニューとコマンドライン)

動作環境

  • OS: OSX 10.7以降、10.8を推奨 OSX10.9上で使用する際には、"AppNap"機能を無効にしてください!
  • Network: ギガビット対応のルータと有線接続を推奨、もしくは801.11n 5GHzでのWiFi接続
  • Framerate: ネットワークの帯域、サーバへのクライアントからの接続数に依存しますが、60fpsをターゲットにしています

Download

About version 1.31

  • クライアントのメモリリークを修正
  • ネットワークインタフェースの選択をサポート
  • 送信レートのサポート
  • 細かな不具合修正

About version 1.20

  • TurboJpegをサポート
  • クライアント上でのメモリリークを修正

About version 1.10

  • ネットワーク品質が悪い場合、メモリリークしていた問題を修正
  • 転送バイトを表示し、ドロップフレームの回数も表示するようにしました

About version 1.00

  • とりあえずリリースしてみました

License

  • UDPSyphon, test suite, and our provided reference implementations are licensed under a Simplified BSD software license.
Copyright 2014-2016 z37soft (Nozomu Miura). All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.