koss (社長)
ずっと品薄だったRaspberry Pi Zeroもようやく入手しやすくなってきた。新しいモデルになって、CSI(カメラインターフェース)が付いたものだ。ってことで、これまでRaspberry Pi 2 で実験してきた、フルHD映像のUstreamリアルタイム配信にチャレンジし、一応成功したので報告する。
新しいRaspberry Pi Zero
大きさは旧モデルZeroと同じらしい。RasPi2と比べるとこんな感じで、容積は1/4以下。RasPi2で使っていた(最新ではない)OSイメージそのままでもブートはできる。
目指すもの
RasPi2を使ったこれらの記事と同じ様に、ZeroでもHDMI入力でUstream配信するのが最終目標。
カメラの接続
まず、ラズパイ純正のカメラをつないでみる。
CSIインターフェースのピン数が少なくなっているので、Zero専用のフラットケーブルに換装しなければいけない。
注意が必要なのは、RasPi2/3用とZero用ではケーブルの両端の端子の向きがねじれの関係になっていること。
この写真の右側上がZero用ケーブルとカメラで、この向きで接続する。下がRasPi2/3用ケーブルで、カメラ部分の向き(面)が逆になっていることが分かるだろう。この向きを間違えると動作しないどころか、カメラを壊してしまう可能性がある。実際に僕はv1.3カメラを1つ再起不能にしてしまった。
RasPi2で使っていた古いOSイメージではカメラは動かなかったので新しいものを用意。Raspbian JESSIEなら2015-05-27以降のOSイメージを使おう。
ネットワーク接続
Zeroにはネットワークインターフェースがないので、USBのWifiドングルでネットワーク接続を確保する。手元にあったCable Matters USB LAN 変換アダプタは、特別な設定をせずに動作した。USB Wifiドングルでも基本的には動作したが、有線よりも電源を喰うようで、非常に繊細な取り扱いを要求してくれるワガママZeroになってしまうので、今回は見送り。
Ust配信
前出の記事と同じ手法・手順でUst配信をやってみた。
GStreamerのみの場合も、nginxを経由してUstサーバへの送出する場合もRasPi2と同じt手順で動作した。当たり前と言えばそうだが、こんな小さなボードでも同じように動くのが健気だ。かわいい。
ただ、RasPi2では10Mbpsでも問題なく配信できていたが、Zeroは4Mbps付近が限界のようで、これを超えて5Mbpsあたりでは、すぐに映像が止まってしまう。ネットワークなのかエンコーディングなのか、スループットが上限に達している印象だ。もっとも、むやみにビットレートを上げて耐久実験をしているだけなので、何らかのチューニングで上限スループットの中で、良好な配信画像は得られるのかもしれない。
HDMI入力
さて、RasPi2で使った独AuvideaのHDMI入力ボードB101を使ってみよう。…と思うが、もともと純正カメラとB101用ケーブルの極性(裏表)が逆…ねじれ関係なのである。なので、Zero用の純正カメラケーブルでは、どんなトポロジーでも正しく接続できない。変換ケーブル的なものを作れば電気的にはうまく繋げられるはずだが、ラズパイカメラv1.3が対応していないことを考えるとソフトウェア的にも何か手を入れないといけないかもしれない。
よって、今回はここまで。
締め
上位のRasPi2/3と比べて実用的なビットレートは低くなるものの、Raspberry Pi ZeroでもH264での配信は基本的には問題なくできる。1つしかないUSBを潰してネットワーク接続を確保しなければいけないのと、電源にシビアな以外は、割とちゃんと使える印象だ。
RasPi2/3とも合わせて、ビットレートと解像度/画質のバランスの良いポイントを探してみたい。
koss (社長)