2つのプロセスが同時にWebカメラにアクセスすることは可能ですか?


14

Google+ハングアウトと同様の構成でCheeseを使用してみてください。また、2つのプロセスでWebカメラを使用してWebカメラに同時にアクセスできるかどうかを知りたいです。まだ試していませんが、やる前に聞いてみようと思いました。

それで、それは可能ですか?

回答:


6

さて、私はちょうど試しました。興味深い結果。

私はスカイプとチーズ、ウェブカメラのおもちゃとたまり場(すべてうまくいきます)を手に入れて、一緒に試しました。

結果:

同じWebカメラを一度に2つのものに使用することはできません。

チーズ(動作中)+ Webcam Toy(動作していない)+ Skype(小さい、右上。動作していません)。

ここに画像の説明を入力してください

ただし、2つのもので2つのWebカメラを使用できます。(チーズ+ Webcam Toy)。

ここに画像の説明を入力してください

ハングアウト(動作していない)+チーズ(動作している)

ここに画像の説明を入力してください

ハングアウト(独自の作業)。

ここに画像の説明を入力してください

最初にハングアウトを開いたときにチーズが壊れました。それは他の人と同じでしたが、私のインターネットはすべてのスクリーンショットをアップロードするには遅すぎます(そして、30以上のスクリーンショットを感謝するとは思いません)...

ここに画像の説明を入力してください

へのシンボリックリンクを作成し/dev/video0て保存しようとし/devましたvideo2。それはうまくいきませんでした。

また、一度に2つのチーズプロセスを実行することもできません。

必要に応じて、フルスクリーンにして2つのスクリーンレコーディングを行うことをお勧めします。しかし、それはあなたが望むもののために働くとは思わない。


ありがとう!これは簡潔で、知っておくべきことを教えてくれます。素敵な庭ところで!タイムアウトが期限切れになると(21時間後)、賞金が授与されます。次に、このコメントを削除します。
RolandiXor

@Mewそれはそれを動作させるための私の最後の試みでした:)
ティム14

@Tim次の答えは、それを行う方法が必要なため、ここに来た場合、まさにあなたが探しているものです。
イサイアメドウズ14

1
@impinballいや、興味深い質問を見つけました!
ティム14

14

幸いなことに、今、はい!

現在、GitHubには、1つのソースから2つだけでなく、無限(システム容量によってのみ制限される)のビデオデバイスを表示できるプロジェクトがあります。

プロジェクトはと呼ばれv4l2loopbackます。(リンクを確認し、下にスクロールしてREADMEで手順を確認してください。)

v4l2loopbackGitHubのクローンを作成してこれらのコマンドを実行することでインストールできます。

$ git clone https://github.com/umlaeute/v4l2loopback.git
$ cd v4l2loopback
$ make
$ sudo make install

GStreamer、FFmpeg、MPlayer、Skypeで使用する方法のサンプルについては、小さなwikiを確認してください。うまくいけば、ニーズに合った適切な設定を見つけることができます。

微調整をお楽しみください!


1
仮想デバイスは、Linux(および* nix)が優れている分野の1つです。Windowsでは、データの供給が完了するのをtee待たない基本的なユーティリティを作成することさえも、より複雑stdinです。これが実際にtee内部でよりスケーラブルなサポートと同等のバイナリを使用する場合、私は驚かないでしょう。
イサイアメドウズ14

これは質問に答えるいながら、望ましいだろう例えばそのためのオプションはどのような1から2つのデバイスを作る-私たちはいくつかの例を持っているので、こと、ここではリンクの部分を含み、かつ参照のためのリンクを提供するために?(OPの要件で述べられているように)Googleハングアウトで使用することは可能ですか?また、Skypeでテストしましたが、動作しないようです。4.0ではなく4.3になりました...
ティム

2
他のシステムが復帰したときに、これを確認する必要があります。私はおそらく追加の報奨金を与えます。
RolandiXor

3
これは実際にはubuntuの一部です-gitは不要です。
nbubis

実際、これはv4l2loopback-utilsとしてUbuntu / Debian用にパッケージ化されました。これを自己コンパイルする必要はありません
Arnaud Jeansen

3

@The Eyeの回答に基づく

Ubuntu 18.04 https://gstreamer.freedesktop.org/documentation/installing/on-linux.htmlに最初にgstreamerパッケージをインストールしました

$ git clone https://github.com/umlaeute/v4l2loopback.git
$ cd v4l2loopback
$ make
$ sudo make install

Ubuntu 18.04 LTS https://github.com/umlaeute/v4l2loopback/issues/139に警告メッセージが表示されました(ただし、v4l2loopbackドライバーのロードを妨げませんでした)

$ sudo depmod -a

ラップトップ/ dev / video0に1つのWebカメラがあり、同じハードウェアから2つのストリームを取得したかったのです。https://github.com/umlaeute/v4l2loopback/blob/master/README.mdに基づく

$ modprobe v4l2loopback devices=2

これで、唯一のビデオデバイスである/dev/video1/dev/video2仮定して作成されたはず/dev/video0です。

今、私は1つのターミナルウィンドウで次を実行します

gst-launch-1.0 v4l2src device=/dev/video0 ! tee name=t ! queue ! v4l2sink device=/dev/video1 t. ! queue ! v4l2sink device=/dev/video2

さらに2つのタブを開きます

最初のタブで

gst-launch-1.0 v4l2src device=/dev/video1 ! videoconvert ! ximagesink

2番目のタブで

gst-launch-1.0 v4l2src device=/dev/video2 ! videoconvert ! ximagesink

これで2つのビデオストリームが表示されます

更新

同じものを使っても /dev/video1デバイスを複数回それだけのストリームが得られます。例。

最初のタブで

gst-launch-1.0 v4l2src device=/dev/video1 ! videoconvert ! ximagesink

2番目のタブで

gst-launch-1.0 v4l2src device=/dev/video1 ! videoconvert ! ximagesink

3番目のタブで

gst-launch-1.0 v4l2src device=/dev/video1 ! videoconvert ! ximagesink

3つのストリームを提供します。


ところで、Webカメラにオーディオがある場合は、コマンドpactl list | grep -A2 'Source #'を使用してオーディオデバイスをフィルターし、次のパイプラインでそのデバイスを使用します(パイプラインの複数のインスタンスも実行できます)gst-launch-1.0 pulsesrc device=alsa_input.<name of device> ! autoaudiosink
enthusiasticgeek

これは、私はFFmpegのはいつも誰も聞いていなかったとしてもCPU使用してそれが生じ、それを復号化することなくH264コピーすることができなかったとして、はるかに優れたFFmpegのソリューションよりも動作します
ファビアン・N.

2

たぶん答えはノーです...ライブラリ、「Video 4 Linux」は、デバイスが使用されているかどうかを検出し、開始しません。しかしながら; libv4l-devをダウンロードして手動で編集する場合は、コードを編集してこのチェックを取り除き、再コンパイルするだけです。これを動作させることができると思いますが、非常に不安定です。しかし、チェックアウトする価値があるかもしれません。

TLDR:あなたが何か便利なエルボグリースを持っているプログラマーなら、何でも可能です。そこまで行きたくないですか?その後、いいえ。不可能です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.