View previous topic :: View next topic |
Author |
Message |
bassman_fr Apprentice
![Apprentice Apprentice](/images/ranks/rank_rect_2.gif)
![](images/avatars/518940550413d74f1a72f0.jpg)
Joined: 30 Mar 2004 Posts: 201 Location: France Lyon
|
Posted: Thu Sep 16, 2004 8:39 pm Post subject: [BASH] aide sur script de lancement pour gmplayer |
|
|
alors je vous explique en fait je souhaite créer un script bash exécutable à mettre dans mon /usr/bin, nommé gmplayerTV, qui lance gmplayer en plein écran sur ma tv, et donc qui prends en paramètres, le nom du film et EVENTUELLEMENT un fichier sous-titres. Voici donc où j'en suis :
Code: | #!/bin/bash
if [$2 = NULL]
then
DISPLAY=:0.1 gmplayer -fs -vo xv $1
else
DISPLAY=:0.1 gmplayer -fs -vo xv -sub $2 -font /usr/share/fonts/corefonts/verdana.ttf $1
fi |
mon problème réside dans le if, en fait je souhaite tester si il y a ou non un paramètre $2 et le test en l'état actuel ne marche pas.
sinon j'attends vos idées et suggestions d'améliorations !
P.S. pour info j'ai customizé mon xorg.conf d'après un threads du forum anglais pour avoir un deuxieme bureau sur la tv (plus de problemes de resolution) donc si ca intéresse quelqu'un je peux publier mon xorg.conf |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
jpwalker Guru
![Guru Guru](/images/ranks/rank_rect_3.gif)
![](images/avatars/214031345241c049f42908d.png)
Joined: 12 Jul 2004 Posts: 503 Location: Annecy - 74 - France - In Tartiflette We Trust ;-)
|
Posted: Fri Sep 17, 2004 8:50 am Post subject: |
|
|
Salut,
Je suis une vrai daube en Bash, donc pour ton pb ça va être dur ! Par contre, ton histoire de bureau m'interesse énormément : peux-tu expliquer en quoi ça consiste exactement et quels problèmes ça résouds (j'ai pas bien saisi le truc) ?
Et oui pour le xorg.conf (partie tvout aussi)
Merci ![Smile :)](images/smiles/icon_smile.gif) _________________ JPW@lker
Ride & Enjoy
![Wink ;-)](images/smiles/icon_wink.gif) |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
Sleeper l33t
![l33t l33t](/images/ranks/rank_rect_4.gif)
![](images/avatars/gallery/Marvel/movie_x-men_rogue_2.gif)
Joined: 12 Nov 2002 Posts: 667
|
Posted: Fri Sep 17, 2004 9:24 am Post subject: |
|
|
Code: |
#!/bin/bash
[[ $# -eq 2 ]] && SUBTITLE="-sub $2"
DISPLAY=:0.1 gmplayer -fs -vo xv ${SUBTITLE} -font /usr/share/fonts/corefonts/verdana.ttf $1
|
|
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
sireyessire Advocate
![Advocate Advocate](/images/ranks/rank-G-1-advocate.gif)
![](images/avatars/184146537040140c2d83e95.jpg)
Joined: 20 Mar 2003 Posts: 2991 Location: back in Paris, France
|
Posted: Fri Sep 17, 2004 9:29 am Post subject: |
|
|
sinon
Code: | #!/bin/bash
export DISPLAY=0.1;
if ["$2" = "" ]
then
gmplayer -fs -vo xv $1
else
gmplayer -fs -vo xv -sub $2 -font /usr/share/fonts/corefonts/verdana.ttf $1
fi |
j'aime bien l'idée du export mais c'est accessoire . Le truc c'est que je crois pas qu'il y a de NULL pour des string c'est "". _________________ I never think of the future. It comes soon enough.
Albert Einstein
Try simpler first
Shockley |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
Beber Guru
![Guru Guru](/images/ranks/rank_rect_3.gif)
Joined: 10 Apr 2004 Posts: 300 Location: Kemper, Lutèce
|
Posted: Fri Sep 17, 2004 9:42 am Post subject: |
|
|
sireyessire wrote: | Le truc c'est que je crois pas qu'il y a de NULL pour des string c'est "". |
man bash wrote: | Code: | -z string
True if the length of string is zero. |
|
Je pense que la solution de sleeper est la meilleure |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
sireyessire Advocate
![Advocate Advocate](/images/ranks/rank-G-1-advocate.gif)
![](images/avatars/184146537040140c2d83e95.jpg)
Joined: 20 Mar 2003 Posts: 2991 Location: back in Paris, France
|
Posted: Fri Sep 17, 2004 9:58 am Post subject: |
|
|
cool, je dis pas le contraire mais NULL n'est pas un pointeur vers la string vide, c'est tout. il y a le -z var ou = "".
c'est vrai qu'elle est mieux sa solution, plus joli, mais je ne faisais que debugger pas ré-écrire, et comme ça on a l'explication. ![Razz :P](images/smiles/icon_razz.gif) _________________ I never think of the future. It comes soon enough.
Albert Einstein
Try simpler first
Shockley |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
scout Veteran
![Veteran Veteran](/images/ranks/rank_rect_5_vet.gif)
![](images/avatars/12983883544208161274b34.png)
Joined: 08 Mar 2003 Posts: 1991 Location: France, Paris en Semaine / Metz le W-E
|
Posted: Fri Sep 17, 2004 12:05 pm Post subject: |
|
|
Je me permet de faire un petit rappel sur mplayer: si le sous-titre porte le même nom que le fichier vidéo, alors le sous titre est activé automatiquement, donc moi je renommerais les sous-titres pour qu'ils soient là où mplayer les attend, et mplayer les charge si ils sont là ou pas, pas la peine de faire de script.
bon alors là vous allez me dire: "Oui mais moi je suis fort en anglais et je ne veux pas toujours du sous-titre donc je lui donne un nom différent et je n'active les sous-titres qu'avec la deuxième option; parceque ton truc ça les active tout le temps si ils sont là"
et là je réponds: "pour désactiver les sous-titres tu appuyes sur v dans mplayer, et je te rapelle que de taper sur une touche c'est plus court que d'indiquer le nom du sous-titre en ligne de commande, donc tu y gagnes à moins que tes fichiers de sous titre fassent tous une lettre (mais dans ce cas c'est plutôt le bordel pour se souvenir quel sous-titre correspond à quel film ... donc je déconseille cette approche)"
Bon alors après si on aime bien les scripts on peux faire la chose suivante, un script qui si il n'a qu'un seul argument lance mplayer, et si il a 2 argument renomme le deuxième (le sous-titre) de manière à ce qu'il corresponde bien au nom de la vidéo, et lance mplayer. et après lors du deuxième visionnage du film, hop plus besoin d'indiquer le 2eme argument.
Donc en se basant sur ce qu'a fait Sleeper (et oui, désolé sireyessire )
Code: | #!/bin/bash
[[ $# -eq 2 ]] && mv "$2" "`echo "$1" | egrep -o ".*\."``echo "$2" | egrep -o "[^\.]*$"`"
DISPLAY=:0.1 gmplayer -fs -vo xv -font /usr/share/fonts/corefonts/verdana.ttf $1 |
Pour que ça marche il faut qu'il y ait au moins un point dans le nom du sous-titre, pour signaler l'extension, et un point dans le nom de la vidéo, toujours pour l'extension. Maintenant il peux y avoir plusieurs points dans le nom de la vidéo ou du sous-titre ça marche quand même.
euh désolé mais je ne suis pas un gros maître du bash donc je pense qu'il y a plus simple pour renommer le fichier, y'a juste que je ne connais pas la méthode
si quelqu'un sait comment faire sans faire le barbare avec des egrep comme moi, je suis preneur. Enfin en gros je trouve avoir fait un truc assez sale, alors expliquez moi comment faire plus propre _________________ http://petition.eurolinux.org/ - Petition against ePatents
L'essence de la finesse |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
bassman_fr Apprentice
![Apprentice Apprentice](/images/ranks/rank_rect_2.gif)
![](images/avatars/518940550413d74f1a72f0.jpg)
Joined: 30 Mar 2004 Posts: 201 Location: France Lyon
|
Posted: Sat Sep 18, 2004 4:56 pm Post subject: |
|
|
Merci pour toutes ces réponses qui ont éclairées ma lanterne
scout wrote: | moi je renommerais les sous-titres pour qu'ils soient là où mplayer les attend, et mplayer les charge si ils sont là ou pas, pas la peine de faire de script.e |
En fait l'intérêt principal du script pour moi c'est de lancer mplayer sur ma tv (le DISPLAY :0.1) et en fullscreen (oui je suis une feignasse :p).
Mais pour les sous-titres tu as raison mieux vaut les renommer c'est plus simple.
jpwalker wrote: | par contre, ton histoire de bureau m'interesse énormément : peux-tu expliquer en quoi ça consiste exactement et quels problèmes ça résouds (j'ai pas bien saisi le truc) ? |
En fait mon problème était le suivant : avec ma carte nvidia, la sortie tv marchait très bien, mais mon bureau sur le moniteur d'ordinateur est en résolution 1280x1024. Or la tv ne supporte q'une résolution maximale de 1024x768. Donc en fait lorsque j'activais la sortie tv de facon classique, je me retrouvais avec un bureau qui n'apparais pas entièrement sur la tv. Donc j'ai modifié selon l'idée d'un posteur du forum anglais, mon xorg.conf pour complètement dissocier le bureau de la tv et le bureau du moniteur. voilà c'est tout bête mais moi je trouve ca sympa, et pour lancer une appli sur la tv, il me suffit de preceder la commande de DISPLAY :0.1
je te posterais mon xorg.conf en rentrant chez moi dimanche soir. |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
bassman_fr Apprentice
![Apprentice Apprentice](/images/ranks/rank_rect_2.gif)
![](images/avatars/518940550413d74f1a72f0.jpg)
Joined: 30 Mar 2004 Posts: 201 Location: France Lyon
|
Posted: Sun Sep 19, 2004 6:38 pm Post subject: |
|
|
voilà :
Code: | Section "ServerLayout"
Identifier "Simple Layout"
Screen 0 "Screen[0]"
Screen 1 "Screen[1]" RightOf "Screen[0]"
InputDevice "Mouse1" "CorePointer"
InputDevice "Keyboard1" "CoreKeyboard"
EndSection
Section "Files"
RgbPath "/usr/X11R6/lib/X11/rgb"
FontPath "/usr/share/fonts/misc/"
FontPath "/usr/share/fonts/TTF/"
FontPath "/usr/share/fonts/Speedo/"
FontPath "/usr/share/fonts/Type1/"
FontPath "/usr/share/fonts/CID/"
FontPath "/usr/share/fonts/75dpi/"
FontPath "/usr/share/fonts/100dpi/"
FontPath "/usr/share/fonts/local/"
EndSection
Section "ServerFlags"
Option "DPMS" "off"
Option "BlankTime" "0"
Option "StandbyTime" "0"
Option "OffTime" "0"
EndSection
Section "Module"
Load "glx"
Load "dbe"
SubSection "extmod"
Option "omit xfree86-dga"
EndSubSection
Load "type1"
Load "speedo"
Load "freetype"
EndSection
Section "InputDevice"
Identifier "Keyboard1"
Driver "kbd"
Option "AutoRepeat" "500 30"
Option "XkbModel" "microsoftprooem"
Option "XkbLayout" "fr"
EndSection
Section "InputDevice"
Identifier "Mouse1"
Driver "mouse"
Option "Protocol" "ImPS/2"
Option "Device" "/dev/mouse"
Option "Buttons" "5"
Option "ZAxisMapping" "4 5"
EndSection
Section "Monitor"
Identifier "Monitor[0]"
HorizSync 31.5 - 80.5
VertRefresh 60.0 - 75.0
Option "DPMS" "off"
EndSection
Section "Monitor"
Identifier "Monitor[1]" #TV
HorizSync 60
VertRefresh 30-150
EndSection
Section "Device"
Identifier "Standard VGA"
Driver "vga"
VendorName "Unknown"
BoardName "Unknown"
EndSection
Section "Device"
Identifier "Device[0]"
Driver "nvidia"
Option "NvAGP" "2"
Option "HWCursor" "true"
Option "CursorShadow" "true"
Option "CursorShadowAlpha" "75"
Option "CursorShadowXOffset" "8"
Option "CursorShadowYOffset" "4"
Option "RenderAccel" "true"
Option "NoLogo" "true"
#Option "TwinView"
# Option "ConnectedMonitor" "CRT, TV"
# Option "SecondMonitorHorizSync" "30-50"
# Option "SecondMonitorVertRefresh" "60"
# Option "TwinViewOrientation" "Clone
# Option "TVStandard" "PAL-N"
# Option "MetaModes" "1280x1024, NULL; 1280x1024, 1024x768@1280x1024"
# Option "TVOutFormat" "COMPOSITE"
EndSection
Section "Device"
Driver "nvidia"
Identifier "Device[1]"
Screen 1
Option "TVOutFormat" "Composite" #or S-VIDEO etc
Option "TVStandard" "PAL-G" #or NTSC etc
Option "ConnectedMonitor" "Monitor[1]"
BusID "PCI:1:0:0" #adjust using 'lspci' or cat /proc/pci
EndSection
Section "Screen"
Identifier "Screen[0]"
Device "Device[0]"
Monitor "Monitor[0]"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 8
Modes "1280x1024" "1024x768" "800x600"
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 16
Modes "1280x1024" "1024x768" "800x600"
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 24
Modes "1280x1024" "1024x768" "800x600"
EndSubSection
EndSection
Section "Screen"
Device "Device[1]"
Identifier "Screen[1]"
Monitor "Monitor[1]"
DefaultDepth 24
SubSection "Display"
Depth 24
Modes "1024x768"
EndSubSection
EndSection
Section "DRI"
Group 0
EndSection
|
|
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
|