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

番組編集用ウェブサーバ

概要

番組編集用ウェブサーバは、編集インターフェース(ウェブブラウザ)上に番組制作用ノンリニア編集画面を提示し、操作がおこなわれるたびに画面を更新するとともに、操作の結果を編集記述として出力します。また、編集用グリッドクライアントを起動し、出力した編集記述を与えて処理させます。
編集システムとして動作させるためには、編集用ウェブサーバプログラム、タイムライン上の編集データや編集作業環境を保存して管理するプロジェクトデータベース、ノンリニア編集のクリップビンとして番組素材を管理する素材ファイルデータベース、編集で利用することのできる番組素材ファイルを定期的にチェックする素材ファイルデータベース管理デーモン、新規のMXFファイルを作成するMXFファイル生成プログラムが必要です。
プロジェクトデータベースは、異なるホスト上で動作させることも、同一ホスト上で動作させることも可能です。複数の番組編集用ウェブサーバが同一のプロジェクトデータベースを利用することで場所にとらわれることのないシームレスな編集作業環境を提供できます。素材ファイルデータベースは、番組編集用ウェブサーバごとに作成、動作させることが必要です。

ダウンロード

番組編集用ウェブサーバのソースコードは、ここからダウンロードしてください。
ダウンロードしたソースには、編集用ウェブサーバプログラム、編集用ウェブサーバプログラムのための設定ファイル、再生サーバ名前解決プログラムが含まれます。

動作環境

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

番組編集用ウェブサーバのインストールにあたり以下のパッケージが必要となります。openSUSEにおいてはYaST2を用いてインストールすることができます。()に記されている数字は動作確認をおこなったパッケージのバージョンです。pythonは2.6以上のバージョンを使用してください。

コンパイル方法

ダウンロードしたソースコード(editserver.tar.gz)を適当なディレクトリで展開します。

% tar xvfz editserver.tar.gz

編集用ウェブサーバプログラムは、ダウンロードしたソースのeditserverディレクトリ下にある1)cgi-binディレクトリ、2)htdocsディレクトリです。この2つのディレクトリすべてを、apache2の設定に合わせて適切な場所に保存してください。例えばopenSUSEを用いた場合、ウェブサーバのデフォルトのディレクトリは/srv/wwwとなります。
フレキシブル制作システムの分散ファイルシステムを用いて番組素材ファイルを管理する場合には、再生サーバ名前解決プログラム(locate_material)をインストールする必要があります。editserver/binディレクトリ下にある、スクリプトlocate_materialを/usr/local/binにコピーしてください。

apache2の設定

/etc/apache2/conf.dディレクトリ下にあるpython.confを修正します。editserver/etcディレクトリにあるapache-python.confの内容をpython.confとしてコピーしてください。64bitの環境では、mod_python.soのあるディレクトリが/usr/lib/apache2ではなく/usr/lib64/apache2にあります。環境に合わせてファイル内のパスの記述を修正してください。
サービスの自動起動設定をおこないます。手動で設定する場合は、ルート権限で以下のとおり設定してください。

# chkconfig apache2 on
# chkconfig --list apache2

設定

編集用ウェブサーバ、プロジェクトデータベース、素材ファイルデータベースの設定に合わせて、editserver/cgi-bin/confディレクトリ下のconfig.pyを編集してください。デフォルトの場合、特に修正する必要はありません。プロジェクトデータベース情報(class DB)、素材データベース情報(class DBMaterial)のホスト名もそのままで動作します。また、config.pyが読み出す設定ファイルとして、editsrv.loggingとeditsrv.confの2つのファイルがあります。どちらもeditserver/cgi-bin/confディレクトリ下にあります。環境やログ出力させたいデータにあわせて修正してください。

ブラウザ上の素材ファイル一覧に表示させるサムネイルのサムネイル画像格納用のディレクトリを作成しアクセス権限を設定します。

# mkdir -p /srv/www/htdocs/thumbnail
# chmod 1777 /srv/www/htdocs/thumbnail

MXFファイル生成プログラム(mkmxf_newCreateFile)を/usr/binか/usr/local/binディレクトリの下にコピーし、コマンドラインから実行できる状態にしておいてください。
フレキシブル制作システムでは分散ファイルシステムによって番組素材ファイルを管理します。分散ファイルシステムを/bigpoolにマウントしてください。

再生サーバ名前解決プログラムの設定

分散ファイルシステムを用いる場合、素材ファイルの動画を直接再生するために、指定した素材ファイルが実際どのファイルサーバに保存されているのかを知る必要があります。再生サーバ名前解決プログラム(locate_material)の作業用ディレクトリを作成してください。デフォルトの設定では/raidを作成する必要があります。他のディレクトリを作業用ディレクトリにする場合は、/usr/local/binディレクトリにコピーした再生サーバ名前解決プログラム(locate_material)の10行めを修正し、作業用ディレクトリのパスに修正してください。ファイルサーバのIPアドレスとFSNUMを設定している個所(スクリプトの29行め以降)で、FSNUMに対して、1以上1000以下の整数を、分散ファイルシステムを構成するファイルサーバごとに一意に与えてください。

起動

まずapache2を起動してください。再起動する場合は以下のコマンドでおこないます。

# apache2ctl graceful

編集用グリッドクライアントを用いる場合は/home/gtuser/nhkgrid/src/clientディレクトリに編集用グリッドクライアントプログラム(client)を配置します。これと異なる場所にグリッドクライアントを配置する場合には、editsrv/cgi-bin/bbディレクトリ下にあるTimeLine.pyのargsの値を変更してください。

また、番組素材ファイルや編集しているタイムライン上の番組ファイルを動画再生する際に、分散ファイルシステムのどのファイルサーバにファイルが保存されているのかを知るために、分散ファイルシステムに含まれるtapサーバを起動します。以下のコマンドを実行してください。ファイルサーバの名前、ポート番号および作業用ディレクトリは環境にあわせて変更してください。2つめのコマンドの実行する際、「d」オプションで、再生サーバ名前解決プログラムの設定で作成したディレクトリを指定してください。例えば、分散ファイルシステムですでに起動しているファイルサーバのホスト名がfileserver1、ポート番号が9000の場合、起動コマンドは以下のようになります。

% tap_svr -p 11000 -h fileserver1:9000
% tap_kvd -p 11001 -h fileserver1:9000 -d /raid -i

クライアントの設定、動作環境

番組編集用ウェブサーバを用いて編集する編集インターフェースとして、Windows上で動作するウェブブラウザを用います。本システムではFirefox(バーション3.6)での動作確認をおこなっています。また、番組素材ファイルや完成番組ファイルを再生するためには、VideoLanプロジェクトが開発するVLC Media Playerが必要となります。VLC Media Playerをインストールする際にMozilla Pluginにチェックを入れてインストールしてください。詳細は、VideoLanのサイト(http://www.videolan.org/vlc/)を参考にしてください。

ログファイル

番組編集用ウェブサーバは、動作ログを出力します。editsrv/cgi-bin/confディレクトリ下にあるスクリプトファイルconfig.pyと、ファイルeditserv.loggingの設定にしたがってログを出力します。設定を変更したい場合は、これらのファイルを修正してください。デフォルトの設定では、/var/log/webedit/app.logにログを出力します。ウェブサーバへのアクセスに関するログは、apache2のログを参照してください。

商標

NovellならびにSUSEはNovell, Inc.の登録商標です。
LinuxはLinus Torvals氏の登録商標です。
Windowsは、米国 Microsoft Corporation の米国およびその他の国における登録商標または商標です。 ApacheはApache Software Foundationの登録商標または商標です。
FirefoxはMozilla Foundation の米国および日本における商標または登録商標です。