WebRTC SFU の課題である録画ファイルの合成を簡単に実現する Hisui をリリースしました。
「なぜ開発しているのか」は別にまとめてあるのでどうぞ。
Hisui 2020.1 はとにかくシンプルに、最低限の機能を提供するというのを目的にリリースを行いました。
- インプットもアウトプットも WebM に統一する
- 映像コーデックは VP8/VP9 に統一する
- 音声コーデックは Opus に統一する
- 1 バイナリで利用可能にする
- Docker 経由で利用可能にする
- Ubuntu 20.04 固定する (Docker 経由なので気にする必要はない)
H.264 関連はすべてライセンスの扱いが存在するため今回は省きました。今後は対応していく予定です。MP4 対応は次のリリースで対応してく予定です。
合成後の解像度は 320x240 に合わせています。今後は細かく指定可能にしていく予定です。
録画された WebM ファイルと recording.report で出力されるファイルを同じフォルダに置いて実行すればあとは処理が走ります。
まず動くものをということでリリースしました。Discord にてフィードバックをお待ちしております。
ヘルプ
こんな感じのヘルプです。
$ docker run ghcr.io/shiguredo/hisui:2020.1 hisui --help
hisui
Usage: /usr/local/bin/hisui [OPTIONS]Options:
-h,--help Print this help message and exit
-f,--in-metadata-file Metadata filename (REQUIED)
--out-video-codec Video codec (VP8/VP9) default: VP9
--out-video-frame-rate Video frame rate (INTEGER/RATIONAL) default: 25)
--out-webm-file Output filename
--max-columns Max columns (POSITIVE INTEGER) default: 3
--libvpx-cq-level libvpx Constrained Quality level (NON NAGATIVE INTEGER) default: 10
--libvpx-min-q libvpx minimum (best) quantizer (NON NEGATIVE INTEGER) default: 3
--libvpx-max-q libvpx maximum (worst) quantizer (NON NEGATIVE INTEGER) default: 40
--verbose Verbose mode
--show-progress-bar Toggle to show progress bar. default: true