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 | Výběrový blog

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
  1. #!/bin/sh
  2. echo mplayerproxy
  3. options=""
  4. eval filename=\$$# #get last parameter
  5. base=`basename "$filename" .avi` #filename without suffix,
  6. # the same, but the suffix can be not only .avi
  7. #base=`echo $filename | sed -e "s/\(.*\)\.[^.]*/\1/"`
  8. #look for subtitles
  9. if [ \( -e "${base}.sub" \) -o \( -e "${base}.srt" \) ]
  10. then #subtitle file exists
  11. options='-vop expand=0:-120:0:20'
  12. else
  13. options='-vop expand=0:0:0:0'
  14. fi
  15. #copy the parameters from commandline
  16. other=""
  17. while [ "$#" -gt 1 ] #the last parameter is a filename and
  18. do # it will be added separatelly
  19. other="$other $1"
  20. shift
  21. done
  22. #run mplayer
  23. mplayer $options $other "$filename"
Lehké vysvětlení:

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

  1. 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.)?
  2. Jaké jsou další přípony pro soubory s titulky?
       

Hodnocení: 100 %

        špatnédobré        

Anketa

Jak zobrazujete titulky při přehrávání v mplayeru?
 (61 %)
 (31 %)
 (3 %)
 (4 %)
Celkem 70 hlasů

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

26.2.2007 21:25 repli
Rozbalit Rozbalit vše Re: Užitečné skripty pochybné kvality 1: o mplayeru
Odpovědět | Sbalit | Link | Blokovat | Admin
chybí mi tu možnost na rozhraní! mám je přesně na černém pruhu dole a obrazem.
26.2.2007 21:27 ZS-Man | skóre: 31 | blog: B26
Rozbalit Rozbalit vše Re: Užitečné skripty pochybné kvality 1: o mplayeru
Odpovědět | Sbalit | Link | Blokovat | Admin
staci -vo gl a titulky jsou uplne dole automaticky.
26.2.2007 22:21 disorder | blog: weblog
Rozbalit Rozbalit vše Re: Užitečné skripty pochybné kvality 1: o mplayeru
-vo sdl
26.2.2007 23:38 ZS-Man | skóre: 31 | blog: B26
Rozbalit Rozbalit vše Re: Užitečné skripty pochybné kvality 1: o mplayeru
nebyl nejaky problem s SDL ze se to nedalo pouzivat zaroven s GUI mplayeru? Mozna uz je to vyresene. Ja mam -vo gl a titulky jsou u sirokouhleho filmu pekne dole v cernym pruhu (kdyz jsou vetsi tak samozrejme zasahuji do obrazu)
27.2.2007 07:26 Christof | skóre: 22 | Havířov
Rozbalit Rozbalit vše Re: Užitečné skripty pochybné kvality 1: o mplayeru
Já posledních tak pět let žádnou chybu s SDL nepozoroval.
27.2.2007 12:52 lefti | skóre: 18 | blog: OneAndOnlyTrueBlog
Rozbalit Rozbalit vše Re: Užitečné skripty pochybné kvality 1: o mplayeru
I klavesový zkratky pro Window Manager, když je maximalizovaný mplayer s -vo sdl?
27.2.2007 15:38 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Re: Užitečné skripty pochybné kvality 1: o mplayeru
Jenze to je vlastnost SDL. Byl bych rad, kdybych se mylil.
27.2.2007 12:43 Petr "Glubo" Sýkora | skóre: 21 | blog: Glubnik
Rozbalit Rozbalit vše Re: Užitečné skripty pochybné kvality 1: o mplayeru
Je tu jeden drobný rozdíl. Ono toto řešení roztahne "plochu filmu" o černý pruh na titulky, takže mějme modelovou situaci: Film má výšku 400px, obrazovka má výšku 500px, titulky jsou vysoké 100px. S pouhým -vo (sdl|gl) máme vršek filmu 50px pod vrškem obrazovky a pod filmem 50px prostoru na titulky, jenže ty jsou vysoké 100px, takže překrývají z části film. S "-vo expand..." to dopadne tak, že film má vršek na vrchu monitoru a je pod ním 100px na titulky, kam se akorát vejdou. ;)
„O mrtvých jen v dobrém." „Pojďme se bavit o Stalinovi."
26.2.2007 21:33 qiRzT | skóre: 14 | blog: U_Marvina
Rozbalit Rozbalit vše Re: Užitečné skripty pochybné kvality 1: o mplayeru
Odpovědět | Sbalit | Link | Blokovat | Admin
Chápu to dobře, že to vezme soubor s příponou avi, tu odtrhne a přidává to sub a srt? Nedělá tohle mplayer sám?
Důležité je vědět jak problém vyřešit, zbytek zvládne i cvičená opice...
andree avatar 26.2.2007 22:17 andree | skóre: 39 | blog: andreeeeelog
Rozbalit Rozbalit vše Re: Užitečné skripty pochybné kvality 1: o mplayeru
tiez mam pocit ze mi to robi :) skor by bolo zaujimave mat skript, ktory hlada titulky, ktore maju co najpodobnejsi nazov (v ramci adresara) ako video - pridavanim roznych pripon (napr. "-cz", "[sk]"), resp. hladanim nejakych podretazcov (to by bolo treba domysliet a neviem ci to vobec ma nejake jednoduche riesenie)
26.2.2007 22:23 Christof | skóre: 22 | Havířov
Rozbalit Rozbalit vše Re: Užitečné skripty pochybné kvality 1: o mplayeru
to mplayer taky umí, přesněji má tři režimy detekce titulků - přesný název souboru (jiná přípona), titulky obsahující název filmu (takže např. načte film-en.srt a film-cz.srt), nebo všechny titulky z adresáře přepínat se pak dá klávesou j
26.2.2007 22:24 Christof | skóre: 22 | Havířov
Rozbalit Rozbalit vše Re: Užitečné skripty pochybné kvality 1: o mplayeru
a ještě ta volba: sub-fuzziness
26.2.2007 22:24 zabza | skóre: 52 | blog: Nad_sklenkou_cerveneho
Rozbalit Rozbalit vše Re: Užitečné skripty pochybné kvality 1: o mplayeru
bash$ man mplayer

...
       -sub-fuzziness <mode>
              Adjust matching fuzziness when searching for subtitles:
                 0    exact match
                 1    Load all subs containing movie name.
                 2    Load all subs in the current directory.
26.2.2007 23:23 rgb | skóre: 2 | blog: rgblog
Rozbalit Rozbalit vše Re: Užitečné skripty pochybné kvality 1: o mplayeru
hé? Tohle je super, jaktože jsem o tom nevěděl! Já si v podstatě to samý skriptoval :) Asi by to chtělo víc číst manuály...
26.2.2007 23:49 rgb | skóre: 2 | blog: rgblog
Rozbalit Rozbalit vše Re: Užitečné skripty pochybné kvality 1: o mplayeru
Teď koukám do toho manuálu a co nevidím. Barva titulků -- už jde nastavit! Nevím jak dlouho to tam je, kompiluju si mplayer přímo z SVN, ale funguje to. Třeba žluté titulky (je to trochy sprosté):
mplayer -ass -ass-color FFFF0000 -ass-border-color 00000077 ...
Drobnou chybou na kráse je, že to už nejsou ty hezký mplayerovský titulky -- tohle renderuje knihovna libass a stín je trochu divnej. Ale aspoň něco.
27.2.2007 07:27 Christof | skóre: 22 | Havířov
Rozbalit Rozbalit vše Re: Užitečné skripty pochybné kvality 1: o mplayeru
ASS je tam někdy od srpna, a žlutou nastavovat nemusíš, ta je default :)
26.2.2007 22:41 Petr
Rozbalit Rozbalit vše Re: Užitečné skripty pochybné kvality 1: o mplayeru
A -sub-fuzziness 1 ti nestaci?
27.2.2007 10:08 Tomáš | skóre: 31 | blog: Tomik
Rozbalit Rozbalit vše Re: Užitečné skripty pochybné kvality 1: o mplayeru
Chápu to dobře, že to vezme soubor s příponou avi, tu odtrhne a přidává to sub a srt? Nedělá tohle mplayer sám?
Dělá, ale nenašel jsem, jestli si mplayer umí sám nastavit ten černý pruh dole, když najde titulky.
27.2.2007 10:12 Christof | skóre: 22 | Havířov
Rozbalit Rozbalit vše Re: Užitečné skripty pochybné kvality 1: o mplayeru
viz výše, -vo sdl nebo -vo gl
27.2.2007 15:49 Petr "Glubo" Sýkora | skóre: 21 | blog: Glubnik
Rozbalit Rozbalit vše Re: Užitečné skripty pochybné kvality 1: o mplayeru
viz výše, není to identické řešení
„O mrtvých jen v dobrém." „Pojďme se bavit o Stalinovi."
27.2.2007 12:31 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Re: Užitečné skripty pochybné kvality 1: o mplayeru
Odpovědět | Sbalit | Link | Blokovat | Admin
Taky jsem si na to kdysi napsal skript. Dneska pouzivam parametr -vf expand=:::::4/3 a mplayer mi sam vystredi film do obdelniku s pomerem stran 4:3. Kdybych byl jeste linejsi, tak jej pripisu do configu.
27.2.2007 16:11 rgb | skóre: 2 | blog: rgblog
Rozbalit Rozbalit vše Re: Užitečné skripty pochybné kvality 1: o mplayeru
no sakra, to je věc...

Založit nové vláknoNahoru

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.