TOPへ
ソース一覧
利用許諾
FAQ
お問い合わせ
関連資料

高速ファイル転送システム

概要

高速ファイル転送システムは、将来のファイルベースの放送局で必要と考えられる以下の要件を満たすことを目標に開発したファイル転送方式です。

開発したファイル転送システムでは、データパケットの送信にUDPを用いることで、長距離でも高速な転送を可能にしました。受信側から送信側には制御パケットを送信します。
制御パケットの送信にTCP を用い、その制御パケットに確認応答を重畳することで信頼性を確保しています。
受信側で制御パケットの送信間隔を変えることで転送速度の制御が可能となっています。

フレキシブル制作システムでは、高速ファイル転送システムをファイルサーバ間の番組素材ファイルの転送に用いています。
高速ファイル転送システムはMXF ファイルの映像フレーム単位での部分的な転送が可能なため、フレキシブル制作システムでは、編集に必要な映像カットのみを転送するために用いています。

また、フレキシブル制作システムでは、番組素材ファイルの映像処理にかかる時間を短縮するため、ファイル転送の途中に映像処理サーバを多段に接続することで、転送と同時に映像処理をしています。
映像処理サーバでは、転送された映像フレームごとにデコード、映像処理、エンコードのプログラムを呼び出すことで、ファイル転送中に映像処理をしています。

ダウンロード

高速ファイル転送システムのソースコードはここからダウンロードしてください。
コンパイルには素材作成用MXFライブラリが必要です。素材作成用MXFライブラリは、ここからダウンロードしてください。

動作環境

下記の環境で動作確認しています。

コンパイル方法

素材作成用MXFライブラリのソースコードを展開し、nklibとnkmxflibをコンパイルします。i386環境ではnklibディレクトリ内のMakefile内の-DAMD64を削除してからコンパイルしてください。なお、すでに素材作成用MXFライブラリをコンパイルしている場合には、この操作は必要ありません。

% tar xvfz nkmxflib.tar.gz
% cd nklib
% make
% cd ../nkmxflib
% make

ファイルの送信や受信をおこなうサーバで起動するFMFTPサーバプログラムのソースコードを展開し、コンパイルします。
展開後、FMFTP/FMFTPD ディレクトリに移動し、以下のコマンドでコンパイルしてください。
コンパイルにはnklibとnkmxflibを用いています。
FMFTP.tar.gzをnkmxflib.tar.gzと異なるディレクトリに展開する場合には、Makefile内のパスを書き換えてください。

% tar xvfz FMFTP.tar.gz
% cd FMFTP/FMFTPD
% make rebuild

成功すれば、fmftpdというFMFTPサーバプログラムの実行ファイルが作成されます。

FTPと同じようにコマンドラインからファイル転送をおこなうためにはターミナルプログラムが必要です。 FMFTP/FMFTPTerminal ディレクトリに移動し、以下のコマンドでコンパイルしてださい。

% cd FMFTP/FMFTPTerminal
% make rebuild

成功すれば、fmftptermというターミナルプログラムの実行ファイルが作成されます。

フレキシブル制作システムのファイル転送サービスで用いるためには別のターミナルプログラムが必要です。
このプログラムをコンパイルするためには、まず FMFTP/transtermディレクトリに移動してください。
FMFTPサーバにログインするためのユーザ名とパスワードをmain.cppのUSER_NAME、PASSに記述してください(デフォルトはgtuser、gtuserです)。
以下のコマンドでコンパイルしてください。

% cd FMFTP/transterm
% make

成功すれば、transtermというターミナルプログラムの実行ファイルが作成されます。
実行ファイルを、nhkgrid/binへコピーしてください。詳細はファイル転送サービスプログラムの説明を参照してください。

実行前の準備

FMFTPサーバプログラムを実行するために、各サーバで設定ファイルを作成し、 FMFTPサーバプログラムが読み込めるディレクトリに置いてください。
デフォルトの設定では、FMFTPサーバプログラムの実行ファイル(fmftpd)を実行するディレクトリにあるmain.ini ファイルを読み込みます。書式はini ファイル形式となっています。
設定ファイルの記述内容は、ダウンロードしたファイルを展開した中のreadme.pdfファイルを参照してください。

実行方法

FMFTPを用いたファイル転送をおこなうためには、各ファイルサーバで送受信をおこなう FMFTPサーバプログラムと、ファイル転送の指示をおこなうターミナルプログラムが必要です。
各サーバでFMFTPサーバプログラムを起動します。
FMFTPサーバプログラムは通常、root 権限での起動が必要です。詳細はreadme.pdf を参照してください。

% cd FMFTP/FMFTPD
% su
# ./fmftpd -m off

FTPと同じようにコマンドラインからファイル転送をおこなう時は、クライアントの端末のFMFTPTerminalディレクトリでターミナルプログラムを起動してください。

% cd FMFTP/FMFTPTerminal
% ./fmftpterm

ターミナルコマンドについては、readme.pdfを参照してください。

フレキシブル制作システムのファイル転送サービスで用いる時は、ターミナルプログラムをnhkgrid/binへコピーしていることを確認してください。
ファイル転送サービスがプログラムを起動するので、手動でプログラムを起動する必要はありません。

関連文献

注意事項

コマンドラインからファイル転送をおこなう場合、初期設定では約10Mbpsの速度で転送をおこないます。 readme.pdf を参照して、動作させる環境に応じて設定してください。
本プログラムは高速ファイル転送システムを実験、評価するために作成したものであり、実用に耐えるに十分な実装はおこなっていません。 実験、評価用途としてご利用ください。
ネットワークは、放送局の業務用に閉じた専用IP ネットワークでの利用を考えており、インターネットのような公平性が必要となるネットワークでの利用は想定していません。
今回のソースコードには、デコードプログラム、映像加工プログラム、エンコードプログラムなどは含まれません。

商標

NovellならびにSUSEはNovell, Inc.の登録商標です。
LinuxはLinus Torvals氏の登録商標です。