公式実装 をベースに, より軽量に, 更に録画後エンコード機能をデフォルトで内蔵
Raw size
mirakurun 82.6MB -> 69MB
chinachu 641MB -> 473MB
ffmpeg
-based encoding (configurable)Docker Engine 1.10+
Docker Compose 1.6+
sudo sh -c "echo \"blacklist earth-pt3\" >> /etc/modprobe.d/blacklist.conf"
git clone https://github.com/m-tsudo/pt3.git
cd pt3
make
sudo make install
sudo $SHELL ./dkms.install
# sudo reboot
sudo systemctl stop pcscd.socket
sudo systemctl disable pcscd.socket
runtime/
で実行する
docker-compose up -d
docker-compose down
全てホストから設定する. 別環境で利用していた設定がある場合でも config.json
は本プロジェクト既定の設定があるため以下の手順で設定を行う.
runtime/docker-compose.yml
を調整する
mirakurun > devices
lsusb
等で特定する. 物理ポートを変更するとここの設定も変わるので注意)
mirakurun > devices
chinachu > volumes > recorded
chinachu > ports
chinachu > environment > CHINACHU_UID
chinachu > devices
chinachu > environment > VAAPI_ENABLED
chinachu > environment > VAAPI_DEVICE
* > restart
docker exec -it mirakurun mirakurun config tuners
docker exec mirakurun mirakurun restart
以下PT3の例
- name: PT3-S0
types:
- BS
- CS
command: recpt1 --device /dev/pt3video0 <channel> - -
decoder: arib-b25-stream-test
isDisabled: false
- name: PT3-S1
types:
- BS
- CS
command: recpt1 --device /dev/pt3video1 <channel> - -
decoder: arib-b25-stream-test
isDisabled: false
- name: PT3-T0
types:
- GR
command: recpt1 --device /dev/pt3video2 <channel> - -
decoder: arib-b25-stream-test
isDisabled: false
- name: PT3-T1
types:
- GR
command: recpt1 --device /dev/pt3video3 <channel> - -
decoder: arib-b25-stream-test
isDisabled: false
自動チャンネルスキャンを行う
docker exec chinachu curl -X PUT 'http://mirakurun:40772/api/config/channels/scan'
ただし地上波のみなので (v2.2.0現在), BS・CSを利用する場合は以下のコマンドから手動で設定する
docker exec -it mirakurun mirakurun config channels
適宜WebUI (http://localhost:20772) から行う
*.m2ts
から 変更しない こと. デフォルトでは自動エンコード後に *.mp4
に置き換えられる.uid
, gid
, mirakurunPath
, recordedDir
, vaapiEnabled
, vaapiDevice
, storageLowSpaceCommand
, recordedCommand
は 変更しない こと
runtime/docker-compose.yml
内のデバイスと環境変数の項目recordedDir
は /usr/local/chinachu/recorded
に対応するホスト側マウントパスstorageLowSpaceCommand
は runtime/chinachu/storage_low_space_command
を, recordedCommand
は runtime/chinachu/recorded_command
を直接編集デフォルトでは録画終了時に v: libx264
, a: aac
, preset: veryfast
, vf: yadif
, tune: animation (if catecory is 'anime') or film (otherwise)
でエンコードを行い, 元ファイルを recorded/dump
に退避させつつ置き換える. 必要に応じて runtime/chinachu/recorded_command
で設定する.
一通り初期設定が完了したらコンテナを再起動する
docker-compose down && docker-compose up -d
再起動後に全ての設定が反映され, そのまま録画を行うことで自動エンコードも実行される. ストリーミング再生時には MP4 > 無変換
を選択することで, 自動エンコードを前提としたCPU負荷の少ないストリーミングが可能 (独自実装).
設定ファイル (chinachuの rules.json
, data/*.json
) を runtime/
にコピーする. rules.json
は runtime/conf
配下に置くこと. config.json
は本プロジェクト独自の設定があるため, 単純なコピーはせずに初回起動時に自動生成されたものをベースに手動で設定する必要がある.
config.json
と rules.json
を runtime/conf
下に移動docker-compose.yml
内の設定項目も一部変化しているruntime/
下に永続化される$CHINACHU_UID
に変更される. 2回目以降の起動時に別のUIDにすることも可能chinachu updater
は利用できない)runtime/recorded/dump
下に蓄積される. デフォルトでは storageLowSpaceCommand
によって古くなると削除され, storageLowSpaceAction
の管理からは外れているSee Issues
本プロジェクトは Chinachu/docker-mirakurun-chinachu を元に作られています