amaya382 / docker-mirakurun-chinachu-encoder

:tv: All-in-One Recording and Encoding System on Docker
https://hub.docker.com/r/amaya382/chinachu/
Apache License 2.0
14 stars 0 forks source link
chinachu docker encoding ffmpeg mirakurun

docker-mirakurun-chinachu-encoder

公式実装 をベースに, より軽量に, 更に録画後エンコード機能をデフォルトで内蔵

Raw size

mirakurun 82.6MB -> 69MB
chinachu 641MB -> 473MB

Contents

Mirakurun

Chinachu

Encoder

Test Environment

Prerequisites (ホスト)

Usage

起動/停止

runtime/ で実行する

docker-compose up -d
docker-compose down

初期設定

全てホストから設定する. 別環境で利用していた設定がある場合でも config.json は本プロジェクト既定の設定があるため以下の手順で設定を行う.

1. コンテナ設定

runtime/docker-compose.yml を調整する

2. チューナ設定

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

3. チャンネル設定

自動チャンネルスキャンを行う

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

4. chinachu設定

適宜WebUI (http://localhost:20772) から行う

5. エンコード設定

デフォルトでは録画終了時に v: libx264, a: aac, preset: veryfast, vf: yadif, tune: animation (if catecory is 'anime') or film (otherwise) でエンコードを行い, 元ファイルを recorded/dump に退避させつつ置き換える. 必要に応じて runtime/chinachu/recorded_command で設定する.

6. 再起動

一通り初期設定が完了したらコンテナを再起動する

docker-compose down && docker-compose up -d

再起動後に全ての設定が反映され, そのまま録画を行うことで自動エンコードも実行される. ストリーミング再生時には MP4 > 無変換 を選択することで, 自動エンコードを前提としたCPU負荷の少ないストリーミングが可能 (独自実装).

Migration

非Docker環境からの移行

設定ファイル (chinachuの rules.json, data/*.json) を runtime/ にコピーする. rules.jsonruntime/conf 配下に置くこと. config.json は本プロジェクト独自の設定があるため, 単純なコピーはせずに初回起動時に自動生成されたものをベースに手動で設定する必要がある.

本プロジェクト内でのバージョンアップ移行

Others

Bugs / Future Works

See Issues

Acknowledgements

本プロジェクトは Chinachu/docker-mirakurun-chinachu を元に作られています