大体の手順
epgrec を使用するために nginx(エンジンエックス)、mysql、php をインストールする
epgdump は epgrec が録画データから番組表を取り出すために必要になる
次のようにして epgdump をインストールする
epgrec を使うにはユーザ www-data が at コマンドを利用できなくてはならない。 /etc/at.deny に www-data が記入されていれば、それを削除する
だが、atコマンドではうまく番組表が取得できないのでcronを使いました
cronコマンドは繰り返し実行予約ができるが、atコマンドは一度きりの実行という違いがある
mysql のデータベースを作成する。このとき、データベースにアクセスするユーザとパスワードを設定する
mysql -u root -p
で mysql に mysql のユーザ root でログイン (Ubuntu のユーザ root ではない。パスワードは mysql を apt でインストールしたときに設定している)して epgrec というデータベースと mysql のユーザ epgrec のパスワードを指定する。 以下ではパスワードは PASS となっている
mysql のデータベース作成例では
「MySQL接続ユーザー名」は「test」
「MySQL接続パスワード」は「test」
「使用データベース名」は「test」
epgrec の php を nginx が使う標準的なディレクトリ /var/www 以下に設定する
ブラウザから epgrec の設定
epgrec を設置した Ubuntu の IP アドレスを調べ、 http://LOCAL_IP_ADDRESS/epgrec にブラウザでアクセスして epgrec の設定する
パッケージのインストール
nginx、at、MySQL、php-fpm等、必要なパッケージをインストールします
MySQLのインストールのときにルートのパスワードを入力する。メモること
尚、これだけだと予約ボタンが動かないので追加で「php-mbstring」
sudo apt-get -y install at nginx php7.0-fpm php7.0-cli mysql-server php7.0-mysql php7.0-xml php-mbstring
at
epgrec UNAを実行するユーザーとして”www-data”を使用しますが、デフォルト設定でatコマンドを実行できなくなっているため、その設定を解除します
sudo sed -i".org" 's/www-data//g' /etc/at.deny
MySQLの設定
MySQLの文字コード設定を変更
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
[mysqld]
character-set-server = utf8 ← この行追加
MySQLの再起動
sudo service mysql restart
epgrec用のデータベースを作成。SQL用のルートパスワードを入力
mysql -u root -p
Enter password:
mysql>
show databases;
DBが作成されていることを確認
MySQL接続ユーザーとMySQL接続パスワードを設定する
MySQL接続ユーザーと接続パスワードを設定するためのコマンドは
grant all privileges on *.* to [MySQL接続ユーザー名]@localhost identified by '[MySQL接続パスワード]';
なので、例えばの設定
grant all privileges on *.* to test@localhost identified by 'test';
ALTER USER test@localhost identified by 'test';
ホスト名:localhost
MySQL接続ユーザー名: test
MySQL接続パスワード: test
データベース名:test
q,quit,exitでMySqlを抜ける
php-fpmのインストール
sudo sed -i".org" 's/^disable_functions/;disable_functions/g' /etc/php/7.0/fpm/php.ini find /etc/php/7.0/ -name "php.ini" | xargs sudo sed -i".org" 's/^;date.timezone =/date.timezone = "Asia\/Tokyo"/g'
nginxの確認
nginxを起動し、nginx上でPHPが動作することを確認します
sudo nano /etc/nginx/sites-available/default
下記を追加「server {」内に
location ~ [^/]\.php {
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $request_filename;
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
}
サービスを再起動します
sudo service nginx restart
表示テストをします
sudo vi /var/www/html/phpinfo.php
phpinfo();
?>
ブラウザでアクセスをしてみる
http://192.168.11.2/phpinfo.php
インフォメーションが表示できれば成功
epgrecUNAのインストール
適当な何かの別館からepgrec UNAをダウンロードします
人柱版 (2015/11/14)を使います
”epgrecUNA 151114版用 fix1”と”epgrecUNA 151114版用 fix2”の2つのパッチを当てる必要があります(パッチはepgrecディレクトリに上書き解凍すればOKです)
cd ~/src
tar xvzf epgrecUNA_151114.tar.gz
sudo mkdir -p /var/www/
sudo mv epgrec/ /var/www/
cd /var/www/epgrec/
sudo chown -R www-data:www-data ../
sudo chmod 777 templates_c video thumbs settings cache
sudo nano config.php
変更前) 75行目
define( 'TUNER_UNIT1', 0 );
変更後)
define( 'TUNER_UNIT1', 2 );
19行目の地上波デジタルチャンネルでMXTVのコメントを外す
'GR20' => '20', // MX TV(東京タワー)
nginxの設定を変更し、nginxを再起動します
cd /etc/nginx/
sudo rm sites-enabled/default
下記の内容をコピペして保存します
sudo nano sites-available/epgrec
server {
listen 80 default_server;
server_name localhost;
root /var/www/epgrec;
charset utf-8;
index index.php index.html;
location ~ [^/]\.php {
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $request_filename;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
}
再起動
sudo service nginx restart
ブラウザから点検訂正をしていきます
http://192.168.11.2
http://192.168.11.2/install/step1.hph
1ページ目には各項目のチェックリストが表示されOKなら最下段のボタンをクリックして次に移動します
2ページ目にはMySQLの設定ページになります。ここが一番大事でここで失敗するとやり直しになります
MySQLホスト名:localhost
MySQL接続ユーザー名:test
MySQL接続パスワード:test
MySQL使用データベース名:test
MySQLテーブル接頭辞:Recorder_
その他は変更なしで進めます。最後に保存をクリックして次に移ります
デジタルチューナー設定では各項目2台です
残りのページは読めばわかりますし運営しながら訂正をすれば良いでしょ
もしepgrec UNAの設定を最初からやり直したい場合、settings/config.xmlファイルを削除する
初期設定が完了すると最後に「このリンクをクリックするとEPGの初回受信を開始します。」と言うリンクが表示されます。クリックするとリンクの内容通りEPG更新が始まるので、9分待ってから録画サーバのIPアドレスに再アクセスして下さい。番組表が表示されれば基本設定は完了です
EPG更新するようにcronの設定を行います。初期設定の最後にファイルをコピーすれば簡単に設定できるように書かれていますが、現状うまく動作しないので下記の手順で設定します
2時間毎の29分にEPG更新です
sudo nano /etc/crontab
29 */2 * * * www-data /var/www/epgrec/shepherd.php
recpt1のプロセスが表示されれば成功
ps ax | grep recpt
録画用ディレクトリの変更
録画用ディレクトリは”/var/www/epgrec/video”になっています
ホームの中にTVディレクトリを作りそこに移動させます
シンボリックリンクを作成します
cd /var/www/epgrec
sudo mv video _video
sudo ln -s /home/share video
/home/kazu/TV/ディレクトリがフルアクセス777にします
chmod 777 /home/kazu/TV
エラーなどイロイロありました
番組検索ができない。ネットで調べたらPHPが16進数を読めないことが原因みたいなので
下記のファイルの'0x??'の部分を検索(ctrl+W)して10進数に書き直す
ctrl+W->'0x3f'で検索して'63'と書き直す
ctrl+W->'0xf7'で検索して'127'と書き直す
sudo nano /var/www/epgrec/templates/programTable.html
自動録画キーワード登録できないのでphpファイルの「0x」を検索してみた
sudo find /var/www/epgrec/ -name "*.php" | xargs grep '0x' > php_list.txt
検索結果は30以上になったが暇がでたら勇気を持って直すかな
リアルタイム視聴ができなかったので設定ファイルを変更
sudo nano /var/www/epgrec/config.php
169行目、170行目のFALSE->TRUEに変更
sudo systemctl restart nginx
せっかくサーバを立ち上げたのだから備忘録用にホームページでも開いてみようかと
'userDir'を設定したがうまく表示されず、ステータスは202
ログを見ると'/var/www/epgrec/~kazu/index.html'になっている
シンボリックリンクを貼らないとダメなのかな
ls -l /var/www/epgrec ~kazu
なんと、リンクが貼られている
という事はホームに直接index.htnlファイルを置くのか
test
■今回はここまで。下記は以前の設定手順です
recpt1録画プログラム
このサイトよりダウンロードする
(pt1-c8688d7d6382/)
cd ~/pt1-c8688d7d6382/patch
ディレクトリを作成しバッチファイルをダウンロード
こちらのページよりDL
tar zxvf recpt1-http-rev3.tar.gz
cd ~/pt1-c8688d7d6382/recpt1
patch < ../patch/recpt1-http-rev4/recpt1-http.diff
sudo apt install autoconf automake
./autogen.sh
./configure --enable-b25
make && sudo make install
録画テスト
録画ファイルを保存したいディレクトリに移動し、端末から
受信信号を調べてみます
地デジnhk総合
■受信信号を調べてみます(C/Ngood=30-33dB)
checksignal 27
■NHK総合を10秒録画する
recpt1 --b25 --strip 27 10 test.ts
オプション詳細については"recpt1 --help"を参照のこと
recpt1 --b25 --strip ・・・ b25の暗号解除を有効にして
27 チャンネル番号
10 秒数
カレントディレクトリに「test.ts」ファイルが生成される
下記のエラーが出た場合mod probeで解決する
*****Cannot tune to the specified channel*****
sudo modprobe -r pt1_drv && sudo modprobe pt1_drv
■アースソフト PT2ボードのコネクター名称
/dev/pt1video0 BS/CS S1
/dev/pt1video1 BS/CS S2
/dev/pt1video2 地上波 T1
/dev/pt1video3 地上波 T2
- 総合 1
- 27
- ---
- 2
- Eテレ3
- 26
- 日本 4
- 25
- 朝日 5
- 24
- TBS 6
- 22
- 東京 7
- 23
- フジ 8
- 21
- MX 9
- 16
- 10
- ---
- 11
- ---
- 放送 12
- 28
- 東京スカイツリー送信
- 27, 26, 25, 24, 22, 23, 21, 16
- 東京タワー送信
- 28
- ::::::BSデジタル::::::
- -------------------------------
- BSch101
- NHK BS1
- BSch102
- NHK BS2
- BSch103
- NHK BSプレミアム
- BSch141
- BS日テレ
- BSch151
- BS朝日
- BSch161
- BS日テレ
- BSch171
- BSジャパン
- BSch181
- BSフジ
- BSch211
- BS11デジタル
- BSch222
- TwellV(トゥエルビ)
- BSch231
- 放送大学テレビ
- BSch232
- 放送大学テレビ2 WIDE
- BSch233
- 放送大学テレビ3 WIDE
- BSch258
- Dlife
■epgdump
録画したファイルからEPG情報が正しく取り出すことができるか確認
新旧の種類のどちらか
epgrec UNA用epgdump 141013版のDL
tar zxvf epgdumpUNA141013.tar.gz
epgrec UNA用epgdump 160127版のDL
tar zxvf epgdumpUNA160127.tar.gz
cd epgdump
make
sudo make install
■epgrec UNA用epgdumpインストール
録画したファイルからEPG情報が正しく取り出すことができるか確認
ファイルの保存先に移動
cd ~/epgdump
make
sudo make install
作業ができるフォルダに移動して
cd job
NHK総合を10秒録画する
recpt1 --b25 --strip 27 10 test.ts
次に、録画ファイルtest.tsに対して、
epgdump 27 test.ts test.xml -xml
実行後、新たに作成されたtest.txmlをテキストエディター等で開き
テレビ番組情報が表示されることを確認する
LAMP環境
以下、サーバー環境のインストールはこのサイト1を参考にしています
以下、サーバー環境のインストールはこのサイト2を参考にしています
■下準備
cd ~
sudo apt-get update
epgrec実行のために、atとcronが必要なるので、atとcronをインストールする
端末を利用する場合は、
sudo apt-get install at cron
■Apache2のインストール
sudo apt-get -y install apache2
http://(サーバーのホスト名またはIPアドレス)/index.html・・・で、表示できればOK
■PHP7.0のインストール
sudo apt-get -y install php php-cgi libapache2-mod-php php-common php-pear php-mbstring
sudo a2enconf php7.0-cgi
sudo nano /etc/php/7.0/apache2/php.ini
# 693行目:コメント解除
default_charset = "UTF-8"
# 924行目:コメント解除しタイムゾーン設定
date.timezone = "Asia/Tokyo"
sudo /etc/init.d/apache2 restart
■MySQLのインストール
apt-get -y install mysql-server-5.7
途中でMySQLのrootアカウントのパスワードを聞かれる
pass=abcd
■確認
サービスの稼働状況をチェック
sudo apt-get install sysv-rc-conf
リスト表示
sudo sysv-rc-conf -list
sudo sysv-rc-conf --list
netstat -l -t
apache2 -v
php -v
mysql --version
----------------------------
■apacheの設定
www-data(apacheユーザー)がシェルを使えるようにする
sudo nano /etc/passwd
を実行する。www-dataがnologinとなっている場合
/bin/shに書き換える、例えば
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
を
www-data:x:33:33:www-data:/var/www:/usr/sbin/bin/sh
www-data(apacheユーザー)がatを使えるようにする
端末から
sudo nano /etc/at.deny
を実行し
www-data
を削除し、保存する
MySQL5.7ではいろいろ問題があるのでDBを変えてみる手もある
mariaDBをインストールしてみる
Percona XTraDB 5.6
をインストールしてみる
MySQLデータベースのデフォルト文字コードをUTF-8に設定するsudo nano /etc/mysql/my.cnf
ubuntu16.04LTS MySQL5.7からは
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
上記を編集する
[mysqld]
skip-character-set-client-handshake
character-set-server=utf8
collation-server = utf8_general_ci
init-connect = SET NAMES utf8
my.cnfを、以下のように変更する[client]と[mysqld]と[mysqldump]に下記の設定を付け加える
[client]
default-character-set=utf8
[mysqld]
skip-character-set-client-handshake
character-set-server=utf8
collation-server = utf8_general_ci
init-connect = SET NAMES utf8
[mysqldump]
default-character-set = utf8
下記の項目がなければ新たに付け加える
[mysql]
default-character-set=utf8
保存する
MySqlを再起動する
端末からsudo service mysql restart
を実行する
再起動後、MySqlが起動している事を確認する
端末から
ps aux | grep mysql
を実行する
epgrecで使用するDBを作成する
MySqlにログインするsudo mysql -u root -p
sudo mysql --show-warnings -u root -p
pass=abcd
インストールした時に設定したパスワードを入力する
DB作成
mysql>create database test;
実行後
mysql>
show databases;
DBが作成されていることを確認
MySQL接続ユーザーとMySQL接続パスワードを設定する
MySQL接続ユーザーと接続パスワードを設定するためのコマンドは
grant all privileges on *.* to [MySQL接続ユーザー名]@localhost identified by '[MySQL接続パスワード]';
なので
mysql>
5.7は下記を使う grant all privileges on *.* to test@localhost identified by 'test';
ALTER USER test@localhost identified by 'test';
例えばの設定なので
MySQL接続ユーザー名: test
MySQL接続パスワード: test
exitでMySqlを抜ける
アンインストール
$ sudo apt-get remove --purge php5-mysql mysql-server* mysql-common
未使用パッケージがあったので一応削除
$ sudo apt-get autoremove --purge
フォルダが残っているので削除
$ sudo rm -r /etc/mysql
$ sudo rm -r /var/lib/mysql
epgrec UNA (人柱版 2015/11/14)のインストール
■アースソフト
プロフィールよりキーワードヒント:食べ合わせが悪い
epgrec実行のために、atとcronが必要になるのでインストール
sudo apt-get install at cron
epgrec UNA (人柱版 2015/11/14)のインストール
epgrecUNA_151114.tar.gzがダウンロードされます
epgrecUNA 151114版用パッチファイル fix1(http://www1.axfc.net/u/3578126)
epgrecUNA151114Fix1.tar.gzがダウンロードされます
epgrecUNA 151114版用パッチファイル fix2(http://www1.axfc.net/u/3650284
)
epgrecUNA151114Fix2.tar.gzがダウンロードされます
ダウンロード後、端末を開き、
cd ~/
に移動後、ダウンロードしたファイルを順番にtarコマンドで解凍上書きする
tar xvzf epgrecUNA_151114.tar.gz
tar -xvzf epgrecUNA151114Fix1.tar.gz
tar -xvzf epgrecUNA151114Fix2.tar.gz
パッチファイルが上書きされている事を確認する。されていない場合は、ファイルを上書きする
cd ~/epgrec
epgrecUNAをサイト用に加工( ~/epgrec -> /var/www/html)
■コピー・移動する
epgrecUNAはここに解凍してある ~/epgrec
/var/www/html以下に、ディレクトリTV_epgrecを作成とコピー
sudo mkdir /var/www/html/TV_epgrecsudo chmod 777 /var/www/html/TV_epgrec/
cp -a ~/epgrec /var/www/html/TV_epgrec/epgrec
chown -R ユーザID:グループID ディレクトリ 再帰に実行
sudo chown -R www-data:www-data /var/www/html/TV_epgrec/epgreccd /var/www/html/TV_epgrec/epgrec/
sudo chmod 777 /var/www/html/TV_epgrec/epgrec/cache /var/www/html/TV_epgrec/epgrec/templates_c /var/www/html/TV_epgrec/epgrec/video /var/www/html/TV_epgrec/epgrec/thumbs /var/www/html/TV_epgrec/epgrec/settings
sudo chmod 666 /var/www/html/TV_epgrec/epgrec/thumbs/index.html
sudo chmod 666 /var/www/html/TV_epgrec/epgrec/video/index.html
sudo cp -a /var/www/html/TV_epgrec/epgrec/do-record.sh.sample /var/www/html/TV_epgrec/epgrec/do-record.sh
sudo chmod 755 /var/www/html/TV_epgrec/epgrec/do-record.sh
sudo chown www-data:www-data /var/www/html/TV_epgrec/epgrec/do-record.sh
config.phpの設定を行う
sudo nano /var/www/html/TV_epgrec/epgrec/config.phpconfig.phpのUTF-8内容表示
config.phpのSHIFT-JIS内容表示
epgrec(UNA)の設定をブラウザから設定を行う
■ブラウザを起動(番組表)
ここでの場合
http://192.168.11.13/TV_epgrec/epgrec
完成していれば下記が動作する
メニューより -> 環境設定 -> システム設定で表示される
setupファイルより
setup3.phpが表示されない場合は
settings/config.xmlが正常に作成されているか
ほとんどの場合はmysqlの設定が間違っている。ホスト名・接続ユーザー名・接続パスワード・使用データベース名を確認する
setupファイルの実行
MySQLホスト名 -> localhostMySQL接続ユーザー名 -> test (設定したユーザー名を入力する)
MySQL接続パスワード -> test (設定したパスワードを入力する)
使用データベース名 -> test (作成したDB名を入力する)
使用するデータベース名を設定します。設定するデータベースは接続ユーザーがテーブルの作成等を行う権限を持っている必要があります
テーブル接頭辞 -> Recorder_(デフォルトのままで構いません)
使っているうちに番組表が歯抜けになる
定期的にEPG更新するようにcronの設定を行いました初期設定の最後にファイルをコピーすれば簡単に設定できるように書かれていますが
うまく動作しなかったので下記の手順で設定しました
sudo nano /etc/crontab
下記を追記する
29 */6 * * * www-data /var/www/html/TV_epgrec/epgrec/shepherd.php
6時間おきの29分頃に下記を実行して動作確認します
ps ax | grep recpt
recpt1のプロセスが表示されれば成功
手動でEPGの受信を試みるのもひとつの方法です。コンソール上で
手動でEPGの受信を試みる sudo /var/www/html/TV_epgrec/epgrec/shepherd.php ctrl+Zでバックグランドで実行する
設定を直すにはhttp://192.168.11.13/TV_epgrec/epgrec/install/step1.php
録画保存ディレクトリの変更
録画保存ディレクトリという項目があるが、これは epgrec をインストールしたディレクトリ以下の場所しか指定できない
ということで、この項目の設定値は /video のままにしておき、シンボリックリンクを使う
保存先を /madia/data/video にする場合、まずこのディレクトリを作成しておく
パーミッションを777にしておかないと録画に失敗するので注意
次に、epgrec/video/ にあった録画済みのTSファイルをここに移動し、epgrec/video/ は削除
sudo ln -s /media/data/video /var/www/html/TV_epgrec/epgrec/video
sudo ln -s /home/kazu/Videos /var/www/html/TV_epgrec/epgrec/video
■シンボリックリンクを設定する
/var/www/html/TV_epgrec/epgrec/video
ファイルを移動(~/Videos)
sudo cp /var/www/html/TV_epgrec/epgrec/video/* ~/Videos
/videoを削除する
sudo rm -d /var/www/html/TV_epgrec/epgrec/video
新たに保存先として使用したいディレクトリにシンボリックリンクを設定する
sudo ln -s ~/Videos /var/www/html/TV_epgrec/epgrec/video
test20
********************** -------------------------------------- ーーーーーーーーーーーーーーーーーーーー -------------------------------- FFmpegを使用したトランスコード機能の追加 http://www.jifu-labo.net/2015/09/ffmpeg_build/ **********************