1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Wowza Streaming Engine で MacBook のカメラ映像配信をお試し

Last updated at Posted at 2021-08-02

はじめに

Wowza Streaming Engine (以下、WSE) は映像をストリーミング配信するためのミドルウェアです

今回は WSE を試してみるため、手元の MacBook にインストールし、 MacBook 内蔵のカメラ映像を配信してみました

データの流れは以下のようになります

MacBook のカメラ -> OBS Studio -RTMP-> WSE -RTSP-> ffmpeg

いろんなところでハマったため、備忘録として残しておきます

Wowza 公式

ちなみに、 Wowza Streaming Cloud を使えば簡単に Web 配信の流れは作れますが、今回は RTSP で出力したかったので WSE を使っています

また、 スマホから配信するための Wowza GoCoder は日本の AppStore から入手できませんでした :cry:

Wowza Streaming Engine のインストール

とりあえずのお試しなので、 Wowza の公式にサインアップし、 Free Trial を開始します

30日間は無償で使えます

あとはインストーラをダウンロード・実行し、メールで送られてくるライセンスキー等を入れていきます

公式の解説はこちら

実行環境

  • macOS Big Sur 11.5
  • Wowza Streaming Engine 4.8.14+9
  • OBS Studio 27.0.1
  • ffmpeg 4.4

Wowza Streaming Engine の起動

インストールしてもアプリケーションに Stop Services という名前で Wowza のアイコンが追加されるだけでした

スクリーンショット 2021-07-28 13.58.50.png

アレ? Start は?と思いましたが、以下のコマンドで起動します

sudo launchctl load -w /Library/LaunchDaemons/com.wowza.WowzaStreamingEngine.plist

また、ブラウザから GUI で操作するための Manager も同様に起動します

sudo launchctl load -w /Library/LaunchDaemons/com.wowza.WowzaStreamingEngineManager.plist

すでに起動されている場合は以下のように返ってきます

$ sudo launchctl load -w /Library/LaunchDaemons/com.wowza.WowzaStreamingEngine.plist
/Library/LaunchDaemons/com.wowza.WowzaStreamingEngine.plist: service already loaded
Load failed: 37: Operation already in progress

止めるときは以下のコマンドです( load -> unload )

sudo launchctl unload -w /Library/LaunchDaemons/com.wowza.WowzaStreamingEngine.plist
sudo launchctl unload -w /Library/LaunchDaemons/com.wowza.WowzaStreamingEngineManager.plist

再起動時は停止してから起動してください

Manager が起動できたら http://localhost:8088 にアクセスします

サインイン画面が表示されれば OK です

スクリーンショット 2021-07-28 10.28.02.png

インストール時に入れたユーザー名、パスワードを入れてください

もしパスワードを忘れていたら

すぐに忘れてしまう私のような人のために

実は /Library/WowzaStreamingEngine/conf/admin.password に認証情報が書かれているので、ここを書き換えてサービス再起動すればサインインできます

# Admin password file (format: [username][space][password][space][groups][space][passwordEncoding])
# [groups]= "admin" | "admin|advUser" | "basic".
# [passwordEncoding]= "cleartext" | "bcrypt" | "digest". If no value is specified, defaults to "cleartext".
#
# Examples
# username password admin cleartext
# admin password admin|advUser cleartext
# admin2 $2y$10$3RI.M/WPQ8qomZb0EkaGme/873Y3dI18TIPB2GUOWrOJC2RDsfJCa admin bcrypt
# user 66210ee3b40b2d14feb73d6216d01324 readOnly digest

xxx xxx admin|advUser bcrypt

アプリケーションの追加

ライブ配信用のアプリケーションを WSE 上に作成します

Applications タブを選択し、 Live をクリックしてください

スクリーンショット 2021-07-28 11.31.56.png

表示されたダイアログにアプリケーション名を入れてください(今回は webcam にします)

+Add をクリックすれば出来上がりです

スクリーンショット 2021-07-28 11.41.40.png

入力元の設定

左サイドメニューから Source Security を選択し、 Edit をクリックします

今回は RTMP で認証なしで入力するため、 RTMP Source を Open に指定します

スクリーンショット 2021-07-28 11.07.56.png

Save をクリックすると、アプリケーションの再起動を求められるので Restart Now をクリックします

スクリーンショット 2021-07-28 11.09.20.png

これで入力を受ける準備ができました

OBS Studio からの入力

カメラ入力を Wowza へ送るために OBS Studio を使います

公式からダウンロードしてインストールしてください

OBS Studio を起動すると以下のような画面が表示されます

スクリーンショット 2021-07-28 13.14.43.png

今回はカメラ映像を配信したいので、 ソース の左下 + をクリックし、 映像キャプチャデバイス を選択します

スクリーンショット 2021-07-28 13.19.14.png

名前を入力してデバイスを選択します

最初はプライバシー設定の指示が出るので、指示に従って環境設定してください

OBS Studio にカメラ映像が表示されます

スクリーンショット 2021-07-28 13.48.30.png

次に右下メニューの 設定 をクリックします

スクリーンショット 2021-07-28 13.23.21.png

左メニューから 配信 を選択し、以下のように入力します

  • サービス: カスタム
  • サーバー: rtmp://127.0.0.1:1935/WSEのアプリケーション名
  • ストリームキー: 任意の文字列(今回は myStream とします)

スクリーンショット 2021-07-28 13.24.14.png

OK をクリックして保存した後、右下メニューの 配信開始 をクリックします

スクリーンショット 2021-07-28 13.23.21.png

うまくいけば 配信開始 だったところが 配信終了 なり、フッターに配信状況が表示されます

スクリーンショット 2021-07-28 13.27.56.png

また、 Wowza Streaming Server の Incoming Streams を見ると、 OBS からのストリームが表示されます

スクリーンショット 2021-07-28 13.37.01.png

ffmpeg で配信確認

Wowza が RTSP で配信できていることを確認するため、 ffmpeg でストリームを受信し、フレームを画像として出力してみます

macOS なら brew install ffmpeg でインストールできます

ffmpeg がインストールできたら、ターミナルで以下のコマンドを実行してください

$ ffmpeg -i rtsp://127.0.0.1:1935/_WSEのアプリケーション名_/_OBSのストリームキー_ -f image2 -update 1 img.jpg

実行すると、受信状況が表示されます

$ ffmpeg -i rtsp://127.0.0.1:1935/webcam/myStream -f image2 -update 1 img.jpg
ffmpeg version 4.4 Copyright (c) 2000-2021 the FFmpeg developers
  built with Apple clang version 12.0.5 (clang-1205.0.22.9)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/4.4_2 --enable-shared --enable-pthreads --enable-version3 --cc=clang --host-cflags= --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libbluray --enable-libdav1d --enable-libmp3lame --enable-libopus --enable-librav1e --enable-librubberband --enable-libsnappy --enable-libsrt --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libspeex --enable-libsoxr --enable-libzmq --enable-libzimg --disable-libjack --disable-indev=jack --enable-avresample --enable-videotoolbox
  libavutil      56. 70.100 / 56. 70.100
  libavcodec     58.134.100 / 58.134.100
  libavformat    58. 76.100 / 58. 76.100
  libavdevice    58. 13.100 / 58. 13.100
  libavfilter     7.110.100 /  7.110.100
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  9.100 /  5.  9.100
  libswresample   3.  9.100 /  3.  9.100
  libpostproc    55.  9.100 / 55.  9.100
Input #0, rtsp, from 'rtsp://127.0.0.1:1935/webcam/myStream':
  Metadata:
    title           : myStream
  Duration: N/A, start: 0.214000, bitrate: N/A
  Stream #0:0: Audio: aac (LC), 48000 Hz, stereo, fltp
  Stream #0:1: Video: h264 (High), yuv420p(tv, bt709, progressive), 1280x720 [SAR 1:1 DAR 16:9], 30 fps, 30 tbr, 90k tbn, 60 tbc
Stream mapping:
  Stream #0:1 -> #0:0 (h264 (native) -> mjpeg (native))
Press [q] to stop, [?] for help
[swscaler @ 0x7f93e1446000] deprecated pixel format used, make sure you did set range correctly
Output #0, image2, to 'img.jpg':
  Metadata:
    title           : myStream
    encoder         : Lavf58.76.100
  Stream #0:0: Video: mjpeg, yuvj420p(pc, bt709, progressive), 1280x720 [SAR 1:1 DAR 16:9], q=2-31, 200 kb/s, 30 fps, 30 tbn
    Metadata:
      encoder         : Lavc58.134.100 mjpeg
    Side data:
      cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: N/A
frame=  451 fps= 32 q=24.8 size=N/A time=00:00:15.03 bitrate=N/A dup=11 drop=5 speed=1.06x

また、実行ディレクトリーに img.jpg ができます

Finder でアイコン表示をしていれば、定期的に更新されて動いているのが分かります

スクリーンショット 2021-07-28 13.47.47.png

終わりに

これでローカル環境で Wowza の色々なテスト・検証ができるようになりました

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?