USB Webカメラからインターネットを介してビデオをWebページにストリーミングするプログラムを作成したいと考えています。
現在、私はトリガーされたときにfswebcam
を呼び出して画像をキャプチャし、データストアに保存し、base64バイナリに変換し、そのデータをHTMLページに送信して「src」属性にレンダリングするWebサービスを使用しています「img」の。 HTMLページには、このサービスを1秒に1回呼び出すJavaScriptがあります。
ご存知のように、これはこれを行うには恐ろしい方法です。できれば適切なストリームが欲しいです。しかし、これを達成するために利用できるテクノロジーはわかりません。
WebサービスはnodeJS
で記述されています。サーバーはRaspberry Pi 2
で実行されています。一般的なRaspberry Pi forum
の問題だと思うので、Linux/programming
にはこの質問を入れませんでした。
livecam のようなフレームワークを使用します。
GStreamerとNode.jsを使用したウェブカメラライブストリーミングソリューション
このモジュールを使用すると、ネットワークでWebカメラをストリーミングして、ブラウザーで使用したり、ファイルにストリーミングしたりできます。詳細については、ドキュメントを参照してください。
用途:
// npm install livecam
const LiveCam = require('livecam');
const webcam_server = new LiveCam({
'start' : function() {
console.log('WebCam server started!');
}
});
webcam_server.broadcast();
記事 here は、作業イメージで可能な最も簡単な方法でプロセス全体を説明しています。これはLinuxの方法であり、node.js
スクリプトではありません。ここではその主要な部分について述べます。
IPアドレスを使用してPiに接続します。 「pi」と「raspberry」は、Raspbianのデフォルトの「ログイン方法」と「パスワード」です。
コマンドSudo apt-get update
およびSudo apt-get upgrade
のシステムタイプを1つずつ更新するには.
コマンドSudo apt-get install motion
を入力して、インストールを開始します。
次に、カメラが正しく検出されたことを確認するために、コマンドlsusb
を入力して入力します。カメラの名前が表示されます。そこにない場合は、カメラに問題があるか、カメラが「モーション」でサポートされていません。
インストールが完了したら、コマンドSudo nano /etc/motion/motion.conf
を入力してEnterキーを押します。
次に、.conf
ファイルの一部の設定を変更する必要があります。設定を見つけるのは難しいかもしれませんが、 Ctrl+W それを見つけるために。したがって、次の手順に従います。
もう一度コマンドSudo nano /etc/default/motion
を入力して、Enterキーを押します。
start_motion_daemon
をyesに設定します。保存して終了。
まず、モーションソフトウェアを再起動する必要があります。これを行うには、コマンドSudo service motion restart
を入力して、Enterキーを押します。
もう一度コマンドSudo motion
を入力して、Enterキーを押します。これでサーバーの準備が整いました。
ブラウザを開きます。 Raspberry PiのIPアドレスとポート番号を次のように入力します。
192.168.0.107:8081
(最初にIPアドレス、次に「:」、次にポート番号)。 Enterキーを押します。
これで、ウェブカメラからのライブフィードを直接ラップトップまたはモバイル、あるいはその両方で同時に見ることができます。しかし、これはローカル接続です。パブリックにするには、世界中のどこからでもアクセスできるようにパブリックIPを設定します。