Portál AbcLinuxu, 23. května 2024 07:02
Užitečné skripty pochybné kvality 1: o mplayeru
26.2.2007 21:16
| Přečteno: 1954×
| Linux
|
Užitečné skripty pochybné kvality 1: mplayer s titulky a bez nich
V tomto volném seriálu chci ukázat pár skriptů, které jsem si napsal
pro ulehčení práce. Nejsou asi ukázkou mistrovské kousky, pokud jse o
kvalitu kódu, ale někdy se můžou hodit. Původně nebyly určeny ke
zveřejnění, takže můžou obsahovat nějakou chybičku nebo nešikovný
obrat. Pokud máte k tématu nějakou radu, tak se můžete vyřádit v
diskusi, pokud mi chcete jenom sdělit, jak to mám strašně blbě
napsané, tak se nenamáhejte.
Všechno mám odzkoušené na Debianu, v jiných distribucích se postup
může mailnko lišit
Abstrakt
Při používání programu mplayer jsem si oblíbil možnost přidat
pod přehrávaný film černý pruh, do kterého se promítají
titulky. Na druhou stranu jsou i filmy, ke kterým titulky nepotřebuji
(např. ty české). Potom je černý pruh dole spíš na závadu, protože se
tím může zmenšit velikost promítaného obrazu. Napsal jsem si tedy
skriptík, který zkusí najít soubor s titulky a sám nastaví správné
parametry pro mplayer.
Samotný skript
Skript, který jsem neotřele nazval mplayerproxy, si zjistí,
jestli k souboru s videem existují titulky a podle toho nastaví
parametry pro mplayer a přihodí mu zbytek parametrů, které
mplayerproxy dostal. Skript vypadá nějak takto:
Soubor
~/bin/mplayerproxy
- #!/bin/sh
- echo mplayerproxy
- options=""
- eval filename=\$$# #get last parameter
- base=`basename "$filename" .avi` #filename without suffix,
- # the same, but the suffix can be not only .avi
- #base=`echo $filename | sed -e "s/\(.*\)\.[^.]*/\1/"`
- #look for subtitles
- if [ \( -e "${base}.sub" \) -o \( -e "${base}.srt" \) ]
- then #subtitle file exists
- options='-vop expand=0:-120:0:20'
- else
- options='-vop expand=0:0:0:0'
- fi
- #copy the parameters from commandline
- other=""
- while [ "$#" -gt 1 ] #the last parameter is a filename and
- do # it will be added separatelly
- other="$other $1"
- shift
- done
- #run mplayer
- mplayer $options $other "$filename"
Lehké vysvětlení:
- řádek 4: poslední parametr je název souboru
- řádek 5: zjistí se název bez přípony, uvozovky jsou nutné kvůli
souborům s mezerou v názvu (dále budu jen uvádět jen heslo uvozovkové peklo)
- řádky 9--14: hledá se soubor s titulky (přípona sub nebo
srt) a případně se nastaví parametry, aby se
zobrazil černý pruh.
- řádky 16--21: ostatní parametry z příkazového řádku se nasypou do
řetězce. Přitom se tiše předpokládá, že žádný z nich
neobsahuje mezeru. Nevidím v tom problém, stejně většinou
jediným parametrem bude jméno souboru.
- řádek 23: volá se mplayer se všemi zadanými parametry a jménem
souboru (opět uvozovkové peklo).
Integrace v systému
Aby se skript volal automaticky po kliknutí ve file manageru, je to
potřeba systému nějak oznámit.
Přihnul jsem soubor s nastavením mime pro mplayer. Vytvoříme
nový soubor s následujícím obsahem:
Soubor
/usr/lib/mime/packages/mplayerproxy
video/x-msvideo; mplayerproxy %s
video/mpeg; mplayerproxy %s
video/quicktime; mplayerproxy %s
video/x-ms-asf; mplayerproxy %s
video/x-ms-wmv; mplayerproxy %s
Na závěr je potřeba zajistit, aby se systém díval dřív na
mplayerproxy než na mplayer. Udělá se to to tak, že
do souboru /etc/mailcap.order se přidá položka
mplayerproxy nad mplayer:
Soubor
/etc/mailcap.order
...
mplayerproxy:*/*
...
mplayer:*/*
...
Na závěr se musí spustit update-mime, aby se přegeneroval
soubor /etc/mailcap
Místa k vylepšení, otázky
- Skript nemusí jenom nastavovat parametry pro mplayer, může i
spuštět úplně jiný přehrávač, dát vařit vodu na čaj, případně
udělat v mikrovlnce popcorn. Napadá vás nějaké vylepšení (očuchat
si rozměry filmu a monitoru, kompresi apod.)?
- Jaké jsou další přípony pro soubory s titulky?
Anketa
Tiskni
Sdílej:
Komentáře
Vložit další komentář
26.2.2007 21:25
repli
Re: Užitečné skripty pochybné kvality 1: o mplayeru
26.2.2007 21:27
ZS-Man | skóre: 31
| blog:
B26
Re: Užitečné skripty pochybné kvality 1: o mplayeru
26.2.2007 21:33
qiRzT | skóre: 14
| blog:
U_Marvina
Re: Užitečné skripty pochybné kvality 1: o mplayeru
27.2.2007 12:31
petr_p | skóre: 59
| blog:
pb
Re: Užitečné skripty pochybné kvality 1: o mplayeru
Založit nové vlákno •
Nahoru
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.