web-dev-qa-db-ja.com

USB WebカメラからリモートHTMLページにビデオをストリーミングする方法

USB Webカメラからインターネットを介してビデオをWebページにストリーミングするプログラムを作成したいと考えています。

現在、私はトリガーされたときにfswebcamを呼び出して画像をキャプチャし、データストアに保存し、base64バイナリに変換し、そのデータをHTMLページに送信して「src」属性にレンダリングするWebサービスを使用しています「img」の。 HTMLページには、このサービスを1秒に1回呼び出すJavaScriptがあります。

ご存知のように、これはこれを行うには恐ろしい方法です。できれば適切なストリームが欲しいです。しかし、これを達成するために利用できるテクノロジーはわかりません。

WebサービスはnodeJSで記述されています。サーバーはRaspberry Pi 2で実行されています。一般的なRaspberry Pi forumの問題だと思うので、Linux/programmingにはこの質問を入れませんでした。

14
X0r0N

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();
2
Dean Meehan

記事 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 それを見つけるために。したがって、次の手順に従います。

    1. 「デーモン」がオンになっていることを確認してください。
    2. 「フレームレート」を1000〜1500のいずれかに設定します。
    3. 'Stream_port'を8081に維持します。
    4. 「Stream_quality」は100にする必要があります。
    5. 'Stream_localhost'をOFFに変更します。
    6. 'webcontrol_localhost'をOFFに変更します。
    7. 「品質」を100に設定します。
    8. 「幅」と「高さ」を640と480に設定します。
    9. 「post_capture」を5に設定します。
    10. Ctrl + xを押して終了します。保存するにはyと入力し、準拠するにはEnterと入力します。
  • もう一度コマンド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を設定します。

2
Rakibul Islam