0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Raspberry Pi でストリーミング配信を行う方法

Posted at

はじめに

本記事はRaspberry Piでストリーミング配信を行う方法について記載しています。

ストリーミング配信を行うことで、映像や音声をリアルタイムで他のデバイスに配信することが可能です。

Raspberry Piを活用して手軽にストリーミング環境を構築したい方の参考になれば幸いです。

ストリーミング配信

ストリーミング配信を行うにあたりRaspberry Piとカメラモジュールを接続します。

本記事では、Raspberry Pi 4 Model Bと、Raspberry Pi PiNoir カメラモジュール V2.1を使用しています。

カメラモジュールの接続

Raspberry Piとカメラモジュールを接続するには、カメラモジュールをCamera Serial Interface(CSI)端子に接続します。

接続する際は、フィルムケーブルの端子側をHDMI端子側に向けてしっかりと奥まで差しこみます。

写真 2025-05-25 18 59 13.jpg

カメラモジュールが正しく接続されて認識できていることを確認するためには、以下のコマンドを実行します。

$ libcamera-hello

上記コマンドを実行すると、プレビューが5秒間表示されます。-t 0オプションを使用すると、時間制限なしで表示します。

使用するツール

ストリーミング配信を行うにためには、libcameraとVLCについての基本的な理解が必要です。

libcameraは、従来のLinuxディストリビューション、ChromeOS、AndroidなどのLinuxベースのシステムで動作する組み込みカメラ用のオープンソースです。

libcameraは直感的なAPIを提供するとともに、信頼性の低いベンダーコードをオープンソースのコア部分から分離することにより、組み込みカメラハードウェアにおける複雑な制御を簡素化することを目指しています。

Raspberry Pi OS Bullseye以降、カメラドライバは従来のraspistillやPicameraからlibcameraに置き換えられました。従ってより柔軟で標準化されたカメラ制御が可能となりました。

vlcは「Video LAN Client」の略称であり、フランスの非営利組織であるVideoLANプロジェクトの一部として開発されているマルチメディアプレーヤーです。

スクリーンショット 2025-05-25 19.21.00.png

再生機能をはじめ、映像や音声のリアルタイム配信にも対応しているため、Raspberry Pi上でlibcameraと組み合わせることで、取得したカメラ映像をネットワーク越しに配信する仕組みを実現できます。

実践

libcamera-vidコマンドを用いて、Raspberry Piのカメラ映像を動画として出力することができます。

以下のコマンドを実行すると、libcameraがカメラ映像の取得を開始し、映像をTCPストリームとして 127.0.0.1:8888で待ち受ける状態になります。

$ libcamera-vid -t 0 --inline --listen -o tcp://127.0.0.1:8888
ます。

オプションについて-t 0は時間制限なし、--inlineはH.264ストリームをインライン形式で出力します。また、--listenはクライアントからの接続を受け付けるための設定で、-oで出力するインターフェースを設定します。

上記コマンド実行後、VLCメディアプレーヤーから接続可能です。以下はMacのVLCで接続する例です。

ファイルより「ネットワークを開く」を選択します。

スクリーンショット 2025-05-25 19.21.36.png

URLに、tcp/h264://[Host]:8888を入力して「開く」を押します。

スクリーンショット 2025-05-25 19.27.14.png

プレイリストに表示されるので選択して再生します。

スクリーンショット 2025-05-25 19.27.53.png

その後ウィンドウが開き映像を出力します。なお、TCP接続の場合、同時に接続できるデバイスは1台のみです。

スクリーンショット 2025-05-25 19.34.16.png

複数のデバイスを接続したい場合は、cvlcコマンドを使用すること同時視聴が可能です。

先にlibcamera-vidコマンドを実行し、接続が行える状態になったらcvlcコマンドを実行します。

$ libcamera-vid -t 0 --inline --listen -o tcp://127.0.0.1:8888 &
$ cvlc tcp/h264://127.0.0.1:8888 --sout '#standard{access=http,mux=ts,dst=:8080}' --no-sout-all --sout-keep

vlcはiPhoneのアプリがあるので、iPhoneのアプリから同時接続を行います。

iPhoneのアプリで接続する際は、同様に「ネットワークストリームを開く」を選択します。

写真 2025-05-25 19 45 28.png

URLを入力して「ネットワークストリームを開く」を押します。

写真 2025-05-25 19 51 27.png

映像が出力されます。

写真 2025-05-25 19 53 37.png

ホワイトバランスを調整したい場合は、libcamera-vidコマンドに--awb <mode>オプションを付与して実行します。

例えば、曇り空の場合は--awb cloudyオプションを付与します。また、細かく調整したい場合は--awbgains R,Gオプションを使用することで、R及びGのゲインを調整できます。

例:--awbgains 1.5,1.2

おわりに

Raspberry Piを使用したストリーミング配信は、ペットの見守りや子供の見守りなど、さまざまな場面で手軽に活用できます。

低コストかつコンパクトなため、自宅やオフィスでの映像監視システムとしても非常に便利です。

参考

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?