複数のプログラムが同じV4L2デバイスにアクセスできるようにする

複数のプログラムが同じV4L2デバイスにアクセスできるようにする

別のプログラムで使用するためにWebカメラから入力をキャプチャできるようにしたいです。 1つはVoIP用、もう1つはキャプチャ用です。

問題は - Linuxでは1つのプロセスしかV4L2デバイスにアクセスできないため、ビデオチャットを実行するとすぐにキャプチャに黒いフレームが表示され、キャプチャプログラムを最初に起動するとビデオチャットに黒いフレームが表示されます。

この問題をどのように解決できますか?複数のプロセスが単一のデバイスにアクセスできるようにする方法はありますか/dev/video?それとも/dev/video0何らかの方法で複製して作成できますか/dev/video1

答え1

使用できるv4l2 ループバックストリームにアクセスするプログラムごとに 1 つずつ複数の仮想デバイスを作成し、teeForward Video to the Virtual Device などのプログラムを使用します。

関連情報