初版:2020/8/20
更新:2023/11/16
メンテ&トラブルシューティング
∟ 定時診断スクリプト
前編
1.ラズパイとサーバーの概要
2.録画に必要なものを集める、購入する
3.OSのインストールとセットアップ
4.NASの構築
後編(docker版)
5.チューナードライバの導入
6.docker-mirakurun-epgstationの導入
後編(非docker版)
5.チューナーの導入、テスト録画
6.運用のためのツール、mirakurun、epgstation
● 運用実践編 now!
7.録画管理方法
8.エンコードと再生
9.システムバックアップ
*.エンコード設定メモ
番外.まとめ版
番外.Mirakurunのチャンネル手動設定
番外.ラズパイ用ケース作成
録画環境を構築してしまえば、あとは各々が勝手に録画を行えばいいです。とは言っても何も考えていないと混沌になってしまう。
7.録画管理方法
細かい運用方法は人それぞれですが私個人の案は
・見るかもしれないものをひたすら録画、見ないものは消す
・保存したい番組はエンコード
・DVDやBlurayに保存は後で考える
・見るのはスマホかタブレット、たまにパソコンから
スマホからはSMB(samba)に対応しているファイラーがあればOKです。
多くの場合は予約録画と閲覧がメインでしょう。
EPGStationの運用方法
・鯖(ラズパイ)でEPGStationを作動させている状態で、閲覧するパソコンやスマホで
http://192.168.1.11:8888
(PiのIPが192.168.1.11の場合。8888はポート番号、変更可能)
を開く。番組表を表示させ、見たい番組の予約をすればOK。
Mirakurunの運用方法
・鯖(ラズパイ)でMirakurunを管理する
http://192.168.1.11:40772
(PiのIPが192.168.1.11の場合。40772はポート番号、変更可能)
を開く。
リアルタイム視聴
・ブラウザ上で視聴:機能上は可能だが、サーバーの性能が必要で、ラズパイ4でもハード補助を使ってやっとなのでお勧めできない。LANの帯域は比較的細く済むので、VPNなど使い外出先から見る高等テクを使うときはこちらだが、それをやりたいならPiではなくもっとパワーのあるサーバーを用意しなさい。
・録画データを無圧縮のままLANに流す:こちらをお勧め(mpeg2はmpeg2のままクライアントでデコード)。TVTest+Bondriver_mirakurun(Windows)やVLC(OS問わず)、IPTV系アプリ(Android等)等でストリーム再生するのが妥当と思われます。
TVTestを使ったリアルタイム視聴
ts再生用などの他のTVTestと共有はせずに、別のTVTestを用意することを推奨します。
・BonDriver_Mirakurun.dll BonDriver_Mirakurun.iniをtvtest.exeと同じフォルダに置き、起動する前にBonDriver_Mirakurun.iniの中身を修正する。PiのIPアドレス指定など。bondriverでBonDriver_Mirakurun.dllを指定する。
・BonDriverMirakurunなど一部のdllはvcランタイムを要求する。大概は入れているでしょうが買ったばかりのWindowsなどの場合は注意。
・チャンネルスキャンをしておく。
インターフェイスは、サイドバーなし、ステータスバーにはチューナー(地デジBSCS選択に)、チャンネル、ブックマーク、映像サイズ、音量、音声があればOK。D/E/Sがあれば信号不調やスクランブル解除不備の発見に役立つでしょう。プラグインはTVCaptionとNicoJK以外は使わない(Piの方でCASは解除済みなのでCASproseccerも不要)。NicoJKは有効だと起動が遅いので、必要な時に有効にする方がいいかと。
あと、私はこれ用のアイコンを書き換えてMirakurunの☆を加えている。また、タイトルバーとステータスバーを黄色にしている。
MirakTestを使ったリアルタイム視聴
私も最近まで知らなかったのですが、MacやLinuxで(Winでも)ライブ視聴ができるMirakTestというツールがあります。使い方はmirakurunが動いているサーバーのアドレスを指定するだけ。唯一残念なのはAndroid版は無い模様。
https://ci7lus.hatenablog.com/entry/2021/03/31/234108
VLCを使ったリアルタイム視聴
・Linux,Android版TvTestはないので、こちらを使うことになる。
・m3uファイルを作る。中身を記述する。
#EXTM3U
http://(PiのIPアドレス):40772/api/channels/GR/(物理チャンネル)/services/(ServiceID)/stream
IPアドレスは普通にラズパイのIPアドレス。40772はmirakurunのportなので、違う設定にしている場合は各自修正。物理チャンネルは上の方に書いた通り。ServiceIDは、チャンネルスキャンあたりで出てきたと思うが、その数値(ServiceIDは省略しても視聴はできるが、サブチャンネルとの関係か省略すると変な形(ワンセグ受信したり外国語音声で再生されたり)で再生されることがある)を書いておく。
IPTVアプリを使ったリアルタイム視聴
から知りました。まずIPTVアプリのTiviMate...と言いたいのですが他を試して思いましたがTiviMateって操作しにくくありません?このジャンルのアプリはいくつもあるのでこれ以外の好きなものをどうぞですが、とりあえず
IPTV Player_googleplay
softnicはあまり使いたくないですが、非googleplay端末用
M3UのURLを要求されるので、http://(PiのIp):40772/api/iptv/playlist/ を指定する(mirakurun管理画面のConnection GuideにもこのURLは記載されています)。
VLCと比べるとチャンネル切り替えもスムーズにできる点は優秀、テレビの代わりに使うイメージならこちらに軍配が上がりそうです。
[メモ]結局何を使って視聴するか?
ラズパイ鯖にMirakurun入れてるという前提で、
Win上なら極力TVTest+mirakurun拡張が最善で、場合によってはVLCでしょうか。Android上ならVLCかその他再生ソフト。ブラウザ上で見るのは帯域の方をどうしても絞りたいケースくらいのものではないだろうか。
ファイル再生する場合も、WinならTVTest+tvtplay拡張が最善だと思う。Androidなら各種動画再生ツールでしょう。
すると、毎回決まって閲覧するのはファイルの保存ディレクトリと、番組表を表示するブラウザの2か所ということになる。可能ならその2か所だけチェックすればいいように、メンテ通知等も置ければ理想ではないでしょうか。
無線か有線か
もちろんWifiからでもアクセスして再生できる。ただしTSファイルは容量(転送量)が大きいため無線だと場合によってはカクつくかもしれないので注意。
録画方法
1.番組表から一つ一つ録画を指定する
〇わかりやすい
×毎回録画指定するのは手間
単発番組に向いていると思われる。
1b.定期的に検索して気になったものを録画する
検索を実行したときのURLをブクマして一つのフォルダにまとめる、それを右クリックで一括実行するといいかも。
2.自動録画のキーワードを指定する
番組を検索し、一番右下の"追加"ボタンを押す。登録したものはルールから参照。
〇放送時間が前後する場合でも大丈夫
〇特定のジャンルや好きなタレント目当てに録画できる
×あまりに多すぎるとブラウザが重くなるかもとのこと
自動エンコード
前述のとおり、EPGStationはffmpegのパス設定で自動的にエンコしてくれる。...なのだが私の場合はなぜか失敗していることも多い。私は手動でのみエンコしているので、自動エンコしたい方は適当にググってください。
ファイル名
基本的にはEPGStationでつけられた名前をベースで考えればとおもうが、
・日付は数字6桁へと短縮+番組名でいいと思う
・映画アニメ等の作品系は日付不要かも
・どの局かのメモは基本必要なし、なくて困ったことない。
そもそも録画時につけるファイル名設定を変更
EPGStationで指定して録画した場合のデフォルトについては、設定ファイルの編集で行う。
nano EPGStation/config/config.yml
recordedFormat:の後ろを編集することで、例えば
2021年05月21日20時15分00秒-発見!あおもり深世界「桜の城は最強の城」
といったファイル名で録画されるのを、
0521発見!あおもり深世界「桜の城は最強の城」 や
20210521-20-発見!あおもり深世界「桜の城は最強の城」
といったファイル名で録画されるようにできる。
ファイル名を変えて録画するのはEPGStation上でできるが、ファイル名指定には変数も使える。例えば、録画時のファイル名指定で「 _0655%DOW% 」と指定すれば、金曜日の録画では「 _0655金.ts 」というファイル名で録画される。
ファイル名の並び方
Windows上では、
<上> 記号(含全角) ⇔ 数字 ⇔ アルファベット(含全角) ⇔ カタカナ ⇔ ひらがな ⇔ 漢字 <下>
Android上では
<上> 記号(含全角) ⇔ 数字 ⇔ カタカナ ⇔ ひらがな ⇔ 漢字 ⇔ アルファベット(含全角) <下>
よって、上の方に表示したければ記号([アンダーバー]など)や数字を先頭にしたファイル名にする。アルファベットはWinとAndroidで順番が異なるのであまり勧めない。
新しい録画が上に来るように昇順にすると、[アンダーバー]が先頭のファイルが一番下に来る。上から順に定期録画、通常録画(新しい日付)、通常録画(古い日付)にしようとするなら、録[アンダーバー]***.ts、0919ある番組、0830古い番組といったようにするといいかも。
編集方法
録画したデータは、
〇(見てからor撮る予定がなかった場合はそのまま)捨てる
〇エンコードする
△Blu-ray/DVDに書き込む(今の時代これやりたい番組は少なそう)
△そのまま別のHDDに移す(容量食うのは注意、いくら今のHDDが大きいといっても多ければやはり)
△ネットワークドライブにアップする(同上)
×ネットにアップする(99.999%違法。著作権フリーのシーンのみならもしかしたら合法かもしれない。なおB-CAS不要のショップチャンネルアップも厳密に見ればたぶん違法)
各自ご自由に。↓は一つの管理方法の例。
録画フォルダ(置いとくのは2週間くらいまで
↓ ↓ ↓
↓ ↓ まだ見てなくてとりあえず見たいのは「見るフォルダ」
↓ ↓ ↓
↓ エンコ済みや視聴済み、見ないのは「消しておkフォルダ」
↓ 古くなったり残り容量減ってきたらまとめて消していく
↓
ものによっては移動せずに速攻で消すかも
消す優先度をつけるといいかもしれない。
なお、私個人の意見は、ファイルの保存やエンコードも一つの資産の消費だ。必要な処理は必要だが、可能ならば、保存する必要がないファイルは保存しない、エンコードするのもCPUやGPUの使用なので、可能ならエンコも減らす。つまり、見るファイルは見る、後々まで残すファイルはさっさとエンコする、画質を要求しないものは圧縮率を高くする、見る予定暇なし&配信等でもあるものは削除する、だ。
8.エンコードと再生
録画を行ったら、再生やエンコードは大概は行うはず。ラズパイをモニタやTVに映してその上で再生できなくもないが、PIのI/Oを使うことはお勧めできないので、鯖は鯖に徹してほしい。再生は大概はWindowsかAndroidあたりではないでしょうか。
エンコードするソフト
・handbrake 使いやすい点は評価できる。
ただし、CMカットはできない、たまにワンセグ側を拾う(他のツールでもある)、D&Dするときやエンコ準備のフェーズが遅すぎるという欠点あり。長所としては、字幕(事前にCaption2Ass_PCRなど使って抽出の必要あり)を入れられる、音声複数も維持できること(mkvで保存)で、録画がNHKのことが多い私としては助かる。もしかしたら今のスタンダードじゃないのかもしれないがね。
なお、使う際にDimensionsタブ(日本語UIでなんて書いてあるかは知らん)で自動的にcroppingされていないかを確認しておいた方がいいです。
・AviUtl フリーの中では最強の一角だが、エンコのためだけに導入するのはいろいろ面倒そう。普段から使いこなしているなら選択肢の一つになりそう。
・Avidemux CMカット、サイズ変更等の簡単な編集ができるし、各種形式のエンコードができる。字幕や副音声以外のエンコ需要は満たせそう。
その他のソフト
・tssplitter エンコしようとするとワンセグを読み込んでしまう場合はこれでHDのみ取り出す。TVTestなら普通にフルセグ見えれるが。サブチャンネルの取り出しも確かこれ?
・Caption2Ass_PCR 字幕も一緒に収めるときに必要。
handbrakeなどには字幕読み込む機能があるが、日本のTSファイルは特殊?らしく、字幕ファイルは別途抽出をしないと使えないとのこと。
方法→TS録画ファイルからCMカットされたソフトサブ字幕付きmp4動画作成メモ
なお、ファイルパスにスペースがあると失敗するというバグ?があるのでファイル名に注意(フォルダもだが、そもそもフォルダにスペースを入れること自体が割とあるまじき行為なので知らなかったら覚えておきましょう)。
サイズと画質
・地上波の放送は(1440x1080)mpeg2圧縮。古い近年主流のH264に比べると圧縮率は低いので保存したいファイルはエンコしておきたい。(将来性ないH265やエンコが大変なAV1はしばらく考えない)
ファイル形式は、基本的にはmp4。副音声(NHKのドキュメンタリーに特に多い印象)、字幕を保持してエンコする場合はMKV方式を使う。字幕は、日本のTSファイルについては対応したツール(上記)であらかじめ取り出しておく必要があることに注意(HandBrakeなどでは海外のTSにはできても日本のには非対応ということ)。未解決事項は、字幕にルビがあるケースではsrtに出力する際にルビが消えること。作品によっては重要なので、どうしよう?というところ。
番組数が多くなると容量も食うため画質を要求しない番組は割り切って画質を落としておきたいところか。
・1440x1080(1920x1080) 画質重視の場合。お気に入りのアニメや高精細3Dアニメなど?
・720pハーフHD(1280x720) 容量と画質のバランスは整っている。基本的にはこれを推奨。HandBrakeならveryfast720p。HDDレコーダーの5倍録画のような感じの画質です。HD化以前の古い時代の番組もこれが適する気がする。
・480p DVDより少しよい画質。内容が重要で、画質を重視しない長時間番組にお勧め。個人的にはドキュメンタリーなどはこれにしている。
ex.NHKの各種ドキュメンタリー、林先生や池上彰など各種長時間解説系、お笑い番組(推し以外)、など?
・360p DVD画質。HandBrakeではプリセットがないし基本これは使わない。
NHKのL字のサイズ:
およそ、左180上120くらい
エンコードはソフトウェア?ハードウェア?
ハードウェアエンコ対応ソフトならグラボ搭載していればできるし、CoreならグラボなくてもIntelQSVを使える。私がやってみた限りでは、ハードエンコは確かに早いものの同じ画質で比較すると明らかにサイズが大きい。
保存しておきたい番組:普通にソフトエンコ
見て消す番組:そもそもエンコしない
見る予定あるけどどうしても見る余裕がない:本当に見なきゃダメかを再検討する方が先だとは思うが、どうしてもなら録画したものをPiのエンコにかけるorWin上でまとめてエンコ(ソフトでもハードでもいい)
何らかの理由で、ファイルを外出先でしか見ない:Piで録画時に同時にハードエンコをかける(h264保存)するのが一つか。
ハードエンコが必要なシチュは正直思い浮かぶケースが少ない。。
再生環境(Windows環境)
VLC等でも可能だが、
鉄板はTVTest
vlcとかだとワンセグの方を拾ってしまうがtvtestはきちんとフルセグを拾ってくれます。一つ注意するのは(よく言われるが)録画用のTVTestと兼任させず、再生用TVTestを作っておくこと。まぁ詳細な解説までは必要ないと思うので、箇条書きしておきます。
・入手は適当にググってくれれば大丈夫
・32bit版でも64bit版でもOK.差は特にない。
・再生専用なので、有効にするプラグインはtvtplay(ファイル再生)とcaption(字幕)だけでOK.他を無効化したのちに、pluginsフォルダのtvcaptionmod2.ini,tvtpとtvtplay.ini,tvtp以外は不要ですね。TSプロセッサーもsoftcasも不要。
・tvtplay.iniを編集することで、飛ばす秒数を変えることも可能。30分飛ばすこともできる(2時間以上の番組で大体の傾向をまずチェックするとかいった用途に有効)
・余分な項目を非表示にすることですっきり、操作しやすくなる。EPGとか再生用では不要だし。必須ではないが個人的にはお勧め。
・最近のバージョンはMPEG2デコーダが標準搭載されている。powerdvdからごにょごにょとか今は不要。
・tvtplayを起動時に有効にするにはパラメーター"/tvtplay"が必要だが、ファイルをドロップすれば自動的に有効になってくれるはず。
・TVTestの欠点はコマ送りできないこと。VLCは可能(キーボードで行う、どのキーかは忘れた)
参考までに、私が使っている再生用TVTestのステータスバー。
画面サイズ、音量、音声トラックは必須で、その下にプラグインtvtplayはボタンの画像を編集して大きくしています。!
これを白黒ビットマップで保存し、tvtest.exeと同じフォルダにButton.bmpに上書きする。
再生環境(Android環境)
mpeg2(ts)とmp4が視聴できればいいだろうか。機能としては、シークがやりやすい、数秒進めるや戻るのができるとありがたい、さらに可能なら倍速再生も欲しいところ。ストリーム再生ができれば、リアルタイム視聴もできる。
○ MXPlayer(*ストリーム再生可能。verは1.55.3以下推奨(新しいバージョンは無駄に重くて価値がわからん!)なお旧バージョンを使うということなのでサイドローディングを使用することになる。Windowsのフリーウェアみたいなものと考えれば大した手間じゃないよね。)
○ KMPlayer
○ UPlayer
△ XPlayer:広告うざいか。
△ VLC:PCでは定番、広告なし。Android版ではなぜかTSファイルのシークが不可能なのでちょい使いづらいか。ストリーム再生専用にするのも手。
× ビデオプレイヤー:そもそもソフト名がカス(飼い犬にイヌって名前つけるようなもの)。強制的に縦画面になる点や広告がうざすぎなのも×
× HDビデオプレイヤー:MPEG2再生不可能
× karasawa:どうやって使うのだろうか
また、ファイラーについてだが、これは好みでいいと思われ。
・NASへ接続できるのは絶対条件
・毎回ログイン要求されるアプリは避けた方がいい
・動画再生時に全部ダウンロードしてから読もうとするアプリも用途的に却下。
・余談だが上にも書いたがリアタイの場合はIPTVアプリを使用する。TVTestみたいな万能ツールは無いため。
ファイルの保存方法
基本的にはファイルとしてNAS、HDDなどに置いておくのが普通かな?とは思います。タブレットやFireTV、もしかしたらHDDレコーダーとかでも再生できるでしょうし。
今私が悩んでいるのは、円盤への書き込み。無駄に圧縮率が低いDVD形式は却下として、どのようにBluray形式(BDMV/BDAV)にするか(書き込むメディアは普通はBlurayだがDVDでもいいらしい)。mp4ならフリーでも普通にできるっぽいが、副音声や字幕を含むMKVの場合はどうしたものか...?
9.システムバックアップ
何気に重要なことだったり。
バックアップ方法としては、一度ラズパイの電源を落として、SDカード全体をイメージバックアップする方法が一般的ではないかと思う。
(今後実際に行ったうえで書きます)
・USB Image Tool:一回試してみた。可能だが、速度が遅い...?
・Win32 Disk Imager:RAMドライブがあると動かないっぽいので個人的には却下
∟登大遊氏が手を入れた、Win32 Disk Imager Renewalは大丈夫である。こちらを推奨。
Linuxはddやdumpなどのイメージ保存コマンドはあるが、未使用領域をパスするものがあるのか私はちょっとわからない。また、ラズパイはブートデバイスをbiosで選ぶことは多分できないのでラズパイ上でバックアップリストアも選択肢から外れそう。
なので、私が考える一つの案、それはシステムパーティーションのサイズをあまり大きくしない(10,000MB)で、Windows上でaomeiなどのパーティションバックアップツールを使ってバックアップ/リストアを使うというもの。
そもそもバックアップする必要があるものとは?
・チャンネルやチューナーの設定(mirakurun)
・録画したファイルやsamba上に保存したファイル
・キーワードのルール(epgstation)→面倒でも手動でリストにした方が確実そう
それ以外は割とどうにかなるのではないでしょうか
EPGStationのバックアップリストアについて
公式の想定方法は公式に載っていますが、dockerの場合のスクリプトを公開してくださる方がいます。
...あのー、作ってくださるのはありがたいのですが中身が3行しかないなら中身も記述してくれたほうが、より何やっているかわかると思うのですが。↓配布しているスクリプトの中身(コードは原文のままでコメント付け足し)
#!/bin/bash
# backup epgstation v1
# docker psでepgstationのv1が出た場合。私の場合はこっちで出るな...
docker exec -i -t docker-mirakurun-epgstation_epgstation_1 npm run backup backup-data
docker cp docker-mirakurun-epgstation_epgstation_1:/app/backup-data ~/backup-epg/
# Linux環境ではgitフォルダは作られないと思うのでgitの部分を消せばいい、たぶん。
cp -r ~/git/docker-mirakurun-epgstation/epgstation/thumbnail ~/backup-epg/thumbnail
#!/bin/bash
# backup epgstation v2
# docker psでepgstation-v2で出た場合。どうインストールするとこうなるのかな?
docker exec -i -t epgstation-v2 npm run backup backup-data
docker cp epgstation-v2:/app/backup-data ~/backup-epg/
# Linux環境ではgitフォルダは作られないと思うのでgitの部分を消せばいい、たぶん。
cp -r ~/git/docker-mirakurun-epgstation/epgstation/thumbnail ~/backup-epg/thumbnail
#!/bin/bash
# restore epgstation v2
# v1の場合もこれでいいのか?変える必要あるかも?というかバックアップしたファイルを見れば何となくルールに登録した内容はわかるので手動で登録するというのも一つだとは思う。
docker cp ~/backup-epg/backup-data epgstation-v2:/app/
docker exec -i -t epgstation-v2 npm run restore backup-data
cp -r ~/backup-epg/thumbnail ~/git/docker-mirakurun-epgstation/epgstation
前編はこちら
後編(docker版)はこちら
後編(非docker版)はこちら
*. エンコード設定メモ
個人的なものですが、参考にしていただいてもOKです。
字幕データや副音声を入れたmkvファイルを作成
[Handbrakeなどのmkv作成対応ツールを使う] CMカットは原則できない。そして都合いいことにNHKの番組で該当が多い。番組タイトルに[字]などの説明文字がある。使い方としては、エンコする範囲を秒またはフレーム数で指定する。基本的に秒で良いが厳密に指定したい時はaviutlなどで何フレーム目か確認するとよい。
字幕や副音声なし
[Avidemux等カットとエンコが同時にできるツールを使う] CMカット等が行えるツールがお勧めか。
Avidemuxの場合は、映像フィルタ→swsResize
LockAspectRatioはOnのまま、
SourcePAR を NTSC720:480 DAR16:9、
DestinationPAR を NTSC720x480 DAR4:3 PAR8:9にして、
Roundto~16
解像度は各自の自由に。
フォーマットは動画x264、音声aacが無難か。コンテナはmp4で。
解像度や圧縮率はどうするか
まぁ基本的には↑に書いたとおりだが、ドキュメンタリーなど内容重視の場合は480pか432p、内容によっては360pでもよい。内容重視でも480にするのがためらう場合は576pなども。逆に高画質を求める場合や実写岸辺露伴みたいに文字を読みたい場合は1080pにするとよい。それ以外のバランス型なら720pでいいでしょう。
圧縮率は、handbrakeの場合は基本veryfastで問題ない。画質をよくしたい場合に緩和すればOK。Avidemuxの場合、デフォの画質がやや良い方(20)っぽいので、handbrakeとある程度合わせたい時は23~25くらいにしてもよいかも。
個人的なエンコの記録
バトルフィーバーJ:handbrake-veryfast480p-秒で範囲指定-字幕デフォ-mkv
どれみやナージャくらいのSD画質世代の作品も同様。
戦隊だとマジレンジャーまでがSDでボウケンジャーからHDだったか。
ライダーはディケイドくらいからHD?
プリキュアは..わからんが、HDになったのはハートキャッチくらいから?
カブトボーグ:構成-PSP swsresize_height480
SPYFamily、実写岸辺露伴など良い画質で見たい:1080p
NHK全般(字幕や副音声あり、画質はあまり問わない)handbrake-vf480p-フレーム範囲指定-字幕任意-mkv
ジョジョ各部(アニマックス等) aviutl等-720p-mp4x264aaclav
夫が寝た後に:Avidemuxで576p。480でもいいのだが字が少し見にくい可能性があると思い少し上げた。