2022-09-08 2022-09-08

audio image

こんにちは。Picam360コミュニティのGAKUです。

今回は新機能のお知らせです。実はPicam360ソフトウェアは音声ストリーミングに対応していませんでした。Picam360のリアルタイムストリーミングは重機やドローンといった作業マシンの遠隔操作に活用されているユーザーが多く、利用シーンとして音声が必要ないことが多かったので、開発の優先度を下げていました。しかし最近、持ち運べないような大きな商品を設置してある場所から遠く離れた展示会場にVRでつないでリアルタイムにお客様にみてもらいたい、そういった使い方はできないかというご相談がありました。商品のある遠隔地には商品を解説する担当者の方がいて、音声が必要ということになり、ついに音声に対応したのでした。

ということで、新機能は音声になります。


用意するもの

音声機能はUSBマイクまたはBluetoothマイクをサポートします。また、PICAM360-4KHDRは実はマイクを搭載しています。マイクが搭載されているモデルをお持ちの場合は、オンボードのマイクが利用できます。

microphones

ソフトウェアバージョンアップ

PserverとViewerアプリをバージョンアップします。それぞれのソフトウェアのバージョンは<動作確認済み環境>をご確認ください。

node-pserverをバージョンアップします@ Jetson Nano

$ npm -g uninstall node-pserver # 旧バージョンをアンインストール
$ npm -g install node-pserver@VERIFIED_VERSION # インストールする。@VERIFIED_VERSIONは@v0.1.1のように動作確認済バージョンを指定。

Pviewerをバージョンアップします@ビューワーデバイス。PviewerはiOS, Android, Mac等それぞれに対応したアプリがありますので、各プラットフォームのアプリアップデート手順に従ってください。ここでは参考までにMacでの手順を記載します。

$ npm -g uninstall node-pviewer # 旧バージョンをアンインストール
$ npm -g install node-pviewer@VERIFIED_VERSION # インストールする。@VERIFIED_VERSIONは@v0.1.1のように動作確認済バージョンを指定。

設定

マイクをJetson Nanoに接続します。

通常通りPserverを起動します。するとPserverのコンソールログに認識しているマイクのデバイス名が表示されるのでコピーしておきます。

audio device name screen

pserverのconfig.jsonを開きます。

 "stream_params" : {
  "default" : {

stream_params > default要素の末尾に以下の要素を追加します。”amux.ain0″ の上の要素の末尾にカンマをつけるのを忘れないように!

                                                   ,
    "amux.ain0" : "dup name=audio def='oal_capture name=capture' ! opus_encoder",
    "amux.ain0.capture.devicename" : "HD USB Camera Analog Stereo"

続いて

"stream_defs" : {
  "default" : "mux name...

stream_defs > defaultの末尾に、以下を追記します。

    ... ! mux name=amux

参考に、ファイルの全体を記載します。追記した部分以外はあなたの設定を保持してください。

{
  "wrtc_enabled" : false,
  "wrtc_key" : "your_key",
  "stream_def" : "default",
  "stream_defs" : {
    "default" : "mux name=mux ! mjpeg_tegra_decoder name=decoder cudamem=1 ! pcuda_remapper name=remapper dup=1 edge_r=\"0.1\" s=@APP.SIZE@ ! pipe name=encoder t=H265 ! mux name=amux"
  },
  "plugin_paths" : [
    # "plugins/jetbot/jetbot_service.js"
  ],
  "stream_params" : {
    "default" : {
      "renderer.realtime" : "1",
      "mux.vin0" : "v4l2_capture name=capture s=@APP.CAM0@",
      "mux.vin0.capture.meta" : "<meta maptype=\"FISH\" deg_offset=\"-90,0,0\" lens_params=\"file:///home/picam360/pserver/lens_params0.json\" />",
      "mux.vin0.capture.set_sharpness" : "7",
      "mux.vin0.capture.set_backlight_compensation" : "30",
      "mux.vin1" : "v4l2_capture name=capture s=@APP.CAM1@",
      "mux.vin1.capture.meta" : "<meta maptype=\"FISH\" deg_offset=\"-90,0,0\" lens_params=\"file:///home/picam360/pserver/lens_params1.json\" />",
      "mux.vin1.capture.set_sharpness" : "7",
      "mux.vin1.capture.set_backlight_compensation" : "30",
      "encoder.def" : "gst-launch-1.0 -q fdsrc ! rawvideoparse width=@IWIDTH@ height=@IHEIGHT@ framerate=30/1 format=i420 ! omxh265enc iframeinterval=300 bitrate=2000000 control-rate=2 ! h265parse ! video/x-h265,stream-format=byte-stream,alignment=nal ! fdsink",
      "amux.ain0" : "dup name=audio def='oal_capture name=capture' ! opus_encoder",
      "amux.ain0.capture.devicename" : "Wireless Microphone RX, USB Audio (CARD=RX,DEV=0)"
    }
  },
  "params" : {
    "APP.SIZE" : "1440x720",
    "APP.CAM0" : "3840x2880@15:/dev/video0",
    "APP.CAM1" : "3840x2880@15:/dev/video1"
  },
  # "pviewer_config_ext" : "www/jetbot-config.json",
  "license" : {
    "app_key" : "your_app_key",
    "sku" : "P360SWLIC-STEREO-V1",
    "iface" : "wlan0"
  },
  "debug" : 0
}

以上で設定完了です。

繋いでみる

ビューワーに設定はありません。繋いてみて音声が流れれば成功です。

 

以上、音声機能でした。


Picam360リンク: