2017年6月3日ラズパイZeroに動画配信サーバーを構築するRaspberryPiラズパイZeroに搭載されているSocのエンコーディング機能を使い、自宅内で使える動画配信サーバーを構築します。Chip)と呼ばれるハードウェアを使い、動画をエンコードします。動画変換ソフトはFFmpegを使い、動画の形式はH.264形式です。FFmpegは、動画と音声を変換することのできるフリーソフトウェアです。動画を配信するには?Webサーバーアプリケーションのnginxを使います。リアルタイムに配信できるように、RTMPモジュールを導入します。動画ファイルは、前回作成したファイルサーバーに保存します。→ラズパイZeroにファイルサーバー(samba)を構築する今回作業の流れ前回までの内容どのラズパイでもよいのですが、ラズパイZeroを使います。ラズパイZeroにSSH接続して、ラズパイと同じLAN内のPCが共有できる領域を作成します。→ラズパイZeroにOSをインストールしてリモートアクセス(サーバー利用)→USBメモリーを接続して共有領域を作る(ラズパイ)→ラズパイZeroにファイルサーバー(samba)を構築する今回の内容SSHの接続、コマンド操作は全てリモートPCを使って行います。ラズパイZeroを直接操作はしません。ラズパイZeroを起動し、SSH接続します。↓FFmpegのビルド・インストールを実行します。↓FFmpegで、mkv形式動画をmp4形式に変換します。↓nginxのビルド・導入をします。↓ラズパイからコマンドで動画を配信します。↓クライアントPCから、vlcで動画を受信します。準備ラズパイOSのインストール・SSH接続・初期設定を完了したものとします。32GBラズパイZeroにリモート操作するPC今回はLinuxを前提に説明しますが、windowsやMacでも操作可能です。市販のブロードバンドルーターにラズパイZeroとリモート操作用のPCを接続します。SSH接続1SSH接続をします。以下のコマンドでラズパイZeroに接続します。pi@IPアドレスFFmpegのビルド・インストールハードウェアエンコーディング機能を使うため、FFmpegを有効にします。1インストール前にアップデートを実行します。upgrade2ネットワークが切れても状態を保持するため、tmux(端末多重化ソフトウェア)をインストールします。tmux3tmuxを実行します。clone」でFFmpegを入手します。https://github.com/FFmpeg/FFmpeg.git5FFmpegディレクトリに移動し、オプションを設定を変更します。--enable-nonfree6コンパイルします。(※コンパイルに時間がかかります。)make7ビルドしたソフトウェアをインストールします。install8実際に動画を変換します。「.mkv」形式のファイル(sample.mkv)を共有フォルダ「/var/shared」に保存します。9以下のコマンドでsample.mkvをH.264形式にハードウェアエンコードします。sample.mp4-i入力ファイルのパスを指定します。h264_omxH.264形式にハードウェアエンコードするためのコーデック(h264_oxm)を指定します。acc音声用のコーデック(acc)を指定します。nginxのビルド・導入Raspbianには最初からnginxパッケージが含まれていますが、RTMPモジュールが組み込まれていません。これをソースコードからビルドします。1以下のパッケージをインストールします。5」のものに似せた正規表現に対応するための関数のライブラリです。ライブラリ、ヘッダおよびドキュメントです。2ホームディレクトリに移動し、wgetで以下のファイルを取得します。(2017年5月現在、1.13.0が最新です。新バージョンが公開されていれば、「nginx-1.13.0.tar.gz」に最新バージョンを指定して下さい。https://nginx.org/download/nginx-1.13.0.tar.gz3圧縮ファイルを解凍します。nginx-1.13.0.tar.gz4RTMPモジュールを取得します。https://github.com/arut/nginx-rtmp-module.git5nginx-1.13.0ディレクトリに移動し、オプションを設定を変更します。--add-module=../nginx-rtmp-module–with-http_ssl_moduleデフォルトで無効なモジュールを有効にします。–add-module=../nginx-rtmp-moduleサードパーティモジュール(nginx-rtmp-module)の追加します。(※コンパイルに時間がかかります。)make7ビルドしたソフトウェアをインストールします。install8インストールが完了したら、nginxの設定ファイルを編集します。/usr/local/nginx/conf/nginx.conf以下のハイライトの部分を「nginx.conf」に追記して下さい。/404.html;一番下の行に、以下の記述を追加します。}}9以下のコマンドでnginxを起動します。以下のコマンドを実行します。先ほどの動画サンプル(sample.mkv)を「video」アプリの「sample」というチャンネルで配信するコマンドです。;done無限ループです。rtmp:192.168.1.200/video/sample「video」というアプリの「sampe」というチャンネルを配信します。「192.168.1.200」は、ラズパイのipアドレスです。クライアント側の作業RTMPの動画を受信できるクライアントソフトを利用して動画を見ます。player」をインストールします。player」を起動します。メニューの「メディア」→「ネットワークストリーム」を開くを選んで、「ネットワークにURLを入れて下さい」に「rtpm://rtmp:192.168.1.200/video/sample」を入力して再生します。