スキップしてメイン コンテンツに移動

Linux録画サーバーの備忘録

 Linux MintとW3PE4を使った録画サーバーを構築するときにやったことを忘れないためと、情報の共有のために投稿。

必要なものは

・PC

・W3PE4

・カードリーダー(SCR3310)

・ググる力

・やる気

やることは

・Mintの必要パッケージのインストール

・W3PE4の非公式ドライバのインストール

・カードリーダーのドライバのインストール

・arib-b25のインストール

・Node.jsのインストール

・録画コマンドのインストール

・Mirakurunのインストール

・EPGStationのインストール

・MySQLのインストール

・各種設定


W3PE4で電波を受信し、それをB-CASで復号し、そのためにb25というのが必要らしい。そしてW3PE3を管理するためにMirakurunを使い、録画を管理するためにEPGStationを使う。


Mintをインストールしてすぐは当然

sudo apt update

sudo apt upgrade

で必要パッケージの更新を行い、次に

sudo apt install build-essential

と入力し、必要パッケージをインストールする



次にW3PE4の非公式ドライバのインストールは

https://github.com/nns779/px4_drv


を参考にする。具体的には端末で

git clone https://github.com/nns779/px4_drv.git

cd px4_drv

cd fwtool

make

wget http://plex-net.co.jp/plex/pxw3u4/pxw3u4_BDA_ver1x64.zip -O pxw3u4_BDA_ver1x64.zip

unzip -oj pxw3u4_BDA_ver1x64.zip pxw3u4_BDA_ver1x64/PXW3U4.sys

./fwtool PXW3U4.sys it930x-firmware.bin

sudo mkdir -p /lib/firmware

sudo cp it930x-firmware.bin /lib/firmware/

cd ../

cd driver

make

sudo make install

cd ../


とやればいいはずだ。インストール出来たかどうかは
$ lsmod | grep -e ^px4_drv
と入力し

>>px4_drv                81920  0
と表示されればOK。81920は環境によって数字が変わると思われる。

カードリーダーSCR3310は
sudo apt install pcscd pcsc-tools
と入力すれば使えるようになる。確認するには
pcsc_scan
と入力して、B-CASカードの情報が何かしら表示されていたらOK。


Arib b25は暗号化された放送を複合するために必要。まずはビルドに必要なパッケージをインストールする必要があるので
sudo apt install autoconf build-essential curl git-core libccid libpcsc-perl libpcsclite-dev libpcsclite1 libssl-dev libtool linux-headers-`uname -r` mercurial pcsc-tools pcscd pkg-config yasm
と実行する。
次にArib b25のインストールは
wget http://hg.honeyplanet.jp/pt1/archive/c44e16dbb0e2.zip
unzip c44e16dbb0e2.zip
cd pt1-c44e16dbb0e2/arib25
make
make install
と入力する。

次録画コマンドをインストールする
wget http://plex-net.co.jp/download/linux/Linux_Driver.zip
unzip Linux_Driver.zip
cd Linux_Driver/MyRecpt1/MyRecpt1/recpt1
sed -i".org" 's/-DTV/video/g' pt1_dev.h
make clean
sh ./configure --enable-b25
make
sudo make install
と入力すればインストール出来るはずだ。確認するために
recpt1 --device /dev/px4video0 --lnb 15 --b25 BS15_0 10 test.ts
と入力し、test.tsで10秒間、何かしら録画されていればOKだ。


次にNode.jsのインストールを行う。これはMirakurunとEPGStationを使うのに必須だ。
sudo apt install node.js
sudo apt install npm
でインストール出来る。

そしてMirakurunのGithubのページはここだ。
https://github.com/Chinachu/Mirakurun/blob/master/doc/Platforms.md#linux
インストールするには
sudo npm install pm2 -g
sudo npm install mirakurun -g --unsafe-perm --production
と入力すればいい。これだけでインストール可能なのがすごい。

次にMirakurunの設定を行う。各サイトにいろいろなやり方が乗っているが、私の環境ではどのやり方でも動かなかったので、独自の設定になる。もしかしたら別サイトを参考にしたほうがいいかもしれない。

まず
sudo mirakurun  config tuners
と入力すればVimでtunersの設定ファイルが開かれる。Vimの使い方がわからない場合は頑張ってググってほしい。また最初はVimがインストールされていないこともあるので
sudo apt install vim
と入力してVimをインストールする必要もあるかもしれない。

tunersの設定は以下のように行う
- name: PX4-S1
  types:
    - BS
    - CS
  command: recpt1 --device /dev/px4video0 --lnb 15 --b25 <channel> - -
  isDisabled: false
- name: PX4-S2
  types:
    - BS
    - CS
  command: recpt1 --device /dev/px4video1 --lnb 15 --b25 <channel> - -
  isDisabled: false
- name: PX4-T1
  types:
    - GR
  command: recpt1 --device /dev/px4video2 --b25 <channel> - -
  isDisabled: false
- name: PX4-T2
  types:
    - GR
  command: recpt1 --device /dev/px4video3 --b25 <channel> - -
  isDisabled: false

pc4video○の部分の数字は0と1がBSCS、2と3は地デジ、そしてまた4と5はBSCSと2つおきにBSCSと地デジが入れ替わるので、8チューナーとか使う場合はそれに合わせて数字を変える。--lnb 15は衛生アンテナに15Vの電源を供給する。他の自宅のTVやレコーダーから供給している場合はなくても構わない。スクランブルを解除するため--b25は必須。

次にチャンネル設定はこのように入力
sudo mirakurun config channels
するとまたchannnelsの設定ファイルがVimで開くので、以下のように入力。ただし、地デジは環境によって設定が大きく変わるので注意が必要。それについては下記にまた記載する。とりあえず大阪北部ではこのような設定が最適と思われる。
- name: NHK大阪 総合
  type: GR
  channel: '24'
- name: NHK大阪 教育
  type: GR
  channel: '13'
- name: MBS毎日放送
  type: GR
  channel: '16'
- name: ABCテレビ
  type: GR
  channel: '15'
- name: テレビ大阪
  type: GR
  channel: '18'
- name: 関西テレビ
  type: GR
  channel: '17'
- name: 読売テレビ
  type: GR
  channel: '14'
- name: サンテレビ
  type: GR
  channel: '26'
- name: KBS京都
  type: GR
  channel: '23'
- name: NHK BS1
  type: BS
  channel: BS15_0
  serviceId: 101
- name: NHK BSプレミアム
  type: BS
  channel: BS03_1
  serviceId: 103
- name: BS日テレ
  type: BS
  channel: BS13_0
  serviceId: 141
- name: BS朝日
  type: BS
  channel: BS01_0
  serviceId: 151
- name: BS-TBS
  type: BS
  channel: BS01_1
  serviceId: 161
- name: BSテレ東
  type: BS
  channel: BS01_2
  serviceId: 171
- name: BSフジ
  type: BS
  channel: BS13_1
  serviceId: 181
- name: WOWOWプライム
  type: BS
  channel: BS03_0
  serviceId: 191
- name: WOWOWライブ
  type: BS
  channel: BS05_0
  serviceId: 192
- name: WOWOWシネマ
  type: BS
  channel: BS05_1
  serviceId: 193
- name: スター・チャンネル1
  type: BS
  channel: BS09_1
  serviceId: 200
- name: スター・チャンネル2
  type: BS
  channel: BS15_1
  serviceId: 201
- name: スター・チャンネル3
  type: BS
  channel: BS15_1
  serviceId: 202
- name: BS11
  type: BS
  channel: BS09_0
  serviceId: 211
- name: TwellV
  type: BS
  channel: BS09_2
  serviceId: 222
- name: 放送大学 BS1
  type: BS
  channel: BS11_1
  serviceId: 231
- name: 放送大学 BS2
  type: BS
  channel: BS11_1
  serviceId: 232
- name: グリーンチャンネル
  type: BS
  channel: BS19_0
  serviceId: 234
- name: BSアニマックス
  type: BS
  channel: BS13_2
  serviceId: 236
- name: BSスカパー!
  type: BS
  channel: BS11_0
  serviceId: 241
- name: J SPORTS 1
  type: BS
  channel: BS19_1
  serviceId: 242
- name: J SPORTS 2
  type: BS
  channel: BS19_2
  serviceId: 243
- name: J SPORTS 3
  type: BS
  channel: BS21_1
  serviceId: 244
- name: J SPORTS 4
  type: BS
  channel: BS21_2
  serviceId: 245
- name: BS釣りビジョン
  type: BS
  channel: BS23_0
  serviceId: 251
- name: シネフィルWOWOW
  type: BS
  channel: BS21_0
  serviceId: 252
- name: 日本映画専門チャンネル
  type: BS
  channel: BS23_1
  serviceId: 255
- name: ディズニー・チャンネル
  type: BS
  channel: BS03_2
  serviceId: 256
- name: 東映チャンネル
  type: CS
  channel: CS8
  serviceId: 218
- name: 衛星劇場
  type: CS
  channel: CS10
  serviceId: 219
- name: 映画ch・NECO
  type: CS
  channel: CS24
  serviceId: 223
- name: ザ・シネマ
  type: CS
  channel: CS14
  serviceId: 227
- name: ムービープラス
  type: CS
  channel: CS18
  serviceId: 240
- name: スカイA
  type: CS
  channel: CS4
  serviceId: 250
- name: GAORA
  type: CS
  channel: CS12
  serviceId: 254
- name: 日テレG+
  type: CS
  channel: CS24
  serviceId: 257
- name: ゴルフネットワーク
  type: CS
  channel: CS18
  serviceId: 262
- name: SKY STAGE
  type: CS
  channel: CS16
  serviceId: 290
- name: 時代劇専門ch
  type: CS
  channel: CS4
  serviceId: 292
- name: ファミリー劇場
  type: CS
  channel: CS14
  serviceId: 293
- name: ホームドラマch
  type: CS
  channel: CS6
  serviceId: 294
- name: MONDO TV
  type: CS
  channel: CS24
  serviceId: 295
- name: TBSチャンネル1
  type: CS
  channel: CS2
  serviceId: 296
- name: TBSチャンネル2
  type: CS
  channel: CS22
  serviceId: 297
- name: テレ朝チャンネル1
  type: CS
  channel: CS2
  serviceId: 298
- name: テレ朝チャンネル2
  type: CS
  channel: CS2
  serviceId: 299
- name: 日テレプラス
  type: CS
  channel: CS24
  serviceId: 300
- name: エンタメ~テレ
  type: CS
  channel: CS4
  serviceId: 301
- name: チャンネル銀河
  type: CS
  channel: CS18
  serviceId: 305
- name: フジテレビONE
  type: CS
  channel: CS20
  serviceId: 307
- name: フジテレビTWO
  type: CS
  channel: CS20
  serviceId: 308
- name: フジテレビNEXT
  type: CS
  channel: CS20
  serviceId: 309
- name: スーパー!ドラマTV
  type: CS
  channel: CS14
  serviceId: 310
- name: AXN海外ドラマ
  type: CS
  channel: CS16
  serviceId: 311
- name: FOX
  type: CS
  channel: CS22
  serviceId: 312
- name: 女性ch/LaLa
  type: CS
  channel: CS18
  serviceId: 314
- name: AXNミステリー
  type: CS
  channel: CS16
  serviceId: 316
- name: スペシャプラス
  type: CS
  channel: CS16
  serviceId: 321
- name: スペースシャワーTV
  type: CS
  channel: CS20
  serviceId: 322
- name: MTV
  type: CS
  channel: CS4
  serviceId: 323
- name: ミュージック・エア
  type: CS
  channel: CS6
  serviceId: 324
- name: エムオン!
  type: CS
  channel: CS12
  serviceId: 325
- name: 歌謡ポップスch
  type: CS
  channel: CS6
  serviceId: 329
- name: キッズステーション
  type: CS
  channel: CS12
  serviceId: 330
- name: カートゥーン
  type: CS
  channel: CS6
  serviceId: 331
- name: AT-X
  type: CS
  channel: CS16
  serviceId: 333
- name: ディズニージュニア
  type: CS
  channel: CS2
  serviceId: 339
- name: ディスカバリーチャンネル
  type: CS
  channel: CS6
  serviceId: 340
- name: アニマルプラネット
  type: CS
  channel: CS6
  serviceId: 341
- name: ヒストリーチャンネル
  type: CS
  channel: CS14
  serviceId: 342
- name: ナショナルジオグラフィック
  type: CS
  channel: CS12
  serviceId: 343
- name: 日テレNEWS24
  type: CS
  channel: CS8
  serviceId: 349
- name: TBS NEWS
  type: CS
  channel: CS22
  serviceId: 351
- name: BBCワールドニュース
  type: CS
  channel: CS16
  serviceId: 353
- name: CNNj
  type: CS
  channel: CS6
  serviceId: 354
- name: 囲碁・将棋チャンネル
  type: CS
  channel: CS6
  serviceId: 363
- name: スポーツライブ+
  type: CS
  channel: CS10
  serviceId: 800
- name: スカチャン1
  type: CS
  channel: CS10
  serviceId: 801


地デジの設定についてだが、こちらは
curl -X PUT "http://localhost:40772/api/config/channels/scan"
と入力すればチャンネルスキャンが行える。13から順番にスキャンを行い、電波を受信できたらその受信できたチャンネル名が表示されるはずだ。それを参考にチャンネル設定を行う。

sudo mrakurun start
sudo mirakurun stop
sudo mirakurun restart
でMirakurunのスタート、停止、リスタートが行える。

またブラウザで
localhost:40772
にアクセスするとグラフィカルな管理画面が表示され、Logなどもここで見られる。起動してすぐはおそらく番組表の更新が始まると思われる。


次に、録画を管理するEPGStationをインストールする。こちらのGithubのページはこちら
https://github.com/l3tnun/EPGStation
なお、録画を管理するのにはchinachuというソフトもあるが、個人的にはEPGStationのほうが高機能と思われる。

さて、インストールは
git clone https://github.com/l3tnun/EPGStation.git
cd EPGStation
npm install --no-save
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
で行う。下の3行は設定ファイルを作成するためのものだ。EPGStationのディレクトリで端末を開き
sudo npm start
と入力すればEPGStationが開始するが、その前に設定を行う必要がある。EPGStationはデータベースを使うため、何かしらのデータベースを用意する必要がある。今回は推奨されているMySQLを使用する。

sudo apt install mysql-server mysql-client
と入力すればMySQLがインストール出来る。次に
sudo mysql -u root
と入力し、MySQLの設定を行う

設定はEPGStation用のユーザーの作成、データベースの作成、権限の設定を行う。
create user 'epg'@'localhost' identified by 'password;
epgとpasswordは任意の文字に変えてもいい。というかpasswordは変えるべきだ。
grant all on *.* to epg@localhost;
で権限を付与
create database record;
でデータベースを作成。recordではなくて任意の名前でも良い。
exit
でMySQLから出る。


次にEPGStationにMySQLの設定を読み込ませる。
EPGStationのフォルダ内にconfigフォルダがあり、その中にconfig.jsonがあるのでそれを開く。
dbtypeをmysqlに変更し、その下に具体的な設定を入力する。

具体的にはこのような感じ
    "dbType": "mysql",
    "mysql": {
        "host": "localhost",
        "port": 3306,
        "user": "epg",
        "password": "password",
        "database": "record",
        "connectTimeout": 20000,
        "connectionLimit": 10
         },

任意の文字に変えた部分は適宜変更する。またそのままコピペするとスペースのせいで上手く読み込まれない可能性もあるので注意する。
またこのconfig.jsonで様々な設定を行えるので、細かい設定をしたいときは下記を参照
https://github.com/l3tnun/EPGStation/blob/master/doc/conf-manual.md

以上。

コメント

このブログの人気の投稿

xbox game pass for PCからSteamにデータ移行する方法の備忘録

 xboxgamepass(以下ゲーパス)は定額でゲームをプレイし放題の革新的なサービスである一方、ある落とし穴が存在する。 こういうサービスなので、ゲームが配信終了されることもたまにあり、それ自体は仕方のないこととして納得するものの、ゲーパスのゲームのセーブデータはクラウドに保存され、ユーザーはそれにアクセスすることが不可となっている。 つまり、面白かったからSteamで購入し、セーブデータを移行して続きからプレイする事は出来ない。というクソ仕様だ。Microsoftからすれば、xboxで購入してプレイしろよという話なのだろうが、あんな使いにくいゴミアプリはゲーパス以外の価値はない。 ここから本題。先程、セーブデータはクラウドに保存され、ユーザーはそれにアクセスすることが出来ないと述べたが、実際には名前を変えてローカルにも保存されている。以下はセーブデータの移行方法。 注意点として、全てのゲーム、環境でこの方法が使えるわけではないので、悪しからず。 また、予めSteamでゲームを購入し、そのゲームのセーブデータを作っておく必要もある。 この方法でセーブデータが消去されてしまったとしても、私は一切の責任は取らない。 今回移行するゲームはProject Wingman まず、C:\Users\User\AppData\Local\Packages\にアクセスする。 長い名前のフォルダがあるが、セーブデータが保存されていると思われるフォルダはゲームのデベロッパーかパブリッシャーの名前を含んでいるので、検索して探す。Project Wingman の場合はHumbleと検索すると見つかる。探しているゲームに合わせて検索ワードを変えて探し、フォルダの中に入る。 次にSystemAppDataのフォルダに入り、その中のwgsというフォルダに入る。wgsには"t"というフォルダと、めちゃくちゃ長い名前のフォルダの2つがあるので、めちゃくちゃ長い方に入る。 中には変わった名前のフォルダがいくつかあると思う。 ゲームによって多少変わるものの、ゲームのセーブデータはいくつかのファイルから構成されている。このフォルダはそのファイルを1つ1つフォルダ分けし、名前を変えられてこの中に入っている。 なので、この中にあるファイルの名前を1つ1つ変更し、Steamのフォルダに...

凱旋門賞に向けてパリロンシャン競馬場の軽いレポート

いざ凱旋門賞 日本競馬がこれまで何度も立ち向かい、ディープインパクトやオルフェーヴルでも勝利することが出来ない世界の壁であり最大の鬼門。 今年は日本からはタイトルホルダー、ドウデュース、ディープボンド、ステーフーリッシュの4頭が出走予定。 そんな凱旋門賞はフランス、パリにあるパリロンシャン競馬場にて行われる。 パリ大賞(GI)が行われる7月14日にパリロンシャン競馬場を訪れたので、今回はその簡単なレポートをつらつらと書いていく。 1857年という今から165年も前に開場したこの競馬場は世界で最も美しい競馬場とも言われており、先述した世界最高峰のレースである凱旋門賞が行われる競馬場として有名。 パリ郊外のブローニュの森という森の中に造られており、アクセスする手段はバスに限られる。メトロの駅から歩けない距離でないが、40分以上は余裕でかかるのでおすすめはしない。 日本の競馬場は街なかに人工芝を用いて作られるが、欧州の競馬場の多くはもともと自然が会った場所に競馬場を建設する為、大きな競馬場でもアクセスが悪いことは珍しくない。また水はけが悪く、馬場状態が悪化しやすく回復しないのも特徴の一つだ。 これが日本の走りやすい芝に特化した競走馬が欧州ではなかなか勝てない所以と一般的に言われている。 入場券はかなり高額で€20(2800円程度)もする。早期にネット予約すればもう少し安くなるが、日本と比べると非常に高額。 入場ゲートをくぐると、金色に光るスタンドとそれに続く階段が目に入り、その奥には馬の銅像が置かれている。 この馬はグラディアトゥールという馬で1862年にフランスで生産され、英2000ギニーステークス、ダービーステークスを勝利。仏に戻りパリ大賞典(パリ大賞)にも勝利。その後再び渡英しセントレジャーステークスを勝利して史上二頭目の英クラシック三冠馬となる。 生涯戦績19戦16勝という圧倒的な強さを誇った馬。 当時のフランス競馬はイギリスかぶれの貴族たちによって行われていたものの、イギリス本国と比較すると劣っていた。そんな中でフランスの馬がイギリスのクラシックを総なめしたというのだから、その人気は絶大なものだっただろう。銅像が作られるのも納得である。 さらに進み、右に曲がるとパドックが見える。パドックの作りは日本と大きく違い、かなり長い長方形となっている上、木々が生えている。...

頼むから放送規格をもっと厳格に規格してくれ

 エンコード設定の決定版がなかなかない 今はQSVを使ってh264にエンコードし、地デジやBS・CSの解像度に違いがあるため1920x1080に変換し、音声はコピーしてmp4に格納しており、エンコードの設定は以下のようになっていた。 ffmpeg -hwaccel qsv -c:v mpeg2_qsv -i "$RECPATH" -c:v h264_qsv -preset 1 -look_ahead 0 -look_ahead_depth 100 -q:v 21 -c:a copy -map v:0 -map a:0 -vf scale_qsv=w=1920:h=1080 これで7倍速でエンコード出来るし、画質、容量、互換性も申し分ない。本当はHEVCでエンコードしたいが、なぜかWindowsで再生できないためH264に変換している。 しかしながら、放送規格が局によって大きく変わったり、同じ放送局でも番組によって変化するため、非常に難儀している。 まず問題となるのが、AT-Xだ。AT-Xは有料のアニメ専門チャンネルでそれなりの料金を支払って契約しているが、当局の番組のエンコード中、それも特定の限られた番組にのみある問題が起きた。途中でエンコードが終了しているのだ。問題となった番組を再び同じ設定でエンコードしたところ、『Error parsing ADTS frame header!』と表示され、エンコードが途中で強制終了した。そのためGoogle先生の力を借りて解決策を模索したところ、-bsf:a aac_adtstoascと入力すれば問題は解決した。 …かのように思えたが、別の問題が発生した。東名阪以外の田舎に住んでいるアニオタにとっての救世主であるBS11イレブンをエンコードしたところ、音声は格納されているのになぜか音声が再生されない。つまり音無しの動画になってしまったのだ。 私は大阪に住んでいるが、BS11イレブンは画質が良く、アニメのラインナップも充実しているので貴重な存在であることには代わりはなく、対策をする必要が出てきた。 ffmpeg内臓のAACエンコーダーは品質が悪いので、できれば使いたくないが、コピーしてしまうと放送局の放送規格の違いが原因で何かしらの問題が出てきてしまうようなので、仕方なくエンコードすることにした。 『-c:a...