Jump to content

plugin request - 4:3 Sender als 14:9


Xander
 Share

Recommended Posts

Hallo Keywelt,

 

ich habe eine Bitte. Wer kann mir helfen folgende Funktion als mini-plugin zu realisieren?

 

Wenn die Box auf einen 4:3 Sender gezappt wird, sollen sich die Einstellungen im Einstellungen/Video Menü auf Bildschirmformat=14:9 ändern. Zappt man zurück auf einen 16:9 Sender soll wieder auf 16:9 geändert werden.

 

Laut Tuxboxwiki werden, sofern vorhanden, beim Wechsel auf ein anderes Bildformat die Skrippte

/var/tuxbox/config/16:9.start bzw. /var/tuxbox/config/4:3.start ausgeführt,

 

mir fehlt aber leider der richtige Befehl um das Format zu ändern?

 

 

Wer kann helfen?

 

 

Vielen Dank und Schöne Grüße

Xander

Edited by Xander
Link to comment
Share on other sites

Hallo SnowHead,

 

tut sie leider nicht.

 

Mit dem was Du schreibst hat das Bild rechts und links einen schwarzen Balken. Es ist oben und unten etwas abgeschnitten und verzerrungsfrei.

 

 

Ich hätte aber gerne das Bild auf Bildformat 14:9 und dann Pan&Scan.

Damit ist oben und unten genauso viel abgeschnitten, aber der Rest wird linear in die breite gezogen weil mein TV das 14:9 nicht von einem 16:9 Signal unterscheidet.

 

Für mich ist das der angenehmste Kompromiss um 4:3 zu gucken. Oben und unten etwas abgeschnitten und dann etwas horizontal aufgezogen.

 

 

 

Gruß Xander

Link to comment
Share on other sites

Mit dem was Du schreibst hat das Bild rechts und links einen schwarzen Balken. Es ist oben und unten etwas abgeschnitten und verzerrungsfrei.

Ja, so ist es, das entspricht dann auch 14:9.
Damit ist oben und unten genauso viel abgeschnitten, aber der Rest wird linear in die breite gezogen
Das hat aber nichts mit 14:9 zu tun, das wird die Box auch nicht können.
Link to comment
Share on other sites

sollte man erwähnen wie du den Fernseher angeschlossen hast, am SCART oder HDMI? was für SCART mal galt muss nicht unbedingt für HDMI gelten, beim SCART wurde Pin8 ausgewertet (je nachdem wieviel da Spannung anliegt, z.B. 5-8V für 16:9), wie das bei HDMI funktioniert kann ich dir nicht sagen

 

mrvica

Link to comment
Share on other sites

Oh ja,

HDMI. Hatte das irgendwie als selbstverständlich angenommen.

 

Also, mein Problem -oder Anliegen- ist, dass ich unterschiedliche Einstellungen im Menü "Einstellungen/Video" aktivieren will, je nach Bildformat des empfangenen Senders. Dafür bräuchte ich Befehle, die ich in ein Script packen kann.

 

 

Gruß und Danke an Alle

 

Xander

 

 

 

EDIT:

 

Ich bin einen ganzen Teil weiter!

Leider werden wohl im Coolstream-Neutrino die 4:3.start und 16:9.start nichtmehr ausgelesen, so dass ich noch eine kleine abfrageschleife bastel muss. Folgendes Skript funktioniert aber schon auf der Konsole:

 

#!/bin/sh
f43="4:3"
f169="16:9"
rm /tmp/format
wget -O /tmp/format http://127.0.0.1/control/videoformat
export aspekt=`cat /tmp/format |awk -F ":" '{print $aspekt}'`
if [ "$aspekt" = "$f43" ]
   then wget http://127.0.0.1/control/videoformat?14:9
 elif [ "$aspekt" = "$f169" ]
   then wget http://127.0.0.1/control/videoformat?16:9
 else wget http://127.0.0.1/control/videoformat?16:9
fi

 

Ich greife dabei auf die ControlAPI der Box zurück siehe hier .

 

Soweit so gut für heute.

 

Gruß Xander

Edited by Xander
Link to comment
Share on other sites

So Leute,

läuft!

 

Datei: autozoom.sh

#!/bin/sh
# Dieses Skript prüft alle 20s ob ein 4:3 Sender eingeschaltet ist. Wenn ja, wird auf 14:9 verzerrt, damit weniger abgeschnitten wird.


#das Skript wird beendet, wenn in /tmp eine Datei Namens autozoom.cfg mit dem Inhalt "stop" liegt
rm /tmp/autozoom.cfg
aspektalt="16:9"

export input=`cat /tmp/autozoom.cfg |awk '{print $input}'` 


until [ "$input" = "stop" ]
do


# Ablesen des Bildformats, wenn 4:3 wird es auf 14:9 geändert
wget -O /tmp/format http://127.0.0.1/control/videoformat
export aspekt=`cat /tmp/format |awk '{print $aspekt}'`


if [ "$aspekt" = "4:3" ] && [ "$aspektalt" != "4:3" ]
	#Schritt1: Format auf 14:9 ändern
	then 	wget http://127.0.0.1/control/videoformat?14:9
	#Schritt2: speichern, dass schon gezoomt wurde. Dann wird oben nicht sinloos Befehl zum zoomen gegeben
	aspektalt="4:3"
	#Schritt3: SenderID auslesen und in der Variable sid speichern.
	wget -O /tmp/autozoomsid http://127.0.0.1/control/zapto
	export sid=`cat /tmp/autozoomsid |awk '{print $sid}'`
	echo "4:3 Sender erkannt, ID: $sid. Zoom wurde ausgeführt!"
	echo "20s Pause"
	sleep 20
	fi




# Wenn auf einen 16:9 Sender zurück gezapt wird wird aspekt alt zurückgesetzt.
# Damit wird oben geregelt, dass die Umschaltung auf 14:9 nur geschieht, wenn nötig
if [ "$aspekt" = "16:9" ] && [ "$aspektalt" != "16:9" ]
then 	aspektalt="16:9"
	#SenderID auslesen und in der Variable sid speichern.
	wget -O /tmp/autozoomsid http://127.0.0.1/control/zapto
	export sid=`cat /tmp/autozoomsid |awk '{print $sid}'`
	echo "16:9 Sender erkannt, ID: $sid ."
	echo "20s Pause"
	sleep 20
fi



# Test ob umgeschaltet wurde, wenn ja wird aspektalt zerstört, damit auch beim zappen von 4:3 auf 4:3 der Zoom ausgeführt wird.
wget -O /tmp/autozoomsid http://127.0.0.1/control/zapto
export sidtest=`cat /tmp/autozoomsid |awk '{print $sidtest}'`
if [ "$sid" = "$sidtest" ]
then
echo "Sender kostant...."
echo "20s Pause"
sleep 20
else
aspektalt="egal"
echo "Sender wurde umgeschaltet! neue ID: $sidtest "
fi







export input=`cat /tmp/autozoom.cfg |awk '{print $input}'` 

done

rm /tmp/format
rm /tmp/autozoom.cfg
echo "autozoom beendet"

exit 0 

 

ToDo:

- automatisch beim Start der Box mit starten lassen realisiert per init.d. siehe z.B. beim Uhr-Plugin

- graphisches Menü, welches das Skript über die Datei /tmp/autozoom.cfg beenden kann und bei Bedarf neu startet

 

 

Gruß an alle

Xander

Edited by Xander
Link to comment
Share on other sites

  • 8 months later...
  • 1 month later...

Hi,

 

das plugin funktioniert in den kw-Images 1.4 und 1.5 leider nur mit einem Trick.

 

Da den neueren Images de Befehl awk unbekannt ist, den ich aber im Skript unbedingt benötige ist folgendes wokaround notwendig:

 

1) hier das root-fs für das 1.3er Image herunterladen und aus dem Archiv in /bin die busybox extrahieren.

2) diese busibox z.B. in busyboxkw13 umbenennen und in den Ordner /var/bin auf die cooly schieben

3) Ausführbar machen

chmod 755 /var/bin/busyboxkw13

4) symlink awk in /bin erzeugen

ln -s /var/bin/busyboxkw13 /bin/awk

 

 

Gruß Xander

Edited by Xander
Link to comment
Share on other sites

  • Admin

@Xander

 

Hmm, das awk wird für diesen Zweck aber nicht wirklich gebraucht. Statt des

ganzen Zauberns mit Temporärfile, "export" und "awk" lassen sich die Variablen

doch viel einfacher belegen:

 

...
aspect=`wget -q -O- http://127.0.0.1/control/videoformat`
...
sid=`wget -q -O- http://127.0.0.1/control/zapto`
...
usw.

Link to comment
Share on other sites

Hallo!

 

@SnowHead: Hattest recht, geht ohne awk viel schöner. ;)

 

@Alle

 

Unten stehend die Version 2.0 die ohne Gebastel im aktuellen Image laufen sollte.

Neu: OSD Meldungen, Pausemodus

 

Es muss eine leere Datei /var/tuxbox/config/autozoom.cfg mit Rechten 555 vorhanden sein.

Der Inhalt dieser Datei steuert das Skript.

Passende Flexmenü-Einträge erstelle ich im Laufe der Woche mal.

 

 

#!/bin/sh

# V2.0
# Dieses Skript prüft alle 20s ob ein 4:3 Sender eingeschaltet ist. Wenn ja, wird auf 14:9 verzerrt, damit weniger beim Pan&Scan abgeschnitten wird.

# Die Datei /var/tuxbox/config/autozoom.cfg übergit folgende Befehle an das Skript: stop, pause, start(=Normalbetrieb)
# Das Skript kann darüber mit Befehlen gefüttert werden. Z.B. aus dem Flexmenü
input=`cat /var/tuxbox/config/autozoom.cfg`

# sollte in /var/tuxbox/config/autozoom.cfg noch stop stehen, wird die Datei mit start überschreiben
if [ "$input" = "stop" ]
then
echo start > /var/tuxbox/config/autozoom.cfg
fi


aspektalt="16:9"

wget http://127.0.0.1/control/message?popup=autozoom-mode%20erfolgreich%20gestartet


#Hier startet die Schleife, bis über die /var/tuxbox/config/autozoom.cfg der befehl stop erfolgt
until [ "$input" = "stop" ]
do


# Ablesen des Bildformats, wenn 4:3 wird es auf 14:9 geändert
aspekt=`wget -q -O- http://127.0.0.1/control/videoformat`


if [ "$aspekt" = "4:3" ] && [ "$aspektalt" != "4:3" ]
	then
	#Schritt1: Format auf 14:9 ändern
	wget http://127.0.0.1/control/videoformat?14:9
	#Schritt2: speichern, dass schon gezoomt wurde. Dann wird oben nicht sinloos Befehl zum zoomen gegeben
	aspektalt="4:3"
	#Schritt3: SenderID auslesen und in der Variable sid speichern.
	sid=`wget -q -O- http://127.0.0.1/control/zapto`
	echo "4:3 Sender erkannt, ID: $sid. Zoom wurde ausgeführt!"
	echo "20s Pause"
	sleep 20
	fi




# Wenn auf einen 16:9 Sender zurück gezapt wird wird aspekt alt zurückgesetzt.
# Damit wird oben geregelt, dass die Umschaltung auf 14:9 nur geschieht, wenn nötig
if [ "$aspekt" = "16:9" ] && [ "$aspektalt" != "16:9" ]
then 	aspektalt="16:9"
	#SenderID auslesen und in der Variable sid speichern.
	sid=`wget -q -O- http://127.0.0.1/control/zapto`
	echo "16:9 Sender erkannt, ID: $sid ."
	echo "20s Pause"
	sleep 20
fi



# Test ob umgeschaltet wurde, wenn ja wird aspektalt zerstört, damit auch beim zappen von 4:3 auf 4:3 der Zoom ausgeführt wird.
sidtest=`wget -q -O- http://127.0.0.1/control/zapto`
if [ "$sid" = "$sidtest" ]
then
echo "Sender kostant...."
echo "20s Pause"
sleep 20
else
aspektalt="egal"
echo "Sender wurde umgeschaltet! neue ID: $sidtest "
fi



# Hier wird das Exit-command abgeprüft
input=`cat /var/tuxbox/config/autozoom.cfg`

# Pausenmodus
if [ "$input" = "pause" ]
then
# im Pausenmodus wird der Bildschirm auf 16:9 gesetzt
wget http://127.0.0.1/control/videoformat?16:9
wget http://127.0.0.1/control/message?popup=autozoom-mode%20pausiert	
echo Pausenmodus
aspektalt="egal"
# und dann geschlafen, bis der Befehl Pause zurückgenommen wird
until [ "$input" != "pause" ]
do
input=`cat /var/tuxbox/config/autozoom.cfg`
sleep 20
done
fi



done

echo start > /var/tuxbox/config/autozoom.cfg 
wget http://127.0.0.1/control/message?popup=autozoom-mode%20erfolgreich%20beendet
echo "autozoom beendet"

exit 0

Edited by Xander
Link to comment
Share on other sites

  • Admin

@Xander

 

Ich habe das Script noch mal entschärft und angepasst:

 

1. eine ganz üble Sache ist der Aufruf von "wget" ohne Target. In diesem Fall wird er letzte Teil der aufgerufenen

URL als Dateiname genommen, diese Datei im aktuellen Verzeichnis angelegt und das Ergebnis des Aufrufs

in diese Datei geschrieben. Das ist vor allem in Schleifen extrem schlecht für den Flash der Box und müllt das

Filesystem mit vielen kryptischen Dateien zu. Wenn das Ergebnis eines wget-Aufrufes nicht als Datei oder

Variable benötigt wird, ist zwingend das Null-Device als Ziel anzugeben um die oben beschriebenen Probleme

zu vermeiden ( -O /dev/null ).

 

2. User, welche einen Proxy verwenden, bekommen Probleme, wenn beim Aufruf boxinterner Adressen keine

Anweisung enthalten ist, den Proxy zu umgehen ( -Y off ). In diesem Fall wird die interne Adresse nicht erreicht.

Also für interne Aufrufe immer "-Y off" verwenden.

 

#!/bin/sh

# V2.1
# Dieses Skript prüft alle 20s ob ein 4:3 Sender eingeschaltet ist. Wenn ja, wird auf 14:9 verzerrt, damit weniger beim Pan&Scan abgeschnitten wird.

# Die Datei /var/tuxbox/config/autozoom.cfg übergit folgende Befehle an das Skript: stop, pause, start(=Normalbetrieb)
# Das Skript kann darüber mit Befehlen gefüttert werden. Z.B. aus dem Flexmenü
input=`cat /var/tuxbox/config/autozoom.cfg`

   	# sollte in /var/tuxbox/config/autozoom.cfg noch stop stehen, wird die Datei mit start überschreiben
   	if [ "$input" = "stop" ]
   	then
   	echo start > /var/tuxbox/config/autozoom.cfg
   	fi


aspektalt="16:9"

wget -Y off -q -O /dev/null http://127.0.0.1/control/message?popup=autozoom-mode%20erfolgreich%20gestartet


#Hier startet die Schleife, bis über die /var/tuxbox/config/autozoom.cfg der befehl stop erfolgt
until [ "$input" = "stop" ]
do


# Ablesen des Bildformats, wenn 4:3 wird es auf 14:9 geändert
aspekt=`wget -Y off -q -O- http://127.0.0.1/control/videoformat`


if [ "$aspekt" = "4:3" ] && [ "$aspektalt" != "4:3" ]
           	then
           	#Schritt1: Format auf 14:9 ändern
           	wget -Y off -q -O /dev/null http://127.0.0.1/control/videoformat?14:9
           	#Schritt2: speichern, dass schon gezoomt wurde. Dann wird oben nicht sinloos Befehl zum zoomen gegeben
           	aspektalt="4:3"
           	#Schritt3: SenderID auslesen und in der Variable sid speichern.
           	sid=`wget -Y off -q -O- http://127.0.0.1/control/zapto`
           	echo "4:3 Sender erkannt, ID: $sid. Zoom wurde ausgeführt!"
           	echo "20s Pause"
           	sleep 20
           	fi




# Wenn auf einen 16:9 Sender zurück gezapt wird wird aspekt alt zurückgesetzt.
# Damit wird oben geregelt, dass die Umschaltung auf 14:9 nur geschieht, wenn nötig
if [ "$aspekt" = "16:9" ] && [ "$aspektalt" != "16:9" ]
   	then	aspektalt="16:9"
           	#SenderID auslesen und in der Variable sid speichern.
           	sid=`wget -Y off -q -O- http://127.0.0.1/control/zapto`
           	echo "16:9 Sender erkannt, ID: $sid ."
           	echo "20s Pause"
           	sleep 20
   	fi



# Test ob umgeschaltet wurde, wenn ja wird aspektalt zerstört, damit auch beim zappen von 4:3 auf 4:3 der Zoom ausgeführt wird.
sidtest=`wget -Y off -q -O- http://127.0.0.1/control/zapto`
if [ "$sid" = "$sidtest" ]
   	then
   	echo "Sender kostant...."
   	echo "20s Pause"
   	sleep 20
   	else
   	aspektalt="egal"
   	echo "Sender wurde umgeschaltet! neue ID: $sidtest "
   	fi



# Hier wird das Exit-command abgeprüft
input=`cat /var/tuxbox/config/autozoom.cfg`

# Pausenmodus
if [ "$input" = "pause" ]
then
   	# im Pausenmodus wird der Bildschirm auf 16:9 gesetzt
   	wget -Y off -q -O /dev/null http://127.0.0.1/control/videoformat?16:9
   	wget -Y off -q -O /dev/null http://127.0.0.1/control/message?popup=autozoom-mode%20pausiert	
   	echo Pausenmodus
   	aspektalt="egal"
   	# und dann geschlafen, bis der Befehl Pause zurückgenommen wird
   	until [ "$input" != "pause" ]
   	do
   	input=`cat /var/tuxbox/config/autozoom.cfg`
   	sleep 20
   	done
fi



done

echo start > /var/tuxbox/config/autozoom.cfg 
wget -Y off -q -O /dev/null http://127.0.0.1/control/message?popup=autozoom-mode%20erfolgreich%20beendet
echo "autozoom beendet"

exit 0

Link to comment
Share on other sites

Besten Dank für die Mühen!

 

Hier noch die passenden Einträge in der shellexec.conf

 

MENU=autozoom Men~u
	ACTION=starten,/var/plugins/autozoom.sh
	ACTION=beenden,echo stop > /var/tuxbox/config/autozoom.cfg
	ACTION=Pause,echo pause > /var/tuxbox/config/autozoom.cfg
	ACTION=Pause beenden,echo start > /var/tuxbox/config/autozoom.cfg
ENDMENU

 

Gruß Xander

Link to comment
Share on other sites

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...