===== 録画サーバ ===== === hardware === * Raspberry Pi 4 * KTV-FSUSB2 * KTV-FSPCIE === software === ^ ^使用ソフト^機能^ |フロントエンド|EPGStation|GUI,WEBUI,予約管理| |バックエンド|mirakurun|APIサーバ(RESTインターフェース),チューナー,チャンネル管理| |録画プログラム|recfsusb2n|チューナ機器からデータを読み出すコマンド| フロントエンドには,Chinachuというのもあるが,EPGStationの方が開発が活発のようなのでEPGstationを選んだ mirakurunはrecfsusb2nを呼び出して,テレビのデータを取り出す。EPGStationはmirakurunのAPIを用いて,データを取得する。テレビのストリーミングのデータすら,APIで取得し,フロントエンドのEPGStationはrecfsusb2nを呼び出すことはないようだ。 ==== OS のインストール ==== [[it:rpi:raspbian|Raspbianのインストール]] を参照して,インストールする その後, sudo apt update sudo apt upgrade を実行しておく ==== recfsusb2n のインストール ==== http://ksmksks.hateblo.jp/entry/2015/09/20/205550 の方法を実施した sudo apt-get install git libboost-all-dev gcc make git clone https://github.com/sh0/recfsusb2n mkdir patch cd patch/ unzip recfsusb2n_http_patch2.zip mv * ../recfsusb2n/src/ cd ../recfsusb2n/src/ vi Makefile * 11行目:"CXXFLAGS =“の”-march=native“を削除 * 13行目:"CFLAGS =“の”-march=native“を削除 * 15行目:"#LIBS“の”#“を消してコメントアウトを外し,boost_thread-mt」の「-mt」を消す * 16行目:頭に"#“を付けて”#LIBS"としてコメントアウト. make cp recfsusb2n /usr/local/bin/ === 動作確認の例 === UHF27chを40秒間、test.tsにB25復号しながら記録 recfsusb2n -bv 27 40 test.ts ==== mirakurunのインストール ==== https://qiita.com/tatsuya_info/items/3583182ac104a4958eac にある内容に従って,以下をやった sudo curl -sL https://deb.nodesource.com/setup_12.x | sudo bash - sudo apt-get install -y nodejs sudo npm install pm2 -g sudo npm install mirakurun -g --unsafe-perm --production sudo mirakurun config tuners すべて消して,以下を書き込む - name: KTV-FSPCIE types: - GR command: /usr/local/bin/recfsusb2n --b25 - - isDisabled: false - name: KTV-FSUSB2N types: - GR command: /usr/local/bin/recfsusb2n --b25 - - isDisabled: false (この記述で,二台のチューナーを同時に使える) さらに sudo mirakurun config channels で,以下を記述する - name: NHKEテレ type: GR channel: '22' - name: TVQ九州放送 type: GR channel: '26' - name: NHK総合 type: GR channel: '27' - name: RKB毎日放送 type: GR channel: '30' - name: KBCテレビ type: GR channel: '31' - name: FBS福岡放送 type: GR channel: '32' - name: テレビ西日本 type: GR channel: '34' 上記の処理で /usr/local/etc/mirakurun/* に設定ファイルが書き込まれる。 sudo mirakurun restart で起動する。起動しない場合には /usr/local/var/log/ 以下の mirakurun.* にログがでているので確認する。 curl -X PUT "http://localhost:40772/api/config/channels/scan" でチャンネルスキャンする。 ここで,/usr/local/etc/mirakurun/channels.yml に結果が書き込まれる スキャンの結果を確認するには, sudo mirakurun restart sudo npm install rivarun -g sudo rivarun --list | sed 's/},/},\n/g' で確認できる ==== EPGStation === sudo gpasswd -a $USER video git clone https://github.com/l3tnun/EPGStation.git cd EPGStation npm install --unsafe-perm sqlite3 npm install diskusage npm install npm run build cp config/config.sample.json config/config.json cp config/operatorLogConfig.sample.json config/operatorLogConfig.json cp config/serviceLogConfig.sample.json config/serviceLogConfig.json vi ~/EPGStation/config/config.json "ffmpeg": "/usr/bin/ffmpeg", "ffprobe": "/usr/bin/ffprobe", "recorded": "/path/to/", "recordedTmp": "/path/to/", pm2 startup pm2 start dist/server/index.js --name "epgstation" pm2 save 以上で設定が済んだら, http://192.168.1.140:8888/ でアクセスして動作するか確認する。 ==== エラー === /usr/local/var/log/mirakurun.stderr.log に以下のエラーが出ていた 2020-03-10T12:49:11.779+09:00 warn: TSFilter is overflowing the buffer... それで, npm update -g core-js set-value npm を実行した さらに、この問題は、バッファのオーバーフローなので、 /usr/local/etc/mirakurun/server.yml を編集して 以下を追加して、バッファサイズを512Mにした highWaterMark: 536870912 さらに、 /usr/lib/node_modules/mirakurun/processes.json を編集して、プロセスサイズの最大値を2048Mに変えてみた。 "node_args" : "--max_old_space_size=2048", ==== エラー === 再起動時にスタートしない問題 pm2 startup を実行すると, [PM2] To setup the Startup Script, copy/paste the following command: sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u pi --hp /home/pi と出たので, sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u pi --hp /home/pi を実行した ==== アップデート === mirakurunのアップデート # npm install mirakurun@latest -g --production EPGStationのアップデート # su pi $ cd EPGStation $ git pull