Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

mp — wrapper za MPlayer sa podrškom za izbor titlova

[es] :: Linux desktop okruženja :: mp — wrapper za MPlayer sa podrškom za izbor titlova

[ Pregleda: 1876 | Odgovora: 0 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

random
Vladimir Vrzić
Beograd

Član broj: 85
Poruke: 3866
*.eth-wifi.verat.net.

Sajt: www.last.fm/user/vrza


+4 Profil

icon mp — wrapper za MPlayer sa podrškom za izbor titlova04.07.2005. u 16:25 - pre 228 meseci
Uvek koristim MPlayer za gledanje DivX filmova, i to verziju bez GUI-ja, međutim nerviraju me dve stvari:

1) Ne mogu iz fajl menadžera da pustim film sa željenim titlom, jer fajl sa titlovima mora da se preda mplayeru kao argument u komandnoj liniji (mplayer -sub titl.sub).

2) Da bi u mplayeru stavio titl ISPOD slike (pod uslovom da ima mesta), moram da proširim sliku po vertikali (mplayer -sub titl.sub -vf expand=0:-80:0:0) ili nešto slično.

Da se ne bih smarao kucanjem komandi, pre neko veče sam napisao shell skript koji dozvoljava izbor titla, i automatski proširuje sliku tako da je poravna uz gornju ivicu ekrana (ovako meni odgovara, možda bi estetski lepše bilo da se slika + titl centriraju po vertikali, to traži još malo više računanja, što za sad ostavljam nekom drugom).

Skript koristi zenity za biranje titla, pošto ja koristim prevashodno GNOME, ali možete ga lako prepraviti da koristi kdialog. Pošto bash/sh ne podržava floating point aritmetiku, za računanje sam koristio bc kalkulator, uglavnom ga ima u Linux i BSD distribucijama. I naravno, trebaće vam instaliran mplayer.

Code:
#!/bin/sh
# mp -- MPlayer wrapper to help with setting up the subtitles
# requires: mplayer, zenity, bc, file, grep, cut, expr
# Vladimir Vrzic <random at bsd org yu>, 2005.

# Put additional command line parameters to mplayer here:
# MYOPTS="-v"
MYOPTS="-really-quiet"

if [ $# -eq 0 ]; then
    echo $0: missing file argument >&2
    exit 1
fi

if [ ! -f "$1" ]; then
    echo $0: $1 does not exist or is not a regular file >&2
    exit 2
fi

if ! ( file "$1" | grep video >/dev/null 2>&1 ); then
    echo $0: $1 is not a valid video stream >&2
    exit 3
fi

DIR=`dirname "$1"`
cd "$DIR"
SUBFILE=`zenity --file-selection  \
    --title "Select subtitles for $1:"`
cd -
test "$SUBFILE" && echo using subtitles from "$SUBFILE" 

# this piece of code gets the size of the first screen 
# it's not needed, since mplayer apparently thinks the screen is always 4:3
# unless -monitorascpect option is set
# not sure if we get anything by adjusting the aspect
#
# SCREENSIZE=`xdpyinfo |grep dimensions | head -n 1| cut -c18-26`
# SCRWIDTH=`echo $SCREENSIZE | cut -dx -f1`
# SCRHEIGHT=`echo $SCREENSIZE | cut -dx -f2`
# echo screen is $SCRWIDTH x $SCRHEIGHT

# getting the X and Y dimensions of the video stream
#
SIZE=`file "$1" | grep video | cut -d: -f2 |cut -d, -f 3`
X=`echo $SIZE | cut -dx -f1`
Y=`echo $SIZE | cut -dx -f2`
echo video is $X x $Y

# calculating the number of pixels used to expand the height
#
EXPY=`echo "scale=5; ( $X * 3 ) / 4 - $Y"| bc `
EXPY=`echo $EXPY | cut -d. -f1`
echo using -vf expand=0:-$EXPY:0:0
echo video will be expanded to $X x `expr $Y + $EXPY`

# this calculates the subtitle position,
# which never should be more than 100
#
SUBPOS=`echo "scale=5; ( $Y / ( $Y + $EXPY ) ) * 100 " | bc | cut -d. -f1`

# ugly "if" fork, to work around problems with filenames with spaces in them
if [ "${SUBFILE}" ]; then
    mplayer -sub "${SUBFILE}" -subpos ${SUBPOS} \
        -vf expand=0:-${EXPY}:0:0 \
        -fs ${MYOPTS} "$1"
else
    mplayer -noautosub -fs ${MYOPTS} "$1" #2>/dev/null >&
fi


Skript smestiti u neki od direktorijuma koji su u PATH-u i načiniti ga izvršnim (recimo nazvati ga /usr/local/bin/mp i uraditi chmod 755 /usr/local/bin/mp).

[Ovu poruku je menjao random dana 04.07.2005. u 17:46 GMT+1]
int rand(void);

Those who do not understand Unix are condemned to reinvent it, poorly.

Upali lampicu — koristi Jabber!
 
Odgovor na temu

[es] :: Linux desktop okruženja :: mp — wrapper za MPlayer sa podrškom za izbor titlova

[ Pregleda: 1876 | Odgovora: 0 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.