Raspberry Pi 4 で構築する録画マシン

🍓 Raspberry Pi 4 が買えるようになりました

筆者の⾃宅で運⽤している録画サーバーの様⼦

Raspberry Pi の⼊⼿

録画マシン用パーツの入手

🍓 Raspberry Pi のセットアップ

書き込むOSとSDカードを選択するだけ

IC カードリーダーのセットアップ

$ sudo apt update
$ sudo apt install pcscd libpcsclite-dev libccid pcsc-tools
$ pcsc_scan | grep B-CAS

チューナーのセットアップ

$ wget http://plex-net.co.jp/plex/px-s1ud/PX-S1UD_driver_Ver.1.0.1.zip
$ unzip PX-S1UD_driver_Ver.1.0.1.zip
$ sudo cp PX-S1UD_driver_Ver.1.0.1/x64/amd64/isdbt_rio.inp /lib/firmware/
$ usb-devices | grep PX-S1UD
$ ls -l /dev/dvb/

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

$ sudo apt install dvb-tools

🍓 ハードウェアエンコードを行う

$ sudp apt update
$ sudo apt install ffmpeg
$ ffmpeg -codecs
$ ffmpeg -i sample.m2ts -codec:v h264_omx -b:v 3000k sample.mp4
[h264_omx @ 0x887230] Using OMX.broadcom.video_encode
Output #0, mp4, to 'sample.mp4':
Metadata:
encoder : Lavf58.20.100
Stream #0:0: Video: h264 (h264_omx) (avc1 / 0x31637661), yuv420p, 1440x1080 [SAR 4:3 DAR 16:9], q=2-31, 3000 kb/s, 29.97 fps, 30k tbn, 29.97 tbc
Metadata:
encoder : Lavc58.35.100 h264_omx
Stream #0:1: Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 128 kb/s
Metadata:
encoder : Lavc58.35.100 aac
[mpegts @ 0x7931e0] PES packet size mismatchime=00:00:08.67 bitrate=2900.9kbits/s dup=17 drop=0 speed=1.42x
ハードウェアエンコーダを利用すると CPU 利用率にもそれなりの余裕が見られます

🍓 Mirakurun のセットアップ

Node.js のインストール

$ curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
$ sudo apt install nodejs

PM2 のインストール

$ sudo npm install pm2 -g

Mirakurun のインストール

$ sudo npm install mirakurun@latest -g --unsafe-perm --production
$ sudo npm install arib-b25-stream-test -g --unsafe-perm
$ sudo mirakurun start
$ sudo curl -X PUT "http://localhost:40772/api/config/channels/scan"
$ sudo mirakurun restart

🍓 EPGStation のセットアップ

$ git clone https://github.com/l3tnun/EPGStation.git
$ cd EPGStation
$ sudo npm install
$ sudo 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
    "ffmpeg": "/usr/bin/ffmpeg",
"ffprobe": "/usr/bin/ffprobe",
"recorded": "/path/to/recorded",
"recordedTmp": "/path/to/recordedTmp",
最近の VSCode Remote Development, 録画サーバー用IDEとしての進化を遂げています

ブラウザ上でのライブ視聴を利用する

{
"liveMP4": [
{
"name": "h264_omx",
"cmd": "%FFMPEG% -dual_mono_mode main -re -i pipe:0 -sn -codec:a aac -ar 48000 -ac 2 -b:a 192k -codec:v h264_omx -b:v 3000k -movflags frag_keyframe+empty_moov+faststart+default_base_moof -y -f mp4 pipe:1"
}
]
}

その他のエンコード設定を変更する

const codec = 'h264_omx';
Array.prototype.push.apply(args, ['-b:v', '3000k']);

EPGStation を起動する

npm run build
pm2 start dist/server/index.js -name "epgstation"
スマートフォンから視聴することも出来ます。最高ですね。

…あとがき

2012年頃、録画に使ってたサーバー
2012年頃、録画に使ってたサーバー

--

--

録画界 №1 オサレポエム同人雑誌に関する情報 | Chinachu や Mirakurun に関する情報 | YouTube に関する情報 | Writer 募集中

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store