So-net無料ブログ作成
KTV-FSUSB2 ブログトップ

Ubuntu 12.10 (gcc 4.7)でのrecfsusb2nコンパイル [KTV-FSUSB2]

正式リリースまで間がないこともありUbuntu12.10を試しているが、recfsusb2nのコンパイルが通らなかった。ソースは「sh0 / recfsusb2n・GitHub」に「tssplitter_lite+httpサーバ」のパッチを適用したものを使用した。(こちらの記事を参照、この記事でMakefile変更まで完了していることが前提)
$ make
・・・・・・・・・・・・・・・・・・・
usbops.cpp: 関数 ‘void usb_getdesc(const char*, usb_device_descriptor*)’ 内:
usbops.cpp:22:60: エラー: ‘read’ was not declared in this scope
・・・・・・・・・・・・・・・・・・・
調べた結果、GCCバージョンが4.6から4.7に上がったことによるもので以下の変更が必要であった。
--- usbops.cpp.orig 2012-10-13 05:23:16.144456390 +0900
+++ usbops.cpp 2012-10-13 05:24:01.952455036 +0900
@@ -4,6 +4,7 @@
 #include <errno.h>
 #include <string.h>
 #include <sys/file.h>
+#include <unistd.h>

 #include <iostream>

あとは再コンパイルと動作確認、
$ make
$ ./refsusb2n --b25 --sid hd --http 8888
$ vlc http://localhost:8888/27
これで無事視聴できた。
既にPT3については問題なくコンパイルが通っているので、Ubuntu 12.10移行への最低限の準備ができた。
nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット

recfsusb2nのコンパイル(cmake) [KTV-FSUSB2]

「http://tri.dw.land.to/fsusb2n/」が無くなったので、「sh0 / recfsusb2n・GitHub」からのものをコンパイルしてみた。初めての「cmake」だったが何とか..、「CMakeLists.txt」を一箇所修正が必要であった。因みに環境はUbuntu12.04。(追記:recfsusb2nはここにもありました)
$ sudo apt-get install libboost-thread-dev libboost-filesystem-dev
$ tar xvfz sh0-recfsusb2n-434014e.tar.gz
$ cd sh0-recfsusb2n-434014e
$ ls
CMakeLists.txt README cmake src
$ mkdir build
$ cd build
$ vi ../src/CMakeLists.txt
・・・・・・・・・・
# Libraries
SET(FSUSB_LINK_INT "-lpthread -lboost_system") #追加
SET(FSUSB_LINK_EXT "${BOOST_LDFLAGS}")
・・・・・・・・・・
$ cmake ..
$ make
$ ls src/
CMakeFiles Makefile cmake_install.cmake recfsusb2n
正常であれば、新たに作成された「src」配下に目的の「recfsusb2n」が作成される。
あと、FSUSB2内蔵カードリーダを使わずに外付けカードリーダを使う場合は、
$ vi ../src/CMakeLists.txt
・・・・・・・・・・
# Libraries
SET(FSUSB_LINK_INT "-lpthread -lboost_system -larib25") #追加
SET(FSUSB_LINK_EXT "${BOOST_LDFLAGS}")
# Sources
FILE(GLOB FSUSB_SRC ${FSUSB_SRC_DIR}/*.cpp)
#FILE(GLOB ARIB25_SRC ${ARIB25_SRC_DIR}/*.c) #コメントアウト
・・・・・・・・・・
$ cmake ..
$ make
$ ls src/
CMakeFiles Makefile cmake_install.cmake recfsusb2n
$ ./src/recfsusb2n --b25 27 - - | vlc -
これで内蔵B-CASカードなしで視聴できる筈。
自身、実際には「tssplitter_lite+httpサーバ」パッチを適用したものを使用している。この場合のコンパイルには「cmake」からではなくパッチ同梱の「Makefile」を修正して使用している。
$ ls
recfsusb2n_http_patch2.zip sh0-recfsusb2n-434014e
$ cd sh0-recfsusb2n-434014e/src/
$ unzip ../../recfsusb2n_http_patch2.zip
$ vi Makefile
・・・・・・・・・・・・・・・・・
#B25_OBJS_EXT = $(B25_PATH)/arib_std_b25.o .... #コメントアウト
・・・・・・・・・・
LIBS = -lpthread -lboost_system ..... -larib25 #コメントアウトを外し追記
#LIBS = -lpthread -lboost_thread-mt -lboost_filesystem #コメントアウ
・・・・・・・・・・・・・・・・・
$ make
$ ./refsusb2n --b25 --sid hd --http 8888
$ vlc http://localhost:8888/27
FSUSB2内蔵カードリーダを使用する場合は「B25_OBJS_EXT」のコメントアウトを外し、「-larib25」を削除。「recfsusb(http版)」+「vlc」リアル視聴については前記事を参照、vlc側からチャンネル切替ができるのでかなり幸せに..。

nice!(0) 
共通テーマ:パソコン・インターネット

recfsusb2nに「tssplitter_lite」内蔵パッチを適用してみた(+httpサーバ追加) [KTV-FSUSB2]

以前から「recfsusb2nにtssplitter_liteを内蔵」(適当な何かの別館)をHDD容量が少ない録画サーバ(fit-PC2i+500GBHDD+Ubuntu 10.04 server+epgrec)のダイエットにと思っていたがようやく手を付けることに。パッチは同ページを辿ると「recfsusb2n_split_patch.zip」というファイル名でダウンロードできる。(以下recfsusb2nは既に一度導入済が前提)
$ ls
recfsusb2n-0.9.2.tar.gz recfsusb2n_cdsplit_patch.zip
$ tar xvfz recfsusb2n-0.9.2.tar.gz
$ cd FSUSB2N/
$ unzip ../recfsusb2n_split_patch.zip
$ patch -p2 < tssplitter_lite.diff
$ make
$ ./recfsusb2n --b25 --trim 10000 --sid hd 27 30 test.ts
・・・・・・・・・・・・・・・・・・・
B25Decoder initialized.
Remove 10109 packets(1900544 byte)
Available sid = 1024 1025 1408 65520
Chosen sid = 1024
done.
Rec time: 31 sec.
$ sudo cp recfsusb2n /usr/local/bin/
「Remove 10109 packets..」、「Chosen sid = 1024」から適用したtssplitter_lite内蔵パッチが正常に機能していることを確認した。あと録画サーバ(epgrec)の方は「do-record.sh」とWeb画面(地上デジタル番組表)の「環境設定」→「優先する録画モード」→「Minimum TSを選択」へ変更した。
$ cd /var/www/epgrec/
$ sudo cp do-record.sh.pt1 do-record.sh
$ sudo vi do-record.sh
・・・・・・・・・・・・・・・・・・
RECORDER=/usr/local/bin/recfsusb2n
# fail safe
・・・・・・・・・・・・・・・・・・
if [ ${MODE} = 0 ]; then
# MODE=0では必ず無加工のTSを吐き出すこと
$RECORDER --b25 --trim 10000 $CHANNEL $DURATION ${OUTPUT} >/dev/null
elif [ ${MODE} = 1 ]; then
# 目的のSIDのみ残す
$RECORDER --b25 --trim 10000 --sid $SID $CHANNEL $DURATION ${OUTPUT} >/dev/null
・・・・・・・・・・・・・・・・・・
「--trim」での廃棄パケット数の設定に際しては「looselife diary」が大いに参考なった。

【追記2012.4.28】
このtssplitter_liteに更にhttpサーバ機能が追加されたパッチが出ていた、ありがたい。早速、Ubuntu12.04の「recfsusb2n」をこのパッチを適用したものに変えてみた。パッチは「epgrec UNA (人柱版 2012/04/21)」(適当な何かの別館)から「recfsusb2n_http_patch.zip」でダウンロードできる。
$ ls
recfsusb2n-0.9.2.tar.gz recfsusb2n_http_patch.zip
$ tar xvfz recfsusb2n-0.9.2.tar.gz
$ cd FSUSB2N/
$ unzip ../recfsusb2n_http_patch.zip
(Ubuntu11.10以降ではem2874-core.cpp、Makefileの修正が必要)
$ make
「em2874-core.cpp」、「Makefile」の修正はこちらを参考にして行った。あとは
$ ./recfsusb2n --b25 --sid hd --http 8888
$ vlc http://localhost:8888/27
で取り敢えずリアル視聴を確認した。
あとはVLC側からチャンネル操作するためチャンネルプレイリスト(m3u)を作成してやれば「KTV-FSUSB2」のリアル視聴環境が簡単に実現できる。因みに「--trim」オプションは「受信開始時安定化待ち処理」が追加になったからか、廃止になっている。
nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット

Ubuntu 11.10(Oneiric) recfsusb2nのコンパイル [KTV-FSUSB2]

USB接続の地デジチュナー「KTV-FSUSB2」は録画サーバ(Ubuntu-10.04-server+fit-PC2i+epgrec+2台)としても運用しており、「周囲からのノイズ対策」(以前の記事参照)をしてからというものPT2録画サーバ(recpt1+epgrec)同様に安定動作しており非常に満足している。あとリーズナブルと言うこともありナガラ視聴用にも所有しており、USB接続なのでPT2には無いお気軽さに重宝している。と言うことで、早速Oneiricでもと「recfsusb2n」を導入しようとしたが、デフォルトでインストールされる「libboost」はバージョンが上がっておりコンパイルが通らなかった。コンパイルには「libboost1.42」の導入と「Makefile」の一部修正が必要であった。
$ sudo apt-get install libboost1.42-all-dev
$ wget http://tri.dw.land.to/fsusb2n/recfsusb2n-0.9.2.tar.gz
$ tar xvfz recfsusb2n-0.9.2.tar.gz
$ cd FSUSB2N/
$ vi Makefile
・・・・・・・・・・・・・・・・・
LIBS = -lpthread -lboost_system -lboost_thread-mt -lboost_filesystem #コメント削除
#LIBS = -lpthread -lboost_thread-mt -lboost_filesystem #コメントアウト
・・・・・・・・・・・・・・・・・
$ make
$ sudo cp recfsusb2n /usr/local/bin/
あとは「videoグループ」へのユーザ追加、「permissions.rules」作成で完了。(本家「recfsusb2n for linux」を参照)
nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット

Ubuntu 11.04(Natty)+KTV-FSUSB2でリアル視聴 [KTV-FSUSB2]

以前の記事の続編。USB接続の地デジチュナー「KTV-FSUSB2」は、Linuxマシンを操作しながらのナガラ視聴や容易に差し替えて他のマシンでもナガラ視聴と、PT2には無いお気軽さで非常に重宝している。具体的にはターミナルから以下のスクリプトを使ってナガラ視聴をしている。
$ cat ~/bin/livetv
#!/bin/sh
#
RECODER="recfsusb2n --b25 "
PLAYER="~/src/mplayer-r32954p/mplayer -cache 15240 "
case $1 in
  1)
    CH=27
    TSPROG=1024
    ;;
  2)
    CH=26
    TSPROG=1033
    ;;
  4)
    CH=25
    TSPROG=1040
    ;;
    ・
    ・
  (略)
esac
$RECODER $CH - - | $PLAYER -tsprog $TSPROG -
pkill recfsusb2n ; pkill mplayer
$ cat ~/.mplayer/config
vc = ffmpeg12vdpau,ffwmv3vdpau,ffvc1vdpau,ffh264vdpau,ffodivxvdpau
vo = vdpau
ao = pulse
framedrop = yes
$ ~/bin/livetv 4
ちなみにハードは「Atom330(OC 2GHz)+ION」。ここでmplayerオプション「-tsprog」でフルセグの「PID(プログラムID)」を指定、タイミングによってワンセグ表示になるのを防いでいる(「tab」キーで簡単に切替えはできるが..、PIDは「ffmpeg -i test.ts」で表示される「Program xxxx」からフルセグのものを)。あとmplayerは「DTV関連ツール」のものを使用、二か国語放送のニュースなども正常に視聴できている。
$ wget http://2sen.dip.jp/cgi-bin/dtvup/source/up0587.zip
$ wget http://2sen.dip.jp/cgi-bin/dtvup/source/up0624.zip
$ wget http://2sen.dip.jp/cgi-bin/dtvup/source/up0658.zip
$ unzip up0587.zip
$ unzip up0624.zip
$ unzip up0658.zip
$ sudo apt-get install yasm
$ sudo apt-get build-dep mplayer
$ cd mplayer-r32954p/
$ cat ../mplayer-patches-0.95/0008-supports-PMT-contents-change.patch | patch -p1
$ cat ../mplayer-patches-0.95/0009-supports-video-frame-size-change.patch | patch -p1
$ cat ../mplayer-patches-0.95to0.96/0010-removed-unnecessary-card-resets.patch | patch -p1
$ ./configure --disable-dvdread-internal --disable-libdvdcss-internal
$ make
あと置き場所によっては雑音を拾ってしまいブロックノイズが発生する時があったので、チュナーのケース内面に合わせて作成した型紙にアルミホイルを両面テープで貼り、型紙を基板側になるよう装着した。以前ブロックノイズが発生した場所で使用してみても問題がなかったので少しは効果はあるようである。
nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット

録画サーバ(epgrec+KTV-FSUSB2x2)の安定運用 [KTV-FSUSB2]

 fit-PC2i+KTV-FSUSB2x2を録画サーバ(epgrec)としてしばらく運用しているが結果としてかなり満足している。ただし、安定稼動には少しコツが必要だったが。
(1)アンテナ感度・・・他機種に較べて敏感(弱い?)
 受信環境(マンション)に恵まれていることもあり、部屋コネクタ(地デジ・BS/CS混合)→6分配器→2分配器→KTV-FSUSB2x2と安易に分配器のダブル接続で使用していた。まもなく録画失敗や録画できていてもブロックノイズに見舞われることに。6分配器経由からもう一口あった部屋コネクタへの直接接続に変更して解決したがアンテナ感度に敏感なことはネット上でも話題だったので、経験してみて再認識。

(2)USBケーブル・・・長めのUSBケーブルには要注意
 付属USBケーブルは短く引き回しに不便そうなので、少し長めの物を使用していた。暫くして録画失敗が頻発、必ず再現する訳ではなかったので、切り分けに少し試行錯誤したが、付属USBケーブルに戻して解決した。本体がノイズに弱いのか、それとも他に原因があるのか..

(3)本体ケースへのシールド・・・周囲からのノイズ影響を軽減(2011.7.25追記)
 録画サーバの置き場所を変えてから、時々「録画済一覧(epgrec)」でサムネールが表示されず「XBMC」での再生にも失敗する事象が発生した(mplayerでは視聴可能)。それでリアル視聴用に使用しているKTV-FSUSB2に以前施し効果があった対策を行った。具体的には、チュナーのケース内面に合わせて作成した型紙にアルミホイルを両面テープで貼り、これを型紙の方を基板側になるようケース内面にこちらも両面テープで貼りつけた。これで前述事象は発生しなくなったし、外観も損なわないので自身満足している。受信環境的(自身はマンション)に恵まれている場合は「周囲からのノイズ」への対策がかなり有効な手段になるかと..
 これで2番組同時録画が可能なサーバとして問題無く運用できている。また録画した番組の方は「Full TS」(recfsusb2nには--sidオプションが無い)で保存されるが「Xbmc」で実用上、問題無く視聴できている。番組によって音が出ない場合があるが、これは録画を開始するタイミングによって直前の番組が録画され、目的の番組に進んだ時の音声切替に追従できないことによると思われるが、そのまま少し進めてから停止させ、再びその位置からレジューム再生すれば音が出るようになる。あとは番組開始時点に戻してから視聴すれば良い。
 因みに、KTV-FSUSB2は現在も販売中、今のところ入手性は非常に容易、しかも値段も非常にリーズナブル。導入にはハード改造・ファームウェア書替が必要になるが、改造そのものは非常に簡単、ファームウェア書替も「ツール」で行うことになるので懸念するより敷居はずっと低い筈、万が一失敗しても付属「B-CASカード」は残るので実害もそれ程でも無いのでは。
 なお「DVB版ドライバ」はまだ存在していないようである、念のため。
nice!(0) 
共通テーマ:パソコン・インターネット

Ubuntu 10.10+KTV-FSUSB2でリアル視聴 [KTV-FSUSB2]

本日、USB接続のDTVチュナー「KTV-FSUSB2/V2」を購入、早速ハード・ファームウェアを改修し「recfsusb2n for linux」を導入した。これで、Linuxマシンを操作しながらナガラ視聴の為にだけWindowsマシン(PX-S3U+TVTest)を別に立上げてたことが不用に。インストールは前述URLの手順に従った。まずは設定ファイルの変更・追加、
$ sudo gpasswd -a medaka video
$ sudo vi /etc/udev/rules.d/91-tuner.rules
# KTV-FSUSB2
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="0511", ATTRS{idProduct}=="0029", MODE="0664", GROUP="video"
次にドライバ兼再生ツールのコンパイル、
$ sudo apt-get install g++ libboost-thread-dev libboost-filesystem-dev
$ wget http://tri.dw.land.to/fsusb2n/recfsusb2n-0.8.7.tar.gz
$ tar xvfz recfsusb2n-0.8.7.tar.gz
$ cd FSUSB2N/
$ make
$ sudo cp recfsusb2n /usr/local/bin
ここで、一旦再起動してから以下のコマンドでテスト、因みにマシンは工人舎SC3(Atom Z520、GMA500)。
$ recfsusb2n -bv 27 - - | mplayer -vo vaapi -va vaapi -framedrop -
一様、視聴はできたが動画の再生にヒッカカリが頻繁に発生、最初はマシンスペックかとも思ったがメインマシン(Pentium4 2.8GHZ、nVidia GTS250)でも改善しなかった。ハードにも手を入れているので現時点では原因切り分けが困難、後日Windowsでも動かしてみれば少しは切り分けられると良いんだが..。当面は、
$ recfsusb2n --b25 27 - temp.ts
$ mplayer -vo vaapi -va vaapi -framedrop temp.ts
$ rm temp.ts
みたいなことを一連で実行するスクリプト+リモコンでと考えている。一旦、ファイルに落としたものを再生する分には全く問題なさそうなので。

(追記修正:2011.01.16 10:00)
結果としてmplayerによるリアル視聴時のヒッカカリはオプションに適当な大きさのキャッシュを与えてやることで解決した。
$ recfsusb2n -bv 27 - - | mplayer -vo vaapi -va vaapi -framedrop -cache 20240 -
与えるキャッシュサイズはCPUスペックに依存、工人舎SC3ではこの値であったが、当然スペックが高ければもっと小さな値か全く不要のはず。
nice!(0) 
共通テーマ:パソコン・インターネット

fit-PC2i KTV-FSUSB2x2台+epgrecで録画サーバ [KTV-FSUSB2]

fit-pc2i+fsusb2.jpg
前記事でKTV-FSUSB2をLinuxで試してみたが、
$ recfsusb2n --b25 27 - - | mplayer -vo vaapi -va vaapi -framedrop -
では、動画再生にヒッカカリが頻繁に発生しリアル視聴には難が。但し、一旦ファイルに落としてからの所謂追っ掛け再生では問題がなかった。それでKTV-FSUSB2をもう一台買い足し「fit-PC2i+Ubuntu 10.10+epgrec」で録画サーバを構築してみた。手順は「録画予約システムepgrec」の手順で基本的にOK。変更したのは、
$ cd /var/www/epgrec/
$ sudo cp do-record.sh.friio do-recored.sh
$ sudo vi do-record.sh
・・・・・・・
RECORDER=/usr/local/bin/recfsusb2n # recfriioからrecfsusb2nへ変更
#B25=/usr/local/bin/b25_bcas (コメント)

$RECORDER --b25 $CHANNEL $DURATION ${OUTPUT} >/dev/null #stripオプション削除
とデバイス使用ユーザーとして、
$ sudo gpasswd -a www-data video
で「www-data」をvideo グループに追加した。他に変更箇所がないか確認して無いがこれで運用できている。まだ運用して2日程であるが、2番組同時録画や「epgrec動作ログ」でのエラー発生も無く正常のようにみえる。安定性を見るにはもう少し運用してみる必要があるが。
nice!(0) 
共通テーマ:パソコン・インターネット
KTV-FSUSB2 ブログトップ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。

×

この広告は1年以上新しい記事の更新がないブログに表示されております。