スポンサーリンク

Webプログラミング

Parrot Bebop2のカメラ映像をリアルタイムにYouTube配信する方法

Node.jsを使い、Parrot Bebop2をどこまでコントロールできるか、検証しています。前回の記事で、Bebop2を離着陸させたり、前進後進、左右旋回、上昇、下降等を操作できることを確認しました。今回は、カメラ映像を取得する部分に焦点を当て、紹介します。

node-bebopライブラリの取得

前回の記事では、

npm install node-bebop

で、Bebop2をコントロールするためのライブラリをインストールする方法をお伝えしましたが、これだけでは、カメラ映像を取得することはできません。

なぜできないかというと、Bebop2本体の現在のファームウェアは、アップデートにより、発売当初から大幅に変更され、動画の配信方法についても大きく変わっているからです。現在のファームウェアでは、カメラ映像はコントロールする経路とは異なるRTPプロトコルという別経路でストリーミング配信されているようです。

そのため、今回は、node-bebopライブラリのソースコードを、githubからクローンするところから始めます。適当なディレクトリに移動し

git clone https://github.com/hybridgroup/node-bebop.git

とすると、node-bebopディレクトリができますので、

cd node-bebop

で、ライブラリ内に移動します。

新しいファームウェアに対応したブランチ”feature/firmware-4.0″が存在するので、以下コマンドで切り替えます。

git fetch origin
git checkout feature/firmware-4.0

他の必要なライブラリをインストールするため、

npm install

をしておきます。

以上で完了です。また、ストリーミング映像の再生にVLC Playerがあると便利ですので、なければVLC Playerのサイトからダウンロードします。

カメラ映像の取得

Bebop2の電源を入れ、wifiの接続先をBebop2に設定します。そして、先ほどのディレクトリで、

node examples/video.js

を実行します。これで、RTPでのストリーミング配信が開始されるので、VLCプレイヤーで見てみます。VLCプレイヤーを開き、↑のexamplesディレクトリ内のbebop.sdpを読み込みます。bebop.sdpはIPアドレス・ポートなどが記述された設定ファイルになります。

すると、、、

リアルタイムに、Bebop2の映像が確認できました!

若干レイテンシーが気になりますが、比較的綺麗です。

カメラ映像をYouTubeでリアルタイム配信

さらに、RTPで配信されたストリーミング映像を変換し、Youtubeのライブチャネルへ配信してみたいと思います。

と、その前に、YouTubeへライブ配信するために、ffmpegという、映像・音声のエンコーダを使いますので、インストールしておきます。

brew install ffmpeg

以上で、ffmpegのインストールは完了。

それでは、早速、YouTubeのクリエイターツールを開き、ライブストリーミングの”今すぐ配信”を開きます。

エンコーダの設定の部分の、サーバURLと、ストリーム名をメモしておきます。

YouTubeのライブ配信のチャネルを開いておきます。

当たり前ですが、まだオフラインの状態です。

次にコマンドを一つ打てばライブ配信開始されるんですが、その前に、音声ファイルを用意してあげる必要があります。なぜなら、YouTubeは映像のみのストリーミングは受け付けてくれません。必ず、音声と映像の両方が含まれる必要があります。しかし、Bebop2の映像は音声なしのため、ダミーで何かしら音ファイルbebop.sdpと同じディレクトリ内にaudio.mp3として保存してから、以下コマンドを実行します。

ffmpeg -re -protocol_whitelist "pipe,udp,rtp,file" -thread_queue_size 512 -i bebop.sdp -i audio.mp3 -c:a aac -s 2560x1440 -ab 128k -maxrate 2048k -bufsize 2048k -framerate 30 -g 60 -strict experimental -f flv [rtmp://から始まるサーバURL]/[ストリーム名]

そして、YouTubeのライブ配信のチャネルを開くと、、、

見れました!! (完)

※ffmpegのオプションはものすごく大量にあり、また個人的にメディア系の部分はあまり慣れてないこともあり、かなりはまりました。今回は音声ファイルを読み込むことで音を再生させてますが、マイクデバイスの音を拾って配信することもできると思ってます。ffmpegは、かなり細かく様々な処理ができることを知り、とても勉強になりました。

ピックアップ記事

  1. ドローン練習に行ってきました #3
  2. プログラミングができる市販ドローン”Parrot Bebop2…
  3. 新世代フライトコントローラーSP Racing F3
  4. QAV250をリニューアル制作
  5. 210サイズドローンの制作

関連記事

  1. RaspberryPi

    MQTTでドローンの自動操縦を考える(1)

    ドローンの自動操縦への一歩として、前回、を紹介しましたが、今回…

  2. RaspberryPi

    iPhoneでドローン(SPRacingF3)を操縦する方法

    以前の記事では、ドローンに積んだフライトコントローラーSP Ra…

  3. 市販ドローン

    DJIとIntelの最新技術の結晶 80gの小型ドローンTello

    中国のRyze Tech というメーカーの小型ドローンを購入しました。…

  4. RaspberryPi

    フライトコントローラーSP Racing F3をRaspberryPiで操作

    フライトコントローラーSP Racing F3をプロポではなく、Ra…

  5. 市販ドローン

    Parrot bebop2をNode.jsで操作してみた

    Parrot bebop2はプログラミング可能な市販ドローンという…

おすすめ記事

最近の記事

  1. トイドローンTelloでGo言語プログラミング!フロントカメ…
  2. DJIとIntelの最新技術の結晶 80gの小型ドローンTe…
  3. Parrot Bebop2のカメラ映像をリアルタイムにYou…
  4. Parrot bebop2をNode.jsで操作してみた
  5. プログラミングができる市販ドローン”Parrot…

月別アーカイブ

  1. フライトコントローラー

    フライトコントローラー”SP Racing F3″に超音…
  2. 市販ドローン

    プログラミングができる市販ドローン”Parrot Bebop2…
  3. フライトコントローラー

    フライトコントローラー(SP Racing F3)にGPSモジュール(ublox…
  4. RaspberryPi

    iPhoneでドローン(SPRacingF3)を操縦する方法
  5. 市販ドローン

    Parrot bebop2をNode.jsで操作してみた
PAGE TOP