1

で生画像(1.8MB)を表示しようとしていますgst-launch-1.0。これを実現するには、データを JPG にエンコードする必要があることを理解しています。画像が既にjpgファイルとして保存されている場合、ストーリーは非常に単純になります。

gst-launch-1.0.exe -v filesrc location=output.jpg ! decodebin ! imagefreeze ! autovideosink

ただし、パイプラインを組み立てて、3D アプリケーションによってディスクにダンプされた生のBGRA 800x600 画像(上記と同じように見える) を表示する必要があります。

これは私がこれまでに行ったことですが、問題は、ディスク上に完全に黒いイメージが作成されることです。

gst-launch-1.0.exe -v filesrc location=dumped.bin ! video/x-raw,format=BGRA,width=800,height=600,framerate=1/1 ! videoconvert ! video/x-raw,format=RGB,framerate=1/1 ! jpegenc ! filesink location=out.jpg

GStreamer はこのタスクを処理できますか?

4

1 に答える 1

5

解決しました!私が直面した2つの主要な問題は次のとおりです。

  • dump.binは私のシステム (Cygwin) のシンボリック リンクであり、何らかの理由gst-launch-1.0でそれを操作できませんでした。
  • 生データを扱う場合、 のブロックサイズを指定する必要がありますfilesrc

❄</p>

gst-launch-1.0.exe -v filesrc location=dumped.bin blocksize=1920000 ! video/x-raw,format=BGRA,width=800,height=600,framerate=1/1 ! videoconvert ! video/x-raw,format=RGB,framerate=1/1 ! jpegenc ! filesink location=out.jpg

この特定のケースでは、3D アプリケーションの OpenGL フレームバッファからキャプチャされたため、画像を垂直方向に反転する必要もありました。

gst-launch-1.0.exe -v filesrc location=dumped.bin blocksize=1920000 ! video/x-raw,format=BGRA,width=800,height=600,framerate=1/1 ! videoconvert ! video/x-raw,format=RGB,framerate=1/1 ! videoflip method=vertical-flip ! jpegenc ! filesink location=out.jpg
于 2014-11-14T21:06:08.783 に答える