目的
- TVを見る。
- TV番組を録る。
- 録ったTV番組を見る。
- 同一ネットワーク内ならできるようにする。
我が家には、モニターとなるものがTVしか存在しません。(surfaceをメインPCとして使っていますが、HDMIでの映像の入力はではできません。)RaspberryPiをつなげて使ったりするとTVが見ることができません。私は、TV見たいです。そこで、RaspberryPiでTVサーバーを構築できれば同一ネットワーク内ならばSurfaceやスマートフォンを使って視聴できると考えTVサーバーを構築することにしました。
参考にしたサイト
上のサイトを参考にしました。どれも、非常によくまとまっています。ちょくちょく詰まったり私の環境と違ったので新たに行う人の参考になるように、自分でもう一度作るときにコピーするだけでできるようにするために書きます。
著作権について
最近、TV番組の著作権についての私が好きな某こわもて俳優がやっているTVCMを見ました。今回サーバーを作るにあたって少し調べてみました。
個人や家庭内で楽しむためにテレビ番組を録画することは、著作権を持っている人や会社の許可なく行うことができます。
ホットライン テレビ番組著作権 テレビ番組の著作権とは
私が録ったものは一緒に見る人がいないので私しか見ません。個人で楽しむ範囲ですから録画が許されると考えています。ですが
- テレビ番組を録画したDVDやビデオテープを許可無く販売すること
- テレビ番組を録画して、許可なくインターネット上で公開すること
- テレビ番組を録画して、許可なくファイル交換ソフトで共有すること
ホットライン テレビ番組著作権 テレビ番組の著作権とは
などは、著作権違反に当たります。十分に気を付けてください。
下準備
用意するもの(ハード)
-
Raspberry Pi Model B(以下raspi)
- 本体
-
Raspberry Pi 初期設定がなされているとして書きます。
- ただし、ipアドレスの固定、webminのインストールは必要ありません。
-
PLEX USB接続型フルセグ対応地上デジタルTVチューナー PX-Q1UD- うまくいかなかったので↓で行いました。時間があるときに再挑戦します。
-
PLEX USB接続ドングル型地上デジタルTVチューナー PX-S1UD V2.0(以下TVチューナー)
- TVチューナーです。
-
NTTコミュニケーションズ 接触型 USBタイプ ICカード リーダーライター ACR39-NTTCom(以下カードリーダー)
- B-CASカードの読み取りに使います。
-
B-CASカード
- 頑張って手に入れてください。
-
TVの電波
- TVチューナーにつなぎます。
-
用意するもの(ソフト)
-
VLC
- TVを見るために使います。
- PCやスマートフォン上にインストールしてください。
-
VLC
接続
TVチューナーとカードリーダーのUSBをraspiに接続してください。また、カードリーダーにB-CASカードを挿入してください。すくなくとも、私の場合はB-CASカードとカードリーダの見た目は上下逆になりました。
(写真は PX-Q1UDなので参考)
TVチューナー
ファームウェアをダウンロードします。
sudo apt-get install -y firmware-siano
カードリーダー
sudo apt-get install -y build-essential git pcscd libpcsclite-dev libccid pcsc-tools
これだけです。pcsc_scan
を行っていろいろ出てきますが、最後に Japanese Chijou Digital B-CAS Card (pay TV)
と出てくれば成功です。
B-CASカードのデコード用ライブラリ
暗号化された状態で地デジ放送は行われているので復号するために必要らしい。
sudo apt-get install -y cmake g++
git clone https://github.com/stz2012/libarib25.git
cmake .
make
sudo make install
cd ~
録画コマンド
sudo apt-get install -y automake autoconf
wget http://www13.plala.or.jp/sat/recdvb/recdvb-1.3.2.tgz
tar xvzf recdvb-1.3.2.tgz
cd recdvb-1.3.2.tgz
./autogen.sh
./configure --enable-b25
make
sudo make install
cd ~
sudo recdvb --b25 --dev 0 --strip --sid hd 20 10 test.m2ts
などを実行して録画できるか確認してください。なぜかsudo
がないとTVチューナーにアクセスできませんでした。firmwareを開けないのかと思い権限をいじってみましたが変わらなかったので何か思い当たることがある人は教えてください。
Mirakurun
チューナーサーバーをインストールします。ここを参考にしてください。
Node.js
Node.jsが必要なのでまずはNode.jsをインストールしていきます。
sudo apt-get install nodejs npm
sudo npm install -g npm # npmはアップグレードする必要があった。
Node.jsの現在のバージョンはnodejs -v
で確認できる。今回はv8.11.1
だった。
npmの現在のバージョンはnpm -v
で確認できる。今回は6.9.0
だった。
pm2
プロセスをデーモン化したりの起動を管理するソフトです。
sudo npm install pm2 -g
Mirakurunのインストール
sudo npm install mirakurun -g --unsafe --production
成功すればstatusがonline
となります。
Mirakurunの設定
Mirakurunにチューナーの存在を教えてあげます。
sudo mirakurun config tuners
- name: PX-S1UD-1
types:
- GR
command: sudo recdvb --b25 --dev 0 <channel> - -
Mirakurunでチャンネルの設定をします。
curl -X PUT "http://raspberrypi.local:40772/api/config/channels/scan"
raspberrpi.local
の部分は自分のipアドレス(192.168.1.1など)やホスト名に変更してください。
これで、Mirakurunを介して地デジを見ることができます。
windowsのVLCではメディア
->ネットワークストリームを開く
でhttp://raspberrypi.local:40772/api/channels/GR/20/stream
と入力することで見ることができます。
raspberrpi.local
の部分は自分のipアドレス(192.168.1.1など)やホスト名に変更してください。また、20の部分も自分が住んでいる地域のチャンネルを入れてください。
地デジを見ることができたら成功です。
Chinachu
ここを参考にいしてください。
Chinachuインストール
必要なパッケージをインストールします。
sudo apt-get install vainfo
git clone https://github.com/Chinachu/Chinachu.git
cd Chinachu/
./chinachu installer
Autoを選択してインストールしてください。数時間かかります。終了後./chinachu service wui execute
で起動できるか確認してください。
自動起動の設定
- 設定ファイルの用意
- リンクを張る
-
pm2
をsave
する - ログをとるように設定
設定ファイルを用意します。
cp config.sample.json config.json
echo [] > rules.json
config.json
は設定を一か所だけ変える必要があります。
vim config.json
一行目の"uid"
の値を自分のユーザー名に変える必要があります。
"uid": "pi",
次にnpm
とnode
にリンクを張ります。
まずは、nodejs -v
でnodejs
のバージョンを確認します。今回は8.11.1
でした。Chinachu/.nave/installed
の下に新たなディレクトリを作りリンクを張ります。
mkdir Chinachu/.nave/installed/8.11.1
mkdir Chinachu/.nave/installed/8.11.1/bin
cd Chinachu/.nave/installed/8.11.1/bin
ln -s /usr/bin/node .
ln -s /usr/bin/npm .
次にpm2
のsave
をします。
cd Chinachu
sudo pm2 start processes.json
sudo pm2 save
ログの設定をします。
sudo pm2 logrotate -u root
sudo vim /etc/logrotate.d/pm2-root
以下を追記
/usr/local/var/log/chinachu-operator.stderr.log
/usr/local/var/log/chinachu-operator.stdout.log
/usr/local/var/log/chinachu-wui.stderr.log
/usr/local/var/log/chinachu-wui.stdout.log
{
weekly
rotate 4
missingok
notifempty
compress
delaycompress
copytruncate
create 0644 root staff
}
/usr/local/var/log/mirakurun.stdout.log
/usr/local/var/log/mirakurun.stderr.log
{
daily
rotate 7
missingok
notifempty
compress
delaycompress
copytruncate
create 0644 root staff
}
sudo pm2 logs
を行うことでログを見ることができます。
あとは、これで、同一ネットワーク内にある場合はhttp://raspberrypi.local:20772
にアクセスすることでChinachuにアクセスすることができます。(raspberrypi.localは自分のホスト名に適宜変換してください。)