1

Skype (または同様のもの) の仮想 Web カメラとして jpg ファイルを使用しようとしています。イメージ ファイルは数秒ごとにリロードされ、パイプラインも常に最新のイメージを送信する必要があります。このようなパイプラインの作成を開始しました

gst-launch filesrc location=~/image.jpg ! jpegdec ! ffmpegcolorspace ! freeze ! v4l2sink device=/dev/video2

ただし、最初の画像のみをストリーミングし、画像ファイルの新しいバージョンは無視します。concat とパイプラインの動的変更について何かを読みましたが、これを機能させることができませんでした。

これを機能させる方法についてのヒントを教えてください。

4

2 に答える 2

0

いくつかのパラメーター調整を追加し、それをon a delaymultifilesrcとペアにする場合は、一般的なファイル名を使用できます。identity少し壊れやすいですが、入力画像を同じサイズと形式に保つ限り、一時的な 1 回限りのプログラムでは問題ありません。

gst-launch-1.0 multifilesrc loop=true start-index=0 stop-index=0 location=/tmp/whatever ! decodebin ! identity sleep-time=1000000 ! videoconvert ! v4l2sink

于 2016-02-24T19:33:33.400 に答える
0

入力ファイルを動的に更新することはできません (少なくとも ではfilesrc)。
また、サンプルを使用するfreezeと、イメージの変更が防止されます。

考えられる方法の 1 つは、代わりに multifilesrcandを使用することです。(scanf/printf に似た提供されたパターンで) 多くのファイルを読み取ることができ、速度を制御できます。videoratemultifilesrcvideorate

たとえば、image0000.jpg、image0001.jpg、...、image0100.jpg の形式で 100 個の画像を作成するとします。次に、各画像を 1 秒で連続して再生します。

gst-launch multifilesrc location=~/image%04d.jpg start-index=0 stop-index=100 loop=true caps="image/jpeg,framerate=\(fraction\)1/1" ! jpegdec ! ffmpegcolorspace ! videorate ! v4l2sink device=/dev/video2

で画像の数を変更しstop-index=100、で速度を変更しcaps="image/jpeg,framerate=\(fraction\)1/1"
ます。これらの要素の詳細については、gstreamer.freedesktop.org/documentation/plugins.html にあるドキュメントを参照してください。

編集: 1.x ではなく、GStreamer 0.10 を使用しているように見えます。この場合は、古いドキュメントのmultifilesrcvideorate
を参照してください。

于 2016-02-24T16:23:08.837 に答える