TCPDeliver

TCPServer (clip, int "port")
TCPSource (string hostname, int "port", string "compression")

このフィルタは、ネットワーク経由でクリップを送信することを可能にします。複数のクライアントを同じマシンに接続することができます。

シンタックス

サーバー:

TCPServer (clip, int "port")

このフィルタは、指定されたポート(port)で動作しているカレントのマシン上にサーバースレッドを起動します。port のデフォルトは、22050 です。
スクリプトを開いたアプリケーションで出力を得ることができますが、サーバーはアプリケーション(たとえば VirtualDub)が開いている間のみ動作しています。

使用例:

Colorbars(512, 256)
TCPServer()

サーバーを起動します。

クライアント:

TCPSource (string hostname, int "port", string "compression")

このフィルタは、与えられたアドレス(hostname。たとえば IP 番号)を持つマシンの、与えられたポート(port)で動作しているサーバーに接続します。port のデフォルトは、ここでも 22050 です。

compression は、ビデオに対して使用される圧縮方法を選択することを可能にします。

圧縮タイプ説明
None圧縮を使用しません。最も高速なオプションです - ビデオは、ネット経由で送信される前に圧縮されません。
LZOLZO 辞書圧縮*1を使用します。かなり高速ですが、見た目が非常に均一的な漫画やアニメのような人工的なソースに関してのみうまく圧縮します。
HuffmanMarcus Geelnard による、かなり低速なハフマン*2ルーチンを使用します。LZO よりも実写映像を圧縮します。
GZipGzip ハフマンのみの圧縮を使用します。Huffman の設定に非常に近い動作をしますが、より高速なようです。

compression が省略された場合、現在のところデフォルトで GZip が使用されます。インターレース素材は、差分符号化*3のため、ノンインターレース素材よりうまく圧縮されません。ネットワーク速度が問題なら、SeparateFields を使うとよいでしょう。

使用例:

TCPSource("127.0.0.1")
Info()

サーバーが動作しているなら、ローカルマシーンへ接続します。

使用例

これを使って各フィルタまたはいくつかのフィルタを異なる PC で動作させることができます。たとえば:

# クラスタメンバー 1:
AVISource
Deinterlacer
TCPServer

# クラスタメンバー 2:
TCPSource
Sharpener
TCPServer

# クラスタメンバー 3:
TCPSource
# クライアントアプリ -> ビデオコーデック -> 最終ファイル

ユーザビリティに関する覚え書き

いったん TCPServer を追加すると、そのチェインにフィルタ追加したり、そのフィルタからの出力を使用したりすることはできません。サーバーは独立したスレッドで動作しますが、AviSynth が完全にスレッドセーフ*4ではないため、複数のサーバーを確実に動作させることはできません。以下のスクリプトは使用すべきではありません:

AviSource("avi.avi")
TCPServer(1001)
TCPServer(1002) # これは良いアイデアではない

基本的なルールは、1 スクリプトあたり 2 つ以上の TCPServer を使用しないことです。

TCPServer のあとにコマンドを使用するのも悪いアイデアです:

AviSource("avi.avi")
TCPServer(1001)
AviSource("avi2.avi") # やってはいけない。これはサーバーを無効化する。

AviSynth は、TCPServer の出力が使用されないということを検出します。そのため、サーバーフィルタを中断します。TCPServer は、つねに最後のフィルタであるべきです。

更新履歴

v2.55初版

註: このページは、AviSynth 2.5.8 RC3 に同梱されている英語版ヘルプの日本語訳です。原文は、AviSynth をインストールしたフォルダ内の Docs/english/corefilters/tcpdeliver.htm にあります。なお、このページのテキストおよび画像のライセンスは、オリジナルのそれに準じます。詳しくは、AboutLicense を参照してください。


最終更新日時: 2014-03-11 (火) 03:49:31 (3927d)