録画サーバー構築手順備忘録
もうすぐ葬送のフリーレン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と表示されている箇所を探し出し、#を外します。保存はCtrl+Sを押しCtrl+Vで出来ます。
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 );
⇒0を2に変更
// リアルタイム視聴
define( 'REALVIEW', FALSE );
⇒FALSEをTRUEに変更
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' );
⇒syslogをmessagesに変更
$sys_logs = file( '/var/log/syslog', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES );
⇒syslogをmessagesに変更
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分に実行・自動更新するようになっています。