Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2016-07-21 20:58:01

  numer_inaczej - Użytkownik

numer_inaczej
Użytkownik
Zarejestrowany: 2014-08-15

Skrypt bash nieoczekiwanie kończy pracę

Witam.

Ponieważ DVB-T zmusiło mnie do powrotu na mplayera, postanowiłem zorganizować sobie
również oglądanie filmów z dysku w tym programie.
W tym celu napisałem mały skrypt, który nie powinien kończyć pracy z chwilą wywołania mplayera, a jednak kończy.
Powiedzcie mi, gdzie jest tego przyczyna.

Kod:

#!/bin/bash

# autor: nUmer
# 
# Program do odtwarzania filmów - do działania potrzebuje Xdialog

temp=`mktemp -t .mplayertmp.$$_XXXXXX` ||exit 1
temp1=`mktemp -t .mplayertmp.$$_XXXXXX` ||exit 1

#START PLAY

Xdialog --title $USER --no-buttons Delete --no-buttons --default-no -ok-label Play --cancel-label Zakończ --fselect /ac_data/media/filmy/  36 69 2>$temp

case $? in
  0)
    echo "OK pressed" ; film=`cat $temp|tail -n 1` ; `killall mplayer ; mplayer -ao alsa, -softsleep -cdrom-device /dev/sr0 -dvd-device /dev/sr0 -dvd-speed 8 -lirc -lircconf ~/.lircrc -channels 2 -srate 48000 -af-adv force=5:list=resample -af format=u24ne -afm ffmpeg, -cache-min 5 -font ~/.mplayer/arialuni.ttf -osdlevel 1 -osd-duration 20000 -slang pl -font ~/.mplayer/arialuni.ttf -subfont-outline 0 -subfont-blur 3 -subfont-autoscale 3 -sub-fuzziness 0 -subcp enca:pl:cp1250 -slang pl -input conf=/home/numer/.mplayer/input.conf -vfm ffmpeg, -vc ffmpeg12vdpau,ffmpeg12vdpauold,ffhevcvdpau,ffh264vdpau,ffh264vdpauold,ffodivxvdpau,ffodivxvdpauold, -vo vdpau:deint=4,gl:nomanyfmts:slice-height=0:osd:glfinish:yuv=4,gl2,sdl,vxmc, "$film"` ; ;;
  1)
     echo "Cancel pressed." ; exit 0 ;;
  255)
    echo "Box closed.";;
esac

#END PLAY 

rm -f $temp $temp1 ; echo "
... wychodzę." ; exit 0

Jak zawsze wdzięczny za pomoc
nUmer

Ostatnio edytowany przez numer_inaczej (2016-07-21 21:01:03)

Offline

 

#2  2016-07-21 22:01:57

  pasman - Użytkownik

pasman
Użytkownik
Zarejestrowany: 2015-12-16

Re: Skrypt bash nieoczekiwanie kończy pracę

masz zbędny przecinek po vxmc i ffmpeg

Ostatnio edytowany przez pasman (2016-07-21 22:03:21)

Offline

 

#3  2016-07-21 22:16:49

  numer_inaczej - Użytkownik

numer_inaczej
Użytkownik
Zarejestrowany: 2014-08-15

Re: Skrypt bash nieoczekiwanie kończy pracę

Przecinek nie zamyka zbioru, przeciwnie - pozostawia otwarty dla np kodeków, co znaczy, że jeśli z określonych nie będzie mógł korzystać wykorzysta domyślne.

Offline

 

#4  2016-07-22 20:42:21

  numer_inaczej - Użytkownik

numer_inaczej
Użytkownik
Zarejestrowany: 2014-08-15

Re: Skrypt bash nieoczekiwanie kończy pracę

Xdialog po prostu kończy działanie po wyświetleniu boxa i podjęciu pojedyńczej akcji. Należy wszystko wcisnąć w pętlę.

Kod:

#!/bin/bash

# autor: nUmer
# 
# Program do odtwarzania filmów - do działania potrzebuje Xdialog
PID=$$

temp=`mktemp -t .mplayertmp.$$_XXXXXX` ||exit 1
temp1=`mktemp -t .mplayertmp.$$_XXXXXX` ||exit 1

#START PLAY
x=1
while [ $x = 1 ] ; do {
    
Xdialog --title $USER --no-buttons Delete --no-buttons --default-no -ok-label Play --cancel-label Zakończ --fselect /ac_data/media/filmy/PRL 36 69 2>$temp

case $? in
  0)
      echo "OK pressed" ; film=`cat "$temp"|tail -n 1` ; killall mplayer ; mplayer -ao alsa, -softsleep -cdrom-device /dev/sr0 -dvd-device /dev/sr0 -dvd-speed 8 -lirc -lircconf ~/.lircrc -channels 2 -srate 48000 -af-adv force=5:list=resample -af format=u24ne -afm ffmpeg, -cache-min 5 -font ~/.mplayer/arialuni.ttf -osdlevel 1 -osd-duration 20000 -slang pl -font ~/.mplayer/arialuni.ttf -subfont-outline 0 -subfont-blur 3 -subfont-autoscale 3 -sub-fuzziness 0 -subcp enca:pl:cp1250 -slang pl -input conf=/home/numer/.mplayer/input.conf -vfm ffmpeg, -vc ffmpeg12vdpau,ffmpeg12vdpauold,ffhevcvdpau,ffh264vdpau,ffh264vdpauold,ffodivxvdpau,ffodivxvdpauold, -vo vdpau:deint=4,gl:nomanyfmts:slice-height=0:osd:glfinish:yuv=4,gl2,sdl,vxmc, "$film" & ;;
  1)
      echo "Cancel pressed." ; x=2 ; killall mplayer ;;
  255)
      echo "Box closed."; killall mplayer ; exit 1 ;;
esac
} done
#END PLAY 

rm -f $temp $temp1 ; echo "
... wychodzę." ; exit 0

Temat uważam za zamknięty.

Offline

 

#5  2016-07-22 20:58:47

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: Skrypt bash nieoczekiwanie kończy pracę

Jak masz taki pęd do kodzenia, to czy nie lepiej sobie naskrobać jakiegoś skrypta na bazie Gtk czy QT,
z wykorzystaniem Perla albo Pythona?
Da się tam zrobić ślitaśną ikonkę w trayu i całkiem przyzwoite okienko.

Z resztą w samym QT z wykorzystaniem C++ też byś pewnie dał radę.

Masz tu conieco:
https://techbase.kde.org/Languages/Perl#Qt_4
http://search.cpan.org/~xaoc/Gtk2-1.2498/lib/Gtk2.pm
http://search.cpan.org/~xaoc/Gtk3-0.028/lib/Gtk3.pm

Ostatnio edytowany przez Jacekalex (2016-07-22 21:20:01)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#6  2016-07-25 17:57:50

  numer_inaczej - Użytkownik

numer_inaczej
Użytkownik
Zarejestrowany: 2014-08-15

Re: Skrypt bash nieoczekiwanie kończy pracę

@Jacekalex - dzięki za motywację. Wiesz, teraz uczę się javascript i php, ale później właśnie zamierzam C++.

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
To nie jest tylko forum, to nasza mała ojczyzna ;-)