DINO LAND

トップページ >日記>>  

管理人が博物館や博覧会などで撮影してきた写真をご紹介。博物館や博覧会に行く機会のある方はご訪問された後ご覧になることをおすすめします。ネタバレ注意です。

録画サーバー構築手順備忘録

もうすぐ葬送のフリーレン2期が放送されるので調子の悪かった録画サーバーを構築し直したので備忘録として書きました。これから録画サーバーを構築される方の参考にもなれば幸いです。

<準備物>(構築環境)
○アンテナ分配器
⇒DXアンテナ製のCSD-72L

○テレビチューナー
⇒アースソフト製のPT3 Rev.A(生産終了)

○B-CASカード
⇒家で使用していたもの

○カードリーダー
⇒NTTコミュニケーションズ製のSCR3310-NTTCom(生産終了)

○サーバー(PC)
⇒OS:Ubuntu 22.04 LTS, Nginx, PHP7.4, mysql8.0, epgrec UNA

必要なパッケージ(ソフトウェア)のインストール

linux@ubuntu:~  linux@ubuntu:~$ sudo apt install at git ffmpeg dkms dvb-tools libpcsclite-dev pcscd pcsc-tools libccid cmake autoconf automake build-essential
[sudo] linux のパスワード:
ご自身のユーザーパスワードを入力して、ENTERキーを押してください。
 linux@ubuntu:~$ sudo systemctl start pcscd
 linux@ubuntu:~$ sudo systemctl enable pcscd
 linux@ubuntu:~$ pcsc_scan



Japanese Chijou Digital B-CAS Card (pay TV)

⇒最後にJapanese Chijou Digital B-CAS Card (pay TV)と表示されていれば問題ありません。

PT3ドライバのインストール

linux@ubuntu:~  linux@ubuntu:~$ cd  /usr/local/src/
 linux@ubuntu:/usr/local/src$ sudo git clone https://github.com/m-tsudo/pt3.git
 linux@ubuntu:/usr/local/src$ cd pt3/
 linux@ubuntu:/usr/local/src/pt3$ make
 linux@ubuntu:/usr/local/src/pt3$ sudo make install
 linux@ubuntu:/usr/local/src/pt3$ sudo sh ./dkms.install
 linux@ubuntu:/usr/local/src/pt3$ sudo nano /'etc'/modprobe.d/blacklist.conf
blacklist earth-pt3
#blacklist earth-pt3と表示されている箇所を探し出し、#を外します。保存はCtrlSを押しCtrlVで出来ます。
 linux@ubuntu:/usr/local/src/pt3$ sudo reboot
⇒一度ここで再起動します。再起動できたらログインし直し、再びターミナルを開き次に進みます。
 linux@ubuntu:~$ ls /dev/ | grep pt3
pt3video0
pt3video1
pt3video2
pt3video3

libarib25インストール

linux@ubuntu:~  linux@ubuntu:~$ cd  /usr/local/src/
 linux@ubuntu:/usr/local/src$ sudo git clone https://github.com/stz2012/libarib25.git
 linux@ubuntu:/usr/local/src$ cd  libarib25/
 linux@ubuntu:/usr/local/src/libarib25$ cmake .
 linux@ubuntu:/usr/local/src/libarib25$ make
 linux@ubuntu:/usr/local/src/libarib25$ sudo make install
 linux@ubuntu:/usr/local/src/libarib25$ sudo nano /'etc'/ld.so.conf.d/usr-local-lib.conf
/usr/local/lib
⇒新規にファイルを作成します。/usr/local/libと入力・保存し、閉じます。
 linux@ubuntu:/usr/local/src/libarib25$ sudo ldconfig

recpt1インストール

linux@ubuntu:~  linux@ubuntu:/usr/local/src/libarib25$ cd  ../
 linux@ubuntu:/usr/local/src$ sudo git clone https://github.com/stz2012/recpt1.git
 linux@ubuntu:/usr/local/src$ cd  recpt1/recpt1/
 linux@ubuntu:/usr/local/src/recpt1/recpt1$ sed -i'.org' 's/pt1video/pt3video/g' pt1_dev.h
 linux@ubuntu:/usr/local/src/recpt1/recpt1$ ./autogen.sh
 linux@ubuntu:/usr/local/src/recpt1/recpt1$ ./configure --enable-b25
 linux@ubuntu:/usr/local/src/recpt1/recpt1$ make
 linux@ubuntu:/usr/local/src/recpt1/recpt1$ sudo make install
 linux@ubuntu:/usr/local/src/recpt1/recpt1$ cd 
 linux@ubuntu:~$ sudo sed -i".org" 's/www-data//g' /'etc'/at.deny
 linux@ubuntu:~$ recpt1 --b25 --strip 27 10 /home/linux/デスクトップ/test.ts
 using B25...
 enable B25 strip
 pid = 27553
 C/N = 33.028596dB
 Recording...
 Recorded 11sec

⇒27CH(関東圏のNHK総合)を10秒間録画してデスクトップにtest.tsという名前で保存しています。 27CHはご自身のお住いの地域のチャンネルに
  linuxはご自身のユーザー名に書き換えてください。お住まいの地域のチャンネルはこちらからご確認ください。

 linux@ubuntu:~$ sudo rm -f /home/linux/デスクトップ/test.ts
⇒録画したファイルがデスクトップに保存されているので、ちゃんと録画されているのかVLCプレイヤーなどで確認し、削除します。VLCプレイヤーを
インストールするにはsudo apt install vlcを実行します。

MySQLのインストール

linux@ubuntu:~  linux@ubuntu:~$ sudo apt install mysql-server
 linux@ubuntu:~$ sudo mysql -u root -p
Enter password:
ご自身のユーザーパスワードを入力して、ENTERキーを押してください。
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 8.4.5 MySQL Community Server - GPL

Copyright (c) 2000, 2025, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>create database epgrec;
Query OK, 1 row affected (0.09 sec)
⇒epgrec UNA用データベースを作成
mysql>create user 'epgrec'@'localhost' identified by 'password';
Query OK, 1 row affected (0.02 sec)
⇒epgrec UNA用ユーザーepgrecを作成。passwordは適当なものを入力し、後で使うので控えておいてください。
mysql>grant all privileges on epgrec.* to 'epgrec'@'localhost';
Query OK, 1 row affected (0.29sec)

mysql>exit;
Bye

以上で録画はサーバーは構築できました。ここまででもatコマンドやcronを使えば録画はできます。録画の仕方は録画の準備に書いています。さらに番組表など便利な機能を追加したい方は「epgrec UNAインストール」へ進んでください。ただし、難ありです。

録画の準備

linux@ubuntu:~<at コマンドを使用する場合>
 linux@ubuntu:~$ echo "recpt1 --b25 --strip 27 10 /home/linux/ビデオ/test.ts" | at "19:30 2025-12-16"
warning: commands will be executed using /bin/sh
job 9 at Tue Dec 16 19:30:00 202 ⇒warningと警告が表示されますが問題ありません。12月16日(火)の19時30分から10秒だけ録画が実行されます。

 linux@ubuntu:~$ at -l
9  Tue Dec 16 19:30:00 2025 a linux
⇒予約の確認はat -lで出来ます。

 linux@ubuntu:~$ at -r 9
⇒予約の設定ミスをした場合はat -r <ジョブ番号>で削除し、再設定し直します。

<cronを使用する場合>
 linux@ubuntu:~$ sudo nano /'etc'/crontab
30 19 16 12 tue www-data recpt1 --b25 --strip 27 10 /home/linux/ビデオ/test.ts
⇒最終行にこの内容を書き込み保存する。この設定で12月16日(火)の19時30分から10秒だけ録画が実行されます。

epgrec UNAインストール

「適当な何かの別館」様よりepgdump UNAをダウンロードします。epgdumpUNA160127は誰でもダウンロードできますが、epgrecUNA_151114はパスワードなしにはダウンロードできません。パスワードのヒントはサイト内のプロフィールを参照してください。私からのヒントとしては日本人らしい物ですかね。ダウンロードすると初期設定では、/home/(ユーザー名)/ダウンロードに保存されます。
linux@ubuntu:~  linux@ubuntu:~$ sudo cp /home/linux/ダウンロード/epgdumpUNA160127.tar.gz /usr/local/src/
 linux@ubuntu:~$ sudo cp /home/linux/ダウンロード/epgrec*.tar.gz /usr/local/src/
⇒ダウンロードしたファイルを/usr/local/srcにコピーしています。
 linux@ubuntu:~$ cd  /usr/local/src
 linux@ubuntu:/usr/local/src$ sudo tar -zxvf epgdumpUNA160127.tar.gz
⇒epgdumpUNA160127.tar.gzを解凍
 linux@ubuntu:/usr/local/src$ cd  epgdump/
 linux@ubuntu:/usr/local/src/epgdump$ make
 linux@ubuntu:/usr/local/src/epgdump$ sudo make install
⇒コンパイルしインストールする
 linux@ubuntu:/usr/local/src/epgdump$ cd  ../
 linux@ubuntu:/usr/local/src$ sudo tar -zxvf epgrecUNA_151114.tar.gz
 linux@ubuntu:/usr/local/src$ sudo tar -zxvf epgrecUNA151114Fix1.tar.gz
 linux@ubuntu:/usr/local/src$ sudo tar -zxvf epgrecUNA151114Fix2.tar.gz
 linux@ubuntu:/usr/local/src$ sudo cp -ar epgrec/ /var/www/
⇒解凍したファイルを/var/www/へコピーしています。
 linux@ubuntu:/usr/local/src$ sudo chown -R www-data:www-data /var/www/epgrec/
 linux@ubuntu:/usr/local/src$ sudo rm -f epgdump*.tar.gz epgrec*.tar.gz
⇒ダウンロードしたファイルを削除。

epgrec UNA設定

linux@ubuntu:~  linux@ubuntu:~$ sudo cp /var/www/epgrec/config.php /var/www/epgrec/config_backup.php
 linux@ubuntu:~$ sudo nano /var/www/epgrec/config.php
// 首都圏用地上デジタルチャンネルマップ
// 識別子 => チャンネル番号
$GR_CHANNEL_MAP = array(
'GR27' => '27', // NHK
'GR26' => '26', // 教育
'GR25' => '25', // 日テレ
'GR22' => '22', // 東京
'GR21' => '21', // フジ
'GR24' => '24', // テレ朝
'GR23' => '23', // テレ東
// 'GR16' => '16', // MX TV(スカイツリー)
// 'GR20' => '20', // MX TV(東京タワー)
'GR18' => '18', // テレ神
// 'GR30' => '30', // 千葉
// 'GR32' => '32', // テレ玉
'GR28' => '28', // 大学
);
⇒'GRXX' => 'XX'の値を書き換える。
// 第一チューナー設定(主にPTn)
define( 'TUNER_UNIT1', 0 );
02に変更
// リアルタイム視聴
define( 'REALVIEW', FALSE );
FALSETRUEに変更

 linux@ubuntu:/usr/local/src$ sudo cp /var/www/epgrec/recomplete.php /var/www/epgrec/recomplete_backup.php
 linux@ubuntu:/usr/local/src$ sudo nano /var/www/epgrec/recomplete.php
$ss = stat( '/var/log/syslog' );
syslogmessagesに変更
$sys_logs = file( '/var/log/syslog', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES );
syslogmessagesに変更

 linux@ubuntu:/usr/local/src$ sudo cp /var/www/epgrec/Reservation.class.php /var/www/epgrec/Reservation.class_backup.php
 linux@ubuntu:/usr/local/src$ sudo nano /var/www/epgrec/Reservation.class.php
// AT発行準備
$cmdline = $settings->at.' -M '.date('H:i m/d/Y', $at_start);
'  '(空白)の間に-Mを挿入する

 linux@ubuntu:/usr/local/src$ sudo cp /var/www/epgrec/templates/recordedTable.html /var/www/epgrec/templates/recordedTable_backup.html
 linux@ubuntu:/usr/local/src$ sudo nano /var/www/epgrec/templates/recordedTable.html
str += '<form><div style="text-align:center;">録画ファイルも削除する<input type="checkbox" id="delete_file" name="delete_file" value="1" checked="checked"></div>
</form>';
value="1"の後にchecked="checked"を挿入する

Nginxインストール

linux@ubuntu:~  linux@ubuntu:~$ sudo add-apt-repository ppa:ondrej/php
⇒epgrecで使われているプログラムがphp8では動かいないためダウングレードしてインストール。公式からは無理なのでppaリポジトリからダウンロードする。
 linux@ubuntu:~$ sudo apt install nginx php7.4-fpm php7.4-cli php7.4-mbstring php7.4-xml php7.4-mysql
 linux@ubuntu:~$ sudo add-apt-repository --remove ppa:ondrej/php
⇒ダウンロードしたppaリポジトリを削除する
 linux@ubuntu:~$ cd  /'etc'/nginx
 linux@ubuntu:/'etc'/nginx$ sudo nano sites-enabled/epgrec
server {
  listen 80 default_server;
  server_name _;

  root /var/www/epgrec;

  charset utf-8;

  index index.html index.php;

  location ~ [^/]\.php {
   include fastcgi_params;
   fastcgi_param SCRIPT_FILENAME $request_filename;
   fastcgi_pass unix:/run/php/php7.4-fpm.sock;
  }
}
⇒初期設定ファイル(/'etc'/nginx/sites-enabled/default)を削除して新規にファイルを作成するので以上の内容を書き込み保存する。

 linux@ubuntu:/'etc'/nginx$ sudo rm -f sites-enabled/default
⇒初期設定ファイルを削除する。
 linux@ubuntu:/'etc'/nginx$ sudo ln -s sites-enabled/epgrec sites-available/epgrec
 linux@ubuntu:/usr/local/src$ sudo cp /'etc'/php/7.4/fpm/pool.d/www.conf /'etc'/php/7.4/fpm/pool.d/www.conf_backup
 linux@ubuntu:/usr/local/src$ sudo nano /'etc'/php/7.4/fpm/pool.d/www.conf
user = www-data
group = www-data
⇒userとgroupがwww-dataになっているかを確認。なっていなければwww-dataに修正してください。

listen = /run/php/php7.4-fpm.sock
⇒listenが/run/php/php7.4-fpm.sockになっているかを確認。なっていなければ/run/php/php7.4-fpm.sockに修正してください。

listen.owner = www-data
listen.group = www-data
⇒listen.userとlisten.groupがwww-dataになっているかを確認。なっていなければwww-dataに修正してください。

 linux@ubuntu:/'etc'/nginx$ sudo cp /'etc'/php/7.4/fpm/php.ini /'etc'/php/7.4/fpm/php_backup.ini
 linux@ubuntu:/'etc'/nginx$ sudo nano /'etc'/php/7.4/fpm/php.ini
date.timezone = Asia/Tokyo
⇒;date.timezone =の箇所の;を外しAsia/Tokyoを追加してください

 linux@ubuntu:/'etc'/nginx$ sudo cp /'etc'/php/7.4/cli/php.ini /'etc'/php/7.4/cli/php_backup.ini
 linux@ubuntu:/'etc'/nginx$ sudo nano /'etc'/php/7.4/cli/php.ini
date.timezone = Asia/Tokyo
⇒;date.timezone =の箇所の;を外しAsia/Tokyoを追加してください

 linux@ubuntu:/'etc'/nginx$ sudo systemctl restart nginx
 linux@ubuntu:/'etc'/nginx$ sudo systemctl restart php7.4-fpm
 linux@ubuntu:/'etc'/nginx$ sudo systemctl restart mysql
 linux@ubuntu:/'etc'/nginx$ sudo systemctl enable nginx
 linux@ubuntu:/'etc'/nginx$ sudo systemctl enable php7.4-fpm
 linux@ubuntu:/'etc'/nginx$ sudo systemctl enable mysql

epgrec UNA初期設定

ブラウザでhttp://localhost/epgrec/にアクセスする。
⇒問題なければ「設定を保存する」ボタンを押して次へ進む。

MySQL接続ユーザー名:epgrec
MySQL接続パスワード:password
データベースの作成のときに控えておいたパスワードを入力する

使用データベース名:epgrec
サムネールの使用:使用する
使用コマンドのパス設定-sleep:/usr/bin/sleep
⇒以上の内容とその他の内容を確認し、問題なければ「設定を保存する」ボタンを押して次へ進みます。

地デジチューナーの台数:2
BSチューナーの台数:2(BSを視聴できる場合)
⇒チューナーの数×2を設定する

CS録画の有無:行う(CSを視聴できる場合)
⇒以上の内容とその他の内容を確認し、問題なければ「設定を保存する」ボタンを押して次へ進みます。問題なければ「このリンクをクリックするとEPGの初回受信が始まります」を押して次に進みます。

「初期設定が完了しました。・・・EPGの受信にはx分程度はかかります。・・・このリンクをクリックするとEPGの初回受信が始まります」と表示される。
⇒リンクをクリックし受信を開始する。x分程度後にhttp://localhost/epgrec/へアクセスし受信できているか確認する。

番組表の自動更新設定

受信を確認出来たら再びターミナルを開き次のコマンドを実行する。
linux@ubuntu:~  linux@ubuntu:~$ sudo nano /'etc'/crontab
30 19 * * * www-data /var/www/epgrec/shepherd.php
⇒最終行にこの内容を書き込み保存する。この設定では/var/www/epgrec/shepherd.phpを毎日19時30分に実行・自動更新するようになっています。

トラックバックURL

  • https://ss096297.stars.ne.jp/blog/blog.html?form=trackback&no=49128341

トラックバック

  • トラックバックはまだありません。

コメント

  • コメントはまだありません。

コメント投稿

  • コメントを入力して投稿ボタンを押してください。
投稿フォーム
名前
Eメール
URL
コメント

PHP Blog

2026年01月のカレンダー

1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31