2022 Sep. 23.
2021 Nov. 21.
2021 May 15.
2021 Apr. 18.
2021 Mar. 30.
2021 Feb. 14.
2021 Jan. 01.
2020 Dec. 27.
Mirakurunとは
(mirakurun_htmlより)
チューナーをネットワーク経由で開放し、rivarunはMirakurunのapi経由でチューナーを利用することができる。
これによりMirakurunサーバは放送波を返すだけに単機能化され、クライアント側のrivarunで放送波をデコードするみたいなことが可能。
チューナーサーバと録画サーバを分離することができる。
dvbブロックデバイスで動くTVチューナーカードPT2が装着されたPCにTV受信サーバー mirakurun 3.0 docker版をインストール
Linux PCにPT2を取り付けると自動的にブロック型デバイスとして次のデバイスが用意されるので、確認する。
$ ls /dev/dvb/
/dev/dvb/adapter0/ ・・・衛星放送用
/dev/dvb/adapter1/ ・・・地上デジタル用
/dev/dvb/adapter2/ ・・・衛星放送用
/dev/dvb/adapter3/ ・・・地上デジタル用
B-CASカードを挿入したカードリーダーをPCに接続しておく。
(カードリーダーはSCR3310-NTT Comを利用)
Dockerを使うMirakurun 3系をインストール
参考元 Ubuntu Server20.04にMirakurun+EPGStationで録画サーバを構築する | AAbrain
- Mirakurun稼働用に、tvとか任意の名前のユーザー(tvとした)をシステムに追加し、videoグループに所属させる。sudoしたいなら、Ubuntuならsudoグループに、Manjaro Linuxならwheelグループに所属させる
(Ubuntu 20.04 ) # useradd -d /home/TvUserDir -m -G video,sudo -s /bin/bash -u IDnumber -U tv (Manjaro Linux) # useradd -d /home/TvUserDir -m -G video,wheel -s /bin/bash -u IDnumber -U tv # passwd tv # reboot
- PCを再起動し、そのユーザー(tv)でシステムにログインする。
「githubにssh認証可能」にする - rokkonet
- 録画サーバーのIPアドレスは固定IPにしておいた方が、クライアントからのアクセスに使いやすい
- pcscd が存在する場合は削除しておく。ICカード読み取り機能はmirakurunに含まれているのでインストール不要
- b25デコードツールはmirakurunに含まれているのでインストール不要
b25コマンドはmirakurunディレクトリに配置される
- DVB用周波数設定はmirakurunが自動設定するので https://github.com/Chinachu/dvbconf-for-isdb.git からのdvbv5_channels_isdbt.conf、dvbv5_channels_isdbs.confのダウンロードは不要
- Ubuntuでは、dvb-tools(TV受信コマンドdvbv5-zap)をインストールしておく
$ sudo apt install dvb-tools
- Manjaro Linuxでは、dvbv5-zapはv4l-utilsに含まれる。
- Ubuntu Server20.04にMirakurun+EPGStationで録画サーバを構築する | AAbrain] にしたがって(下記の手順で)Docker、Docker Composeをインストールする。
(ubuntu)
(Dockerインストール)
$ su - tv $ sudo apt update $ sudo apt install \ apt-transport-https \ ca-certificates \ curl \ gnupg-agent \ software-properties-common $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - $ sudo apt-key fingerprint 0EBFCD88 $ sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable" $ sudo apt update $ sudo apt install docker-ce docker-ce-cli containerd.io
(Docker Composeインストール)
$ su - tv $ sudo curl -L "https://github.com/docker/compose/releases/download/1.27.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose $ sudo chmod +x /usr/local/bin/docker-compose $ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose ## enable docker command from user $ sudo usermod -aG docker $USER
(Manjaro Linux)
(Dockerパッケージ、Docker Composeパッケージインストール)
$ sudo pacman -Syu (Dockerパッケージ、Docker Composeパッケージをインストールする) $ sudo pacman -S docker docker-compose ## enable docker command from user $ sudo usermod -aG docker $USER ## mirakurunには関係ないが、manjaro/arch linuxではvlcビデオプレーヤーでのts動画ファイル再生にaribb24パッケージを要するのでインストールしておく ## 参考 https://rasumus.hatenablog.com/entry/2021/11/21/021018?_ga=2.17098170.2046190341.1637411569-1375644875.1637411569 $ sudo pacman -Syu $ sudo pacman -S aribb24
(以下は、Ubuntu, Manjaro 共通)
- 上記までのDocker、Docker Composeインストールが終了したら、ログアウト/再起動し、ユーザーのdockerグループへの所属を反映する
$ sudo reboot
- Ubuntu Server20.04にMirakurun+EPGStationで録画サーバを構築する | AAbrain にしたがって(下記の手順で)、mirakurun 3をインストールする
ユーザーtvがdockerグループとvideoグループに所属していることを確認する
$ cat /etc/group | grep tv
$ su - tv $ cd ~/ $ git clone git@github.com:Chinachu/Mirakurun.git $ sudo systemctl status docker.service (docker.serviceが稼働していなければ) $ sudo systemctl enable docker.service $ sudo systemctl start docker.service $ cd ~/Mirakurun/docker $ docker-compose pull "Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?"となったらdocker.serviceが稼働していない
- mirakurun初回セットアップでtuners.ymlを自動生成させるので、~/Mirakurun/config/tuners.ymlを別ファイル名に変更する
$ mv ~/Mirakurun/config/tuners.yml ~/Mirakurun/config/tuners.yml.original
- 40772ポートをLAN内に開放
$ sudo ufw enable $ sudo ufw allow proto tcp from YOUR.NETWORK.ADDRESS.0/24 to any port 40772 $ sudo ufw allow proto udp from YOUR.NETWORK.ADDRESS.0/24 to any port 40772 $ sudo ufw reload
- OpenVPNクライアントからのアクセス許可
$ sudo ufw enable
$ sudo ufw allow proto tcp from 10.8.0.0/24 to any port 40772
$ sudo ufw allow proto udp from 10.8.0.0/24 to any port 40772
$ sudo ufw reload
- mirakurun初回セットアップ
$ sudo mkdir -p /opt/mirakurun/run $ sudo mkdir /opt/mirakurun/opt $ sudo mkdir /opt/mirakurun/config $ sudo mkdir /opt/mirakurun/data $ sudo chmod 755 /opt/mirakurun /opt/mirakurun/* $ cd ~/Mirakurun/docker $ docker-compose run --rm -e SETUP=true mirakurun ## /opt/mirakurun/config/tuners.ymlが生成される ## また、生成されたchannels.ymlは不完全なものとなっているが、あとでチャンネルスキャンを行うのでそのままにしておく。
- 生成されたtuners.yml
- name: adapter0 types: - BS - CS dvbDevicePath: /dev/dvb/adapter0/dvr0 decoder: arib-b25-stream-test command: >- dvbv5-zap -a 0 -c ./config/dvbconf-for-isdb/conf/dvbv5_channels_isdbs.conf -r -P <channel> - name: adapter1 types: - GR dvbDevicePath: /dev/dvb/adapter1/dvr0 decoder: arib-b25-stream-test command: >- dvbv5-zap -a 1 -c ./config/dvbconf-for-isdb/conf/dvbv5_channels_isdbt.conf -r -P <channel> - name: adapter2 types: - BS - CS dvbDevicePath: /dev/dvb/adapter2/dvr0 decoder: arib-b25-stream-test command: >- dvbv5-zap -a 2 -c ./config/dvbconf-for-isdb/conf/dvbv5_channels_isdbs.conf -r -P <channel> - name: adapter3 types: - GR dvbDevicePath: /dev/dvb/adapter3/dvr0 decoder: arib-b25-stream-test command: >- dvbv5-zap -a 3 -c ./config/dvbconf-for-isdb/conf/dvbv5_channels_isdbt.conf -r -P <channel>
・mirakurun起動
$ cd ~/Mirakurun/docker $ docker-compose up -d ## http://localhost:40772/ にアクセスして確認する ## 正常にインストールされていれば、次回からPC起動すればログインせずとも自動起動される
- ログの確認
$ cd ~/Mirakurun/docker $ docker-compose logs # その時点のログを標準出力に $ docker-compose logs -f # 標準出力にリアルタイムに出力 Ctrl+z ## "docker-compose logs -f"を停止する。 $ pnum=$(ps ax | grep 'docker-compose logs -f' | grep -v 'grep' | awk '{print $1}') $ kill -9 $pnum
- チャンネルスキャン
$ su - tv $ cd ~/ $ curl -X PUT "http://localhost:40772/api/config/channels/scan"
スキャンが終わったらmirakurunを再起動して設定を反映する。
$ cd ~/Mirakurun/docker/ $ docker-compose down $ docker-compose up -d
- チャンネル設定状況確認
http://localhost:40772/api/channels にアクセスする
- /opt/mirakurun/config/channels.ymlを自分に合ったチャンネル設定に修正する
各チャンネルのServiceIDの区分は自動的に生成される/usr/local/mirakurun/data/services.jsonに保存される。
2022 Feb. 09. ubuntu 20.04 各チャンネルのServiceIDの区分は自動的に生成される/opt/mirakurun/data/services.jsonに保存された。
( /usr/local/mirakurun/* → /opt/mirakurun/* Mirakurun/CHANGELOG.md at master · Chinachu/Mirakurun · GitHub より)
(my channels.yml)
- name: NHK総合 type: GR channel: '22' isDisabled: false - name: NHKEテレ type: GR channel: '13' isDisabled: false - name: サンテレビ type: GR channel: '26' isDisabled: false - name: MBS毎日放送 type: GR channel: '16' isDisabled: false - name: ABCテレビ type: GR channel: '15' isDisabled: false - name: テレビ大阪 type: GR channel: '18' isDisabled: false - name: 関西テレビ type: GR channel: '17' isDisabled: false - name: 読売テレビ type: GR channel: '14' isDisabled: false - name: J:COMテレビ type: GR channel: '19' isDisabled: false - name: J:COMチャンネル type: GR channel: '24' isDisabled: false - name: NHK BS1 type: BS channel: BS15_0 serviceId: 101 - name: NHK BS1 (Sub) type: BS channel: BS15_0 serviceId: 102 - name: NHKBSプレミアム type: BS channel: BS03_1 serviceId: 103 - name: NHKBSプレミアム type: BS channel: BS03_1 serviceId: 104 - name: BS日テレ type: BS channel: BS13_0 serviceId: 141 - name: BS日テレ type: BS channel: BS13_0 serviceId: 142 - name: BS朝日1 type: BS channel: BS01_0 serviceId: 151 - name: BS朝日2 type: BS channel: BS01_0 serviceId: 152 - name: BS-TBS type: BS channel: BS01_1 serviceId: 161 - name: BSテレ東 type: BS channel: BS01_2 serviceId: 171 - name: BSフジ・181 type: BS channel: BS13_1 serviceId: 181 - name: WOWOWプライム type: BS channel: BS03_0 serviceId: 191 isDisabled: true - name: WOWOWライブ type: BS channel: BS05_0 serviceId: 192 isDisabled: true - name: WOWOWシネマ type: BS channel: BS05_1 serviceId: 193 isDisabled: true - name: BS11イレブン type: BS channel: BS09_0 serviceId: 211 - name: TwelV type: BS channel: BS09_2 serviceId: 222 - name: BSスカパー! type: BS channel: BS11_1 serviceId: 241 isDisabled: true - name: 放送大学231ch type: BS channel: BS11_2 serviceId: 231 - name: 放送大学232ch type: BS channel: BS11_2 serviceId: 232 - name: テレ朝チャンネル1 type: CS channel: CS2 serviceId: 298 isDisabled: true - name: テレ朝チャンネル2 type: CS channel: CS2 serviceId: 299 isDisabled: true - name: AT-X type: CS channel: CS16 serviceId: 333 isDisabled: true - name: 日テレプラス type: CS channel: CS24 serviceId: 300 isDisabled: true - name: AT-X HD type: SKY channel: ATXHD serviceId: 33435 satellite: JCSAT3A isDisabled: true - name: AXN HD type: SKY channel: AXNHD serviceId: 33418 satellite: JCSAT4A isDisabled: true - name: BS SPTV type: SKY channel: CH585 serviceId: 33353 satellite: JCSAT3A isDisabled: true
- mirakurun再起動(設定変更反映)
$ cd ~/Mirakurun/docker/ $ docker-compose down $ docker-compose up -d
- mirakurun設定ファイルは /opt/mirakurun/config に置かれる。
- EPG番組情報取得間隔設定
/opt/mirakurun/config/server.ymlに記述する。
数値の単位はミリ秒。
https://yabumi.cc/api/images/15972f6148a46d9d4265933b.pdf を参照方。
programGCInterval:イベント情報ガベージコレクション間隔。初期値15分で随時最適値に更新される
epgGatheringInterval:EPG 採集間隔。初期値15分で随時最適値に更新される
epgRetrievalTime:EPG 最大取得時間。初期値10分で随時最適値に更新される
(/opt/mirakurun/config/server.yml) programGCInterval: 86400000 # イベント情報ガベージコレクション間隔を24時間に epgGatheringInterval: 86400000 # EPGを更新した後の休止時間を24時間に
/opt/mirakurun/config/server.ymlの編集後、設定を反映する。
docker-composeコマンドによる設定反映をせずにPCの再起動をしても反映されない。
$ cd ~/Mirakurun/docker/ $ docker-compose down $ docker-compose up -d
・コマンドライン録画ツールrivarun
(インストール)
(npm(Node Package Manager)をインストール) (Ubuntu) $ sudo apt install npm (Manjaro/Arch) npmパッケージをインストールする (rivarunをインストール) $ sudo npm install rivarun -g
(録画)
$ rivarun [--b25] [--mirakurun host:port] [--priority priority] [--sid SID] [--ch type/channel] rectime destfile (2022 Sep. 23) rivarunからmirakurunに、unixドメイン・ソケット及びlocalhost:40772で接続できず、IP_ADDRESS:40772でなら接続できた。 例 $ rivarun --mirakurun localhost:40772 --b25 --sid 231 --ch BS/BS11_2 15 bs11_2-231.ts $ rivarun --mirakurun localhost:40772 --b25 --ch BS/BS11_2 15 bs11_2.ts $ rivarun --mirakurun localhost:40772 --b25 --ch GR/22 15 22.ts $ rivarun --mirakurun localhost:40772 --b25 --sid 43008 --ch GR/22 15 22.ts
vlcでts動画ファイルを再生するときは aribb24をインストールしておく
arch系manjaro linux VLCでtsファイルを再生できない時の対処 - rokkonet
- チャンネルリスト出力
$ rivarun --list --mirakurun localhost:40772
- ストリーミング視聴
動画再生ソフトVLCなら「メディア->ネットワークストリームを開く」に次の書式を指定する
(URL内にチャンネルだけを指定する場合)
http://MIRAKURUN.SERVER.IP.ADDRESS:40772/api/channels/GR/ChannelNum/stream
(URL内にサービスIDまで指定する場合)
http://MIRAKURUN.SERVER.IP.ADDRESS:40772/api/channels/GR/ChannelNum/sevices/ServiceID/stream
サービスIDは http://MIRAKURUN.SERVER.IP.ADDRESS:40772/api/channels/ にアクセスすれば表示される
例
http://192.168.1.2:40772/api/channels/GR/22/stream
http://192.168.1.2:40772/api/channels/GR/22/services/43009/stream
- vlcでのTV視聴に便利なチャンネルリストファイル
mirakurun を使って VLC でテレビを視聴する。 | 妄想日記 by 妄想エンジン より。
下記内容の tv_channel_list.m3u8 をvlcから開くことができる任意のディレクトリに作成する。
チャンネルを示すurl内の services/xxxx/stream のxxxxには http://localhost:40772/api/channels に表示される各チャンネルのserviceIdを記述する。
tv_channel_list.m3u8ファイルに実行属性を付与する。
vlcで「メディア->ファイルを開く」から下記のtv_list.m3u8を開き、「表示->プレイリスト」から番組を選択する。
tv_channel_list.m3u8
#EXTM3U #EXTVLCOPT:network-caching=1000 #EXTINF:-1,地上波 - NHK総合 http://localhost:40772/api/channels/GR/22/services/43008/stream/ #EXTINF:-1,地上波 - NHK総合2 http://localhost:40772/api/channels/GR/22/services/43009/stream/ #EXTINF:-1,地上波 - NHK総合携帯神戸 http://localhost:40772/api/channels/GR/22/services/43392/stream/ #EXTINF:-1,地上波 - NHK Eテレ http://localhost:40772/api/channels/GR/13/services/2056/stream/ #EXTINF:-1,地上波 - NHK Eテレ2 http://localhost:40772/api/channels/GR/13/services/2057/stream/ #EXTINF:-1,地上波 - NHK Eテレ3 http://localhost:40772/api/channels/GR/13/services/2058/stream/ #EXTINF:-1,地上波 - NHK Eテレ携帯 http://localhost:40772/api/channels/GR/13/services/2440/stream/ #EXTINF:-1,地上波 - サンテレビ http://localhost:40772/api/channels/GR/26/services/43056/stream/ #EXTINF:-1,地上波 - サンテレビ2 http://localhost:40772/api/channels/GR/26/services/43057/stream/ #EXTINF:-1,地上波 - サンテレビ携帯 http://localhost:40772/api/channels/GR/26/services/43440/stream/ #EXTINF:-1,地上波 - MBS毎日放送 http://localhost:40772/api/channels/GR/16/services/2064/stream/ #EXTINF:-1,地上波 - MBS毎日放送2 http://localhost:40772/api/channels/GR/16/services/2065/stream/ #EXTINF:-1,地上波 - MBS毎日放送3 http://localhost:40772/api/channels/GR/16/services/2066/stream/ #EXTINF:-1,地上波 - MBS毎日放送携帯 http://localhost:40772/api/channels/GR/16/services/2448/stream/ #EXTINF:-1,地上波 - ABCテレビ http://localhost:40772/api/channels/GR/15/services/2072/stream/ #EXTINF:-1,地上波 - ABCテレビ2 http://localhost:40772/api/channels/GR/15/services/2073/stream/ #EXTINF:-1,地上波 - ABCテレビ3 http://localhost:40772/api/channels/GR/15/services/2074/stream/ #EXTINF:-1,地上波 - ABCテレビ携帯 http://localhost:40772/api/channels/GR/15/services/2456/stream/ #EXTINF:-1,地上波 - テレビ大阪 http://localhost:40772/api/channels/GR/18/services/41008/stream/ #EXTINF:-1,地上波 - テレビ大阪2 http://localhost:40772/api/channels/GR/18/services/41009/stream/ #EXTINF:-1,地上波 - テレビ大阪3 http://localhost:40772/api/channels/GR/18/services/41010/stream/ #EXTINF:-1,地上波 - テレビ大阪携帯 http://localhost:40772/api/channels/GR/18/services/41392/stream/ #EXTINF:-1,地上波 - 関西テレビ http://localhost:40772/api/channels/GR/17/services/2080/stream/ #EXTINF:-1,地上波 - 関西テレビ2 http://localhost:40772/api/channels/GR/17/services/2081/stream/ #EXTINF:-1,地上波 - 関西テレビ3 http://localhost:40772/api/channels/GR/17/services/2082/stream/ #EXTINF:-1,地上波 - 関西テレビ携帯 http://localhost:40772/api/channels/GR/17/services/2464/stream/ #EXTINF:-1,地上波 - 読売テレビ http://localhost:40772/api/channels/GR/14/services/2088/stream/ #EXTINF:-1,地上波 - 読売テレビ2 http://localhost:40772/api/channels/GR/14/services/2089/stream/ #EXTINF:-1,地上波 - 読売テレビ3 http://localhost:40772/api/channels/GR/14/services/2090/stream/ #EXTINF:-1,地上波 - 読売テレビ携帯 http://localhost:40772/api/channels/GR/14/services/2472/stream/ #EXTINF:-1,地上波 - J:COMテレビ http://localhost:40772/api/channels/GR/19/services/41064/stream/ #EXTINF:-1,地上波 - J:COMテレビ2 http://localhost:40772/api/channels/GR/19/services/41065/stream/ #EXTINF:-1,地上波 - J:COMチャンネル http://localhost:40772/api/channels/GR/24/services/43128/stream/ #EXTINF:-1,地上波 - J:COMチャンネル2 http://localhost:40772/api/channels/GR/24/services/43129/stream/ #EXTINF:-1,地上波 - J:COMチャンネル3 http://localhost:40772/api/channels/GR/24/services/43130/stream/ #EXTINF:-1,BS - NHK BS http://localhost:40772/api/channels/BS/BS15_0/services/101/stream #EXTINF:-1,BS - NHK BS102 http://localhost:40772/api/channels/BS/BS15_0/services/102/stream #EXTINF:-1,BS - NHK BSプレミアム http://localhost:40772/api/channels/BS/BS03_1/services/103/stream #EXTINF:-1,BS - NHK BSプレミアム2 http://localhost:40772/api/channels/BS/BS03_1/services/104/stream #EXTINF:-1,BS - BS日テレ http://localhost:40772/api/channels/BS/BS13_0/services/141/stream #EXTINF:-1,BS - BS日テレ2 http://localhost:40772/api/channels/BS/BS13_0/services/142/stream #EXTINF:-1,BS - BS朝日 http://localhost:40772/api/channels/BS/BS01_0/services/151/stream #EXTINF:-1,BS - BS朝日2 http://localhost:40772/api/channels/BS/BS01_0/services/152/stream #EXTINF:-1,BS - BS-TBS http://localhost:40772/api/channels/BS/BS01_1/services/161/stream #EXTINF:-1,BS - BSテレ東 http://localhost:40772/api/channels/BS/BS01_2/services/171/stream #EXTINF:-1,BS - BSフジ http://localhost:40772/api/channels/BS/BS13_1/services/181/stream #EXTINF:-1,BS - BSイレブン http://localhost:40772/api/channels/BS/BS09_0/services/211/stream #EXTINF:-1,BS - BSトゥエルビ http://localhost:40772/api/channels/BS/BS09_2/services/222/stream #EXTINF:-1,BS - 放送大学ex http://localhost:40772/api/channels/BS/BS11_2/services/231/stream #EXTINF:-1,BS - 放送大学on http://localhost:40772/api/channels/BS/BS11_2/services/232/stream
- /usr/local/mirakurun/opt/node_modules/arib-b25-stream-test/bin/b25 が配置される
コマンドラインでb25を起動すると
error - failed on B_CAS_CARD::init() : code=-3
となってしまう。
録画webクライアントEPGStationインストール
非Docker版EPGStation + 非Docker版MySQLを「Ubuntu20.04 + PT2 + Docker版Mirakurun」にインストール - rokkonet に記述した。
録画webクライアントchinachuインストール
TV録画システムchinachuをDocker版mirakurunシステムにインストール - rokkonet に記述した。
・dvb-toolsインストールの次に、DVB用周波数設定をインストールする(Mirakurun3系では不要)
参考元 https://qiita.com/tsugulin/items/6faf135946b598b17f48
$ sudo apt install git $ cd /usr/local ※設定ファイルを/usr/local/以下に展開 $ sudo git clone https://github.com/Chinachu/dvbconf-for-isdb.git $ ls /usr/local/dvbconf-for-isdb/conf/ ## dvbv5_channels_isdbs.conf dvbv5_channels_isdbt.confファイルの存在を確認 ## dvbv5_channels_isdbt.conf: 地上波周波数ファイル ## dvbv5_channels_isdbs.conf: 衛星放送周波数ファイル
※地上波受信確認(b25エンコードされたままのデータを受信できる)
$ dvbv5-zap -a 1 -c /usr/local/dvbconf-for-isdb/conf/dvbv5_channels_isdbt.conf -r -P 22 -o 22.ts -a 1: 入力アダプタ -c FILE: 周波数設定ファイル -r: set up /dev/dvb/adapterX/dvr0 for TS recording
※衛星放送波受信確認(b25エンコードされたままのデータを受信できる)
$ dvbv5-zap -a 0 -c /usr/local/dvbconf-for-isdb/conf/dvbv5_channels_isdbs.conf -r -P BS15_0 -o BS15_0.ts
recdvdをインストール(Mirakurun3系では不要、dvbv5-zapが使われる)
参考元 pt2 recdvb mirakurun EPGstation | asuyuki-26のブログ
libarib25をインストールしておいてから、recdvdをインストールする(Mirakurun3系では不要、pcscd、arib-b25-stream-testがインストールされる)