もし Jetson シリーズを購入する場合は BUY_JETSON.md を参考にしてください。
NVIDIA Jetson シリーズでは JetPack 6.0.0 のみの利用を前提としています。
現在 Jetpack 6 で --hw-mjpeg-decoder が有効だと H.264 が送信できない問題があります。
Jetson 6 で H.264 を送信する場合は --hw-mjpeg-decoder=false を指定してください。
詳細については #355 をご確認ください。
https://github.com/shiguredo/momo/releases にて最新版のバイナリをダウンロードしてください。
momo-<version>_ubuntu-22.04_armv8_jetson.tar.gz- Jetson AGX Orin または Jetson NX Orin
- JetPack 6 の最新版に対応
$ tree
.
├── html
│ ├── p2p.html
│ └── webrtc.js
├── LICENSE
├── momo
└── NOTICE動かし方について、まずは USE_P2P.md をご確認ください。
ビデオデバイスの指定については LINUX_VIDEO_DEVICE.md をご確認ください。
--hw-mjpeg-decoder は ハードウェアによるビデオのリサイズ と USB カメラ用の場合 MJPEG をハードウェアデコードします。
Jetson シリーズではデフォルトで --hw-mjpeg-decoder=true です。 ハードウェアデコードに対応していないコーデックを利用したい場合は --hw-mjpeg-decoder=false を指定してください。
./momo --hw-mjpeg-decoder=true --no-audio-device p2p--fixed-resolution を外してみてください。4K の時には --fixed-resolution オプションを使うとレートが安定しない傾向があります。
一番多いのは暗い場所で利用しているパターンです。カメラが自動的に露光時間を伸ばすためフレームレートが下がります。部屋を明るくする。もしくはカメラの設定変更が可能な場合はフレームレート優先設定に変更してください。
IMX317 を搭載した推奨カメラ をご利用の場合
v4l2-ctl --set-ctrl=exposure_auto=1
を実行してカメラの設定を変更してください。 4K 30fps が出力可能な設定は下記のとおりです
$ v4l2-ctl --list-ctrls
brightness 0x00980900 (int) : min=-64 max=64 step=1 default=0 value=0
contrast 0x00980901 (int) : min=0 max=95 step=1 default=1 value=1
saturation 0x00980902 (int) : min=0 max=100 step=1 default=60 value=60
hue 0x00980903 (int) : min=-2000 max=2000 step=1 default=0 value=0
white_balance_temperature_auto 0x0098090c (bool) : default=1 value=1
gamma 0x00980910 (int) : min=64 max=300 step=1 default=100 value=100
gain 0x00980913 (int) : min=0 max=255 step=1 default=100 value=100
power_line_frequency 0x00980918 (menu) : min=0 max=2 default=1 value=1
white_balance_temperature 0x0098091a (int) : min=2800 max=6500 step=1 default=4600 value=4600 flags=inactive
sharpness 0x0098091b (int) : min=0 max=7 step=1 default=0 value=0
backlight_compensation 0x0098091c (int) : min=0 max=100 step=1 default=64 value=64
exposure_auto 0x009a0901 (menu) : min=0 max=3 default=3 value=1
exposure_absolute 0x009a0902 (int) : min=1 max=10000 step=1 default=156 value=156
error 5 getting ext_ctrl Pan (Absolute)
error 5 getting ext_ctrl Tilt (Absolute)
focus_absolute 0x009a090a (int) : min=0 max=1023 step=1 default=0 value=0 flags=inactive
focus_auto 0x009a090c (bool) : default=1 value=1
error 5 getting ext_ctrl Zoom, Absoluteここでは Jetson AGX Orin を使って 4K@30fps を実行する方法を記載します。
4K@30fps のコマンドを実行する前に準備が完了しているか事前に確認をします。
- Jetson AGX Orin で momo を使うためのセットアップが全て完了している
- 4K@30fps が可能なカメラがセットされている
- Sora/Sora Labo のアカウントの用意がある
ここでは利用申請することで法人などで無料で検証可能な Sora Labo を利用しています。
Sora Labo の利用申請や使用方法については Sora Labo のドキュメントをご確認ください。
コマンド例を以下に記載します。
$ ./momo --hw-mjpeg-decoder true --framerate 30 --resolution 4K --log-level 2 sora \
--signaling-urls \
wss://canary.sora-labo.shiguredo.app/signaling \
--channel-id shiguredo_0_sora \
--video true --audio true \
--video-codec-type VP8 --video-bit-rate 15000 \
--auto --role sendonly \
--metadata '{"access_token": "xyz"}'コマンド例の構成は以下のようになっています。
- ./momo ~ sora までは momo に対して行うパラメータになっています。
--hw-mjpeg-decoder trueは Hardware Acceleration を有効に設定しています--framerate 30は フレームレートを 30 に設定しています--resolution 4Kは解像度を 4K に設定しています--log-level 2は error と warning のログを出力するように設定していますsoraは Sora モードを利用するように設定しています
sora以降 2 行目からは Sora との接続のためのパラメータになっていますwss://canary.sora-labo.shiguredo.app/signalingはシグナリング URL の設定をしていますshiguredo_0_soraはチャネル ID を設定しています--video trueは Sora への映像送信を有効に設定しています--audio trueは Sora への音声送信を有効に設定しています--video-codec-type VP8はコーデックを VP8 に設定しています--video-bit-rate 15000はビデオビットレートを 1.5Mbps で設定しています--autoは Sora との自動接続を有効に設定しています--role sendonlyは送信時の役割を送信のみで設定しています--metadata '{"access_token": "xyz"}'は Sora Labo のアクセストークンをメタデータに設定しています
実行結果の確認は Chrome の chrome://webrtc-internals を利用します。
chrome://webrtc-internals を確認すると以下のように 4K(3840x2160) で 30 fps が出ていることが確認できます。
Sora Labo を利用している場合はリモート統計機能を利用することで確認することができます。
もう一度 4K@30 を出すためにやること を確認してみてください。

