2016-04-08 18 views
2

Ich habe diesen Befehl ein:Wie ändere ich das Seitenverhältnis mit 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 

Es nimmt die zweite Anzeige (von Pixel 1920 bis zum letzten -1) und zeigt sie in einem kleinen Fenster in dem ersten Anzeige, eine horizontal-Flip-Anwendung und Nachbarn Skalierung mit Methode, bei 15 Bildern pro Sekunde. Es dient zur "Überwachung" meiner zweiten Anzeige (TV) in meiner ersten Anzeige (Computermonitor).

Jetzt ist meine zweite Anzeige ein 16: 9-Fernseher, und ich verwende 1024x768. Die Bilder, die dort angezeigt werden, sind bereits skaliert (von 16: 9 bis 4: 3). Jetzt muss ich das 4: 3-Verhältnis im gstreamer-Fenster auf 16: 9 skalieren.

Aber mit diesem Befehl, ich habe, was Sie in diesem kompletten Screenshot (mit dem eigentlichen Fenster und die „wünschte“ Fenster) zu sehen:

enter image description here

Was ist der richtige Befehl ist TU das?

Antwort

1

Fügen Sie keine Grenzen mit 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

Danke, Mann. Eine weitere Sache: meine Suche war in diesem Befehl angekommen, um CPU zu sparen, aber jetzt weiß ich nicht, warum ich Use-Damage = 0 hinzugefügt habe. Wofür ist das? Ist es nötig? –

+0

@MarioMey die use-damage = 0 .. gut XDamage ist eine Option für X11, die bewirkt, dass nur Änderungen anstelle von Vollbildern übernommen werden (ähnlich wie h264, das die Bitrate optimiert, um nur relative Änderungen zwischen Frames zu speichern) Verwenden Sie xdamage viel CPU wird gegessen, um die Änderungen statt nur dummes Greifen zu erkennen .. Sie können [diese] (http://stackoverflow.com/questions/33747500/using-gstreamer-to-capture-screen-and-show) überprüfen -it-in-a-window) beantworten. Aber jetzt bin ich verwirrt, zuvor in dieser Frage dachte ich, dass XDamage besser für CPU ist, aber ich setzte es = 0 .. – nayana

+0

Oh, ich erinnerte mich nicht, wo ich diesen kompletten Befehl: von einer Frage von mir, was a Dumm. Vielen Dank. Außerdem gibt es keinen signifikanten CPU-Unterschied zwischen 0 und 1, aber ich wollte wissen, warum es dort war. –

Verwandte Themen