2016-04-08 31 views
2

私はこのコマンドを持っている:gstreamerでアスペクト比を変更するには?

gst-launch-1.0 ximagesrc startx=1920 starty=0 endx=2943 endy=768 use-damage=0\ 
! video/x-raw,framerate=15/1 \ 
! videoscale method=0 \ 
! video/x-raw,width=640,height=360 \ 
! videoflip method=horizontal-flip \ 
! ximagesink 

それは(ピクセル1920から最後まで-1)は、第2の表示を受け取り、最初のディスプレイの小さなウィンドウで示し、水平フリップを適用し、隣接スケーリングを使用してメソッド、15fps。私の最初のディスプレイ(コンピューターモニター)に2番目のディスプレイ(TV)を「モニター」するためのものです。

私の2番目のディスプレイは16:9のテレビで、1024x768を使用しています。ここに表示されている画像は、すでに16:9から4:3にスケールされています。今度は、gstreamerウィンドウで4:3の比率を16:9にスケールアップする必要があります。

しかし、このコマンドを使用して、私は(実際のウィンドウで、ウィンドウを「望んだ」)あなたはこの完全なスクリーンショットで見ることができるものを持っている:

enter image description hereに正しいコマンドは何

それを行う?

答えて

1

videoscaleと国境を追加しないでください:

gst-launch-1.0 ximagesrc startx=1920 starty=0 endx=2943 endy=768 use-damage=0\ 
! video/x-raw,framerate=15/1 \ 
! videoscale method=0 add-borders=false \ 
! video/x-raw,width=640,height=360 \ 
! videoflip method=horizontal-flip \ 
! ximagesink 
+0

おかげで、男を。もう一つは:CPUを節約するために私のリサーチがこのコマンドに到達しましたが、なぜuse-damage = 0を追加したのか分かりません。これは何のため?それは必要ですか? –

+0

@MarioMey use-damage = 0 .. well XDamageは、フルサイズのフレームではなく、変更のみを取得するオプションです(フレーム間の相対的な変更のみを格納するビットレートを最適化するh264に似ています)。 xdamageを使用してCPUの多くは、ちょうど愚かなつかむの代わりに変更を認識するために食べて..あなたは[これを]チェックすることができます[http://stackoverflow.com/questions/33747500/using-gstreamer-to-capture-screen-and-show - 窓の中で)答え。しかし、今私は困惑しています。その前に、XDamageはCPUの方が優れていると思っていましたが、私はそれを0にします。 – nayana

+0

ああ、私は完全なコマンドをどこで得るのか覚えていませんでした。ダム。ありがとう。また、0と1の間にはCPUの大きな違いはありませんが、その理由を知りたかったのです。 –

関連する問題