ストリーミングサーバ(spook)

今日は朝から雨模様。ココスで昼飯。

昨日の話だが、PLEXTOR PX-TV402Uを購入。

VGA画質でLinuxでストリーミングをやるため。
ハードで圧縮・Linux対応でずっと探してたんですがようやく見つかった。
DV + WMEはスペックの関係でハーフVGAまでしか出来なかったし、以前、XVD CamCastを試したが画質・機能は申し分ないがコストが…。MPEG2TSは対応キャプチャが入手困難という状況で断念した。
※この製品も、PLEXTORがコンシューマー向け製品撤退?という話らしく、入手がだんだん難しくなってきている模様・・・。

※このあたりのサイトを参考。
GLAN TANKでTV録画
Linuxで録画

ということで、spook + VLC という環境で、映像3Mbps、音声128Kbpsで設定。
まあ、まずまずといったところ。

・送信側
Celeron 1GHz 128MB
Fedora Core 5 + spook(ストリーミング)

・受信側
P3 800MHz 128MB
Win2000 + VLC media player
※QuickTimeは重すぎた。ライセンス買わんと全画面表示できんし。

画面が明るい絵から暗い絵に切り替わると、同期がとれないのか、一瞬乱れるのだがこれはハードの問題なのだろうか?

他サイトで言われている音ずれは今のところなし。
あとはインターネット経由で問題ないか確認予定。

●端末で、VLC media playerで視聴するとこんな感じ。

●さらに、VLC media playerを全画面表示して、スキャコン経由でTVに出力

※画面が網目上になっているのは、走査線の関係です。実際はもっとはっきり見えます。

■下記、インストールログ
Fedora Core 5をベースにインストールを行った。

●カーネルアップデート
2.6.16以降じゃないとダメらしいのでアップデート。
# cd /usr/src
# tar ztvf /usr/local/src/linux-2.6.21.tar.gz

# cd /usr/src/linux-2.6.21
# make mrproper

# cd /usr/src/linux-2.6.11
# cp .config ../linux-2.6.21/

# cd /usr/src/linux-2.6.21
# make menuconfig
(OSS をインクルードしておく)

# make bzImage && make modules
# make modules_install
# installkernel 2.6.21 arch/i386/boot/bzImage System.map

(再起動)
起動したら、GRUB の defaultを変更する。

# vi /boot/grub/grub.conf
grub.conf
※このマシンは、FMV-6000CL2なんで、カーネルの起動オプションに「edd=off」を追加してます。これいれとかないと、起動しないんで。

●fxloadのインストール
# cd /usr/local/src
(http://sourceforge.net/project/showfiles.php?group_id=17679 からソースを取ってくる)
# tar xvf fxload-2002_04_11.tar.gz
# cd fxload-2002_04_11
# make
# make install

●USBドライバのインストール
# cd /usr/local/src
(http://oss.wischip.com/ からLinux用のソースを取ってくる)
# wget http://oss.wischip.com/wis-go7007-linux-0.9.8.tar.bz2
# tar xvf wis-go7007-linux-0.9.8.tar.bz2
(新しいカーネルだとコンパイルが通らないのでこのパッチを当てる)
# wget http://bart.ulyssis.org/go7007/wis-go7007_0.9.8_2.6.21.patch
# patch -p0 --verbose < wis-go7007_0.9.8_2.6.21.patch

# cd wis-go7007-linux-0.9.8
# make
# make install
# cd apps
# cp gorecord modet /usr/local/bin

(再起動)

※lsmodで確認
snd_go7007 6820 1 go7007
snd_pcm 80648 1 snd_go7007
snd_timer 22788 1 snd_pcm
snd_page_alloc 10248 1 snd_pcm
snd 49252 3 snd_go7007,snd_pcm,snd_timer
soundcore 9568 1 snd

●チャンネル変更プログラム
GLAN TANKでTV録画より、ダウンロード。
# cd /usr/local/src
# wget http://w3.quake3.jp/sushi-k/pool/glantank/spook/gochannel.tar.gz
# cd wis-go7007-linux-0.9.8
# tar xvf gochannel.tar.gz
# cd apps
# rm gochannel
# vi Makefile
gochannel: gochannel.c
gcc -Wall $(CFLAGS) -o gochannel gochannel.c tv-freq.c

# make
# cp gochannel /usr/local/bin
その後:今回の環境で、このツールを使うとチャンネル変更はできたのだが、音声が遅れるようになる?(謎)。なぜだろう??

●xvidcoreのインストール
# cd /usr/local/src
# wget http://downloads.xvid.org/downloads/xvidcore-1.1.2.tar.gz
# tar xvf xvidcore-1.1.2.tar.gz
# cd xvidcore-1.1.2
# cd build
# cd generic
# ./configure
# make
# make install

●spookのインストール
# cd /usr/local/src
# wget http://www.litech.org/spook/dist/spook-20050207.tar.bz2
# tar xvf spook-20050207.tar.bz2
# cd spook-20050207

(spook.sockのディレクトリ調整をする)
spook.sock がなぜかカレントディレクトリに作成されてしまうので、

# grep spook.sock *
control.c: strcpy( addr.sun_path, "spook.sock" );
spookctl.c: strcpy( addr.sun_path, "spook.sock" );

となっているので、次のように書き換えた。

# grep spook.sock *
control.c: strcpy( addr.sun_path, "/var/run/spook/spook.sock" );
spookctl.c: strcpy( addr.sun_path, "/var/run/spook/spook.sock" );

# mkdir /var/run/spook

# ./configure
# make
# make install

configファイルを/etcに配置し、

# vi /etc/spook.conf
spook.conf

# spook -c /etc/spook.conf

で起動確認。問題なかったんで起動スクリプトを下記のように。

# vi /etc/rc.d/init.d/spook
spook

# chmod 755 /etc/rc.d/init.d/spook

(自動起動設定)
# chkconfig --add spook
# chkconfig spook on
# chkconfig --list spook
spook 0:off 1:off 2:on 3:on 4:on 5:on 6:off

再起動後、クライアントから接続試験。
ALL OK!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)