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 | 圧縮を使用しません。最も高速なオプションです - ビデオは、ネット経由で送信される前に圧縮されません。 |
LZO | LZO 辞書圧縮*1を使用します。かなり高速ですが、見た目が非常に均一的な漫画やアニメのような人工的なソースに関してのみうまく圧縮します。 |
Huffman | Marcus Geelnard による、かなり低速なハフマン*2ルーチンを使用します。LZO よりも実写映像を圧縮します。 |
GZip | Gzip ハフマンのみの圧縮を使用します。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 | 初版 |
原文 Date: 2006/01/02 14:51:17
日本語訳 $Date: 2008/06/30 22:01:50 $