chinachu @ docker-mirakurun-chinachu-encoder
2.0K
公式実装 をベースに, より軽量に, 更に録画後エンコード機能をデフォルトで内蔵
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 > deviceslsusb 等で特定する. 物理ポートを変更するとここの設定も変わるので注意)
mirakurun > deviceschinachu > volumes > recordedchinachu > portschinachu > environment > CHINACHU_UIDchinachu > deviceschinachu > environment > VAAPI_ENABLEDchinachu > environment > VAAPI_DEVICE* > restartdocker 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 を元に作られています
Content type
Image
Digest
Size
153.1 MB
Last updated
over 6 years ago
docker pull amaya382/chinachu