Ubuntu11.10 epgrecを設定(DVBは無理だったorz)
必要なpackageのインストール
$ sudo apt-get install tasksel #LAMP環境を作るのに楽なので利用する
$ sudo tasksel #LAMP serverにスペースキーでチェックを入れる
「LAMP server」のインストールの途中でMySQLを管理する”root”パスワードを聞かれるので、新規に設定
$ sudo apt-get install php5 php5-cli #これは手動で入れる必要があるらしい
動作確認
Apache
Apache (httpd) は Firefox を立ち上げて、http://localhost/ にすると 「It works!」と表示されればOK
PHP
インストール直後は、まだ apache が PHP を認識していないので、再起動させる。
$ sudo /etc/init.d/apache2 restart
$ sudo su
# chown -R ユーザーネーム:ユーザーネーム /var/www/ #所有者をrootから自分に変更
# exit #rootから抜けた
$ cd /var/www/
$ gedit phpinfo.php #下記の1行を記述したファイルを作成
<?php phpinfo(); ?>
Firefoxに http://localhost/phpinfo.php と入力し、phpの詳細画面が出てくればOK
確認したら、phpinfo.phpファイルは削除しておく(間違って外部に公開したりするとまずいので・・・)
phpMyAdmin
$ sudo apt-get install phpmyadmin
しばらくすると設定をきかれるので、
自動再設定をする web サーバでスペースキーで [apache2] を選択。
phpmyadmin のデータベースを dbconfig-common で設定しますか? <はい>を選択
データベースの管理権限を持つユーザのパスワード:MYSQLのrootのパスワード
phpmyadmin用のmysqlアプリケーション設定のパスワードを聞かれるので、新規に設定
念のためapache2の再起動
$ sudo /etc/init.d/apache2 restart
phpmyadminを使わずに作成してみる
(phpmyadminを使う場\場合は Ubuntu10.10で録画鯖を作ってみた その2 録画機能 を参照)
$ mysql -u root -p #パスワードを聞かれるので、mysqlのrootパスワードを入力
DBの作成
mysql> create database データベース名; #作成したいデータベース名で作成
ユーザーの作成
mysql> grant all privileges on *.* to ユーザー名@localhost identified by 'パスワード';
変更を適用
mysql> flush privileges;
ユーザーの確認
mysql> SELECT Host, User, Password FROM mysql.user WHERE User='ユーザ名';
データベースの確認
mysql> show databases;
それぞれ設定したものが表示されていればOK
ctrl + d か quit mysqlからで抜ける
データベースの保存場所の変更(SSDからHDDに変更する)
$ sudo service mysql stop
マウントしたHDDにコピーする
$ sudo cp -rfp /var/lib/mysql /media/sdb1
/etc/mysql/my.cnf の修正
$ sudo gedit /etc/mysql/my.cnf
datadir = /var/lib/mysql とあるを datadir = /media/sdb1/mysql のように修正
/etc/apparmor.d/usr.sbin.mysqld の修正
$ sudo gedit /etc/apparmor.d/usr.sbin.mysqld
/var/lib/mysql/ r, とあるを /media/sdb1/mysql/ r,
/var/lib/mysql/** rwk, とあるを media/sdb1/mysql/** rwk, のように2行修正
mysqlの起動
$ sudo service mysql start
at設定(念のためにインストール)
$ sudo apt-get -y install at
Apacheユーザの「www-data」を使用禁止リストから削除します。 これをやらないと、録画できないです。
$ sudo cp -ip /etc/at.deny /etc/at.deny.org
$ sudo gedit /etc/at.deny
最終行に www-data があるので-削除
webからMplayerの実行を許可する
www-dataユーザーからMplayerコマンドを実行できるようにvideoグループに追加する
$ sudo gpasswd -a www-data video
$ cat /etc/group #videoに追加されていることを確認
再起動
channels.conf をwww-dataユーザのホームディレクトリー(var/www)内に ./mplayer フォルダを作成してコピー
$ cd /var/www
$ sudo mkdir .mplayer
$ sudo cp /home/ユーザー名/.mplayer/channels.conf .mplayer/.
コピーしたchannels.conf を開き、チャンネル名をチャンネル番号(リモコン番号)に変更する
MASPRO のHPを参照するとわかりやすい
www-dataユーザーで確認
$ sudo -i
# su - www-data
# /usr/local/bin/mplayer -dumpstream -dumpfile /tmp/test.ts dvb://12@151
(後ろの青字は使用するPT2とチャンネルなので、好きなように)
30秒くらいたったら、ctrl + C キーの同時押しで停止
Mplayer 等で視聴できればOK
リンクsourceforgeから、「epgdumpr2_20111001.tar.gz」 をダウンロード(2012年1月4日現在)
$ sudo apt-get -y install build-essential
$ tar xvzf epgdumpr2_20111001.tar.gz
$ cd epgdumpr2
$ make clean
$ make
$ sudo cp epgdump /usr/local/bin
ffmpegのインストール
$ sudo apt-get install ffmpeg
リンクsourceforgeから、「epgrec_20111001.tar.gz」 をダウンロード(2012年1月4日現在)
$ tar xvzf epgrec_20111001.tar.gz
$ cd epgrec
$ chmod a+rxw cache settings templates_c video thumbs
$ mv config.php.sample config.php #config.php.sample を config.php にリネームする
config.phpファイルの中身を編集
$ sudo gedit config.php
ファイルの9行目から channels.conf の番号に変更する( いらない箇所は、コメントアウトか削除)
$GR_CHANNEL_MAP = array(
"GR17" => "17", // NHK総合
"GR13" => "13", // NHKEテレ
"GR24" => "24", // ミヤギテレビ
"GR19" => "19", // TBC
"GR21" => "21", // 仙台放送
"GR28" => "28", // 東日本放送
);
私の場合は、こんな感じ(放送局局少ないねえ)
do-record.shの設定
DVB版対応のdo-record.shがないので、2010年度版の日経Linux10月号の付録を使用する。
併せてdvb_rec.shも使用
実行権限を付与
$ sudo chmod 777 do-record.sh
if文 (BSを選択している側)の13行目と15行目は、ADPTER=10と12に変更
if文 (地デジを選択している側)の19行目と21行目は、ADPTER=11と13に書き換える
$ sudo chmod 777 dvb_rec.sh
$ sudo cp dvb_rec.sh /usr/local/bin
epgrecフォルダをwebサーバーのドキュメントルート(var/www)以下に移動させる
$ sudo mv epgrec /var/www/.
$ cp do-record.sh /var/www/epgrec/ #先ほど作成したdo-record.sh をepgrecフォルダにコピー
録画テスト
$ TUNER=0 TYPE=GR CHANNEL=17 DURATION=15 OUTPUT=/var/www/epgrec/video/test.ts /var/www/epgrec/do-record.sh #地デジの例
$ TUNER=0 TYPE=BS CHANNEL=236 DURATION=15 OUTPUT=/var/www/epgrec/video/test.ts /var/www/epgrec/do-record.sh #BSの例
CHANNELの右辺には、受信可能なチャンネル番号を指定 TYPEで地デジはGR BSならBSと記述
上記を実行しepgrecのvideoフォルダにtest.tsができればOK
Mplayer等で表示できればOK
epgrecの設定
番組情報を取得するので昼間でないと駄目 夜中だと番組取得ができない
使用しているブラウザのアドレスバーに「http://localhost/epgrec/」と入力してEnterキーを押す。
epgrecのインストール状態がチェックされるので、OKならばそのまま。駄目な箇所はパーミッションを修正する localhostは、IPアドレスを記入すると、別PCからも操作できる
問題がなければ、「以上を確認し次の設定に進む」をクリック。
「インストールステップ2」で「MySQL接続ユーザー名」はMySQLの設定をしたときの接続ユーザー名
「MySQL接続パスワード」はMySQLの設定をしたときの接続パスワード
「使用データベース名」はMySQLの設定をしたときのデータベース名
インストールURLは、 localhostをIPアドレスに変更する
サムネールの使用 を 使用するに変更
「ffmpegのパス」は、フルパスを記載
それ以外の項目はそのままとし、「設定を保存する」をクリック。
「インストールステップ3」で「地デジチューナーの台数」は「2」にします。
「BSチューナーの台数」は「2」にします。
「CS録画の有無」は「行なう」にした。
それ以外の項目はそのままとし、「設定を保存する」をクリック。
「インストール最終ステップ」で「このリンクをクリックするとEPGの初回受信が始まります」をクリック。
30分位待つと画面が切り替わるので、Firefoxで「http://localhost/epgrec/」を開きます。
番組表が出てきたら設定成功です。
もし「construct:無効な行」とエラーが表示されたら、もう少し待ちます。
とあるが、番組表が出てこないので、手動で設定項目を実行してみた
$ sudo su -
$ su - www-data -c /var/www/epgrec/getepg.php
/var/www/epgrec/getepg.php
再起動して、番組取得をしたら番組取得ができたようだ。
設定が成功して番組表が表示された場合は、見たい番組をクリックし、「簡易予約」をクリック
または「予約カスタマイズ」「予約する」の順でクリックすると予約できます。
すでに始まっている番組の場合、3分後に録画が始まります。録画が始まると、その番組名が「録画済一覧」に
表示されるので、そこで再生したい番組を選びます。
番組情報を自動取得するように設定しますが、今後、手動で獲得したい場合は、
端末で「/var/www/epgrec/getepg.php」と入力する
番組情報の自動更新設定
$ sudo cp /var/www/epgrec/cron.d/getepg /etc/cron.d/.
保存場所の変更
ebgrecのデフォルト表示は、「/video」 となっているため、録画保存ディレクトリは、「/var/www/epgrec/video」
「/var /www/epgrec」より上のディレクトリを録画保存ディレクトリとして指定することはできないそうです。
SSDで容量がないので、保存先を、別HDDにする。
設定方法は ubuntu フォーマットと自動マウント シンボリックリンク を参照
1/11 追記
実は、予約録画が動いていないことに失敗して気がついた
epgrecは、2010年4月版から、テストバージョンになり、録画方法が変わっているのだそうだ。
ということで、do_record.shを使用せずに、recoreder.php で処理が完結するようになっているみたい。
ジョブの確認
$ sudo atq #ジョブ一覧が出る
$ sudo at -c job番号 #ジョブの詳細を確認
#!/bin/sh
# atrun uid=33 gid=33
# mail www-data 0
umask 22
MODE=0; export MODE
OUTPUT=/var/www/epgrec/video/GR13_20120111215500_20120111220000.ts; export OUTPUT
THUMB=/var/www/epgrec/thumbs/GR13_20120111215500_20120111220000.ts.jpg; export THUMB
CHANNEL=13; export CHANNEL
FORMER=20; export FORMER
DURATION=320; export DURATION
TUNER=0; export TUNER
TYPE=GR; export TYPE
SID=hd; export SID
PWD=/media/sdb1/share/video; export PWD
FFMPEG=/usr/bin/ffmpeg; export FFMPEG
cd /media/sdb1/share/video || {
echo 'Execution directory inaccessible' >&2
exit 1
}
/bin/sleep 160
/var/www/epgrec/do-record.sh
/var/www/epgrec/recomplete.php 16
/var/www/epgrec/gen-thumbnail.sh
という感じで出るのが、以前の状態なのだが、
水色表示の3行がない状態のジョブが出る。recpt1を使った場合は、これで正常に動くらしい。
recoreder.php が修正できれば終わる話なのだと思うが、修正方法がわからない。 phpは、さっぱりわからない。
DVBドライバとFUSE_B25の使用を諦めた。
pt1-drv_20111001を使用してみる
$ sudo gedit /etc/modprobe.d/blacklist.conf
最終行に blacklist earth-pt1 を追記
再起動
ARIB STD-B25(本来なら、最新版を使うべきだが、今回は最新版の0.24がここにあるので利用させてもらう)
$ sudo apt-get install build-essential
$ wget http://hg.honeyplanet.jp/pt1/archive/c44e16dbb0e2.zip
$ unzip c44e16dbb0e2.zip
$ cd pt1-c44e16dbb0e2/arib25
$ make
$ sudo make install
Ubuntu11.10では、従来の方法ではchardev 版ドライバのコンパイルが通らないらしい
パッチ済みpt1_pci.c をここからダウンロードしておく
$ tar xvzf pt1-drv_20111001.tar.gz
$ tar xvzf pt1_pci.c.tgz
$ cp pt1_pci.c ./pt1-7662d0ecd74b/driver
$ cd ./pt1-7662d0ecd74b/driver
$ make
$ sudo make install
$ cd ../recpt1
$ ./autogen.sh
$ ./configure --enable-b25
$ make
$ sudo make install
再起動(うまくいかない場合は、一度電源断するとうまくいくかも)
確認
$ ls -lart /dev/ |grep pt1
crw-rw-rw- 1 root video 249, 3 2012-01-13 00:27 pt1video3
crw-rw-rw- 1 root video 249, 2 2012-01-13 00:27 pt1video2
crw-rw-rw- 1 root video 249, 1 2012-01-13 00:27 pt1video1
crw-rw-rw- 1 root video 249, 0 2012-01-13 00:27 pt1video0
こんな形で、表示されればchardev 版で認識されている
$ dmesg | grep pt1
[ 3.890953] pt1-pci.c: 1.1.0 2010-01-27
[ 4.547111] pt1_thread run
このような表示が出れば、PT2も認識されている
録画テスト
$ recpt1 --b25 --strip 17 30 test.ts #17chを30秒録画する
$ mplayer test.ts
録画した番組が表示されればOK
epgrecで、予約録画すると、サムネイルが表示された。 関連づけたVLCで表示ができた。
フォーラムで質問あげているので、いつか原因がわかれば、DVB版での使用を追求してみたいと思う。
- 関連記事
- epgrecのセキュリティ (01/07)
- Ubuntu11.10 epgrecを設定(DVBは無理だったorz) (01/03)
- Ubuntu11.10 mplayer でリアルタイム視聴と録画 (01/02)
2012/01/03 01:19 | 地デジ録画・編集 | COMMENT(0) | TRACKBACK(0) TOP



コメント
コメントの投稿
トラックバック
この記事にトラックバックする(FC2ブログユーザー)