dvswitch で 2 つの Web カメラをテストしています。
dvswitch -h localhost -p 2000
avconv を使用して dv ストリームを生成し、それらを dvsource-file にパイプします。
avconv -y -f video4linux2 -s 640x480 -r 15 -i /dev/video0 -f s16le -ar 48000 -ac 2 -i /dev/zero -target pal-dv - | buffer -u 100 | dvsource-file -h localhost -p 2000 /dev/stdin
(名前付きパイプが悪い結果をもたらすため、バッファコマンドを使用する1つのWebカメラのみのコマンド)
dvswitch gui で 2 つのソースを使ってピクチャ イン ピクチャをまったく問題なく表示および実行できます。また、dvsink-command を使用して、dvswitch が生成したストリームをキャッチし、v4l2sink 出力で gst-launch パイプラインにパイプすることもできます。
dvsink-command -h localhost -p 2000 -- gst-launch -v fdsrc fd=0 ! dvdemux ! dvdec ! tee name=t_vid ! queue ! v4l2sink sync=false device=/dev/video2
(「v4l2sink sync=true device=/dev/video2」でも試してみました...)
/dev/video2 を vlc で開くと、dvswitch で生成されたビデオが表示されます。
vlc v4l2:///dev/video2
しかし、エキガ、スカイプ、そして xawtv が video2 ループバック デバイスを開こうとするとクラッシュします。
vlc の「ツール -> コーデック情報」メニューを使用すると、正しい解像度で「packed yuv 4:2:2 (yuy2)」が表示されますが、フレームレートは 4.200 を超えています (1.000 の 4 倍を超えています...)。通常の速度で表示されます。
vlc と (gst-launch の xvimagesink) はこの仮想デバイスからビデオを表示できると思いますが、ekiga などはフレームレートが非常に大きくて奇妙な数値であるため、表示できません...
フレームレートを 15 や 30 fps のようなものに下げるアイデアはありますか? ビデオレートを使用していくつかの gst-launch パイプラインを試しましたが、うまくいきませんでした。
どうもありがとう、
フランチェスコ