Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
mplayer-resume [2013/06/28 11:42]
beandog created
mplayer-resume [2013/06/28 11:48] (current)
beandog
Line 1: Line 1:
 ====== mplayer-resume ====== ====== mplayer-resume ======
  
-''​mplayer-resume'' ​is a PHP shell script I wrote to resume playback of files through mplayer. ​ It works using slave mode and LIRC with mplayer, which outputs the variables to stdout. ​ The wrapper script then keeps these values, and uses them to jump to that last point.+**mplayer-resume** is a PHP shell script I wrote to resume playback of files through mplayer. ​ It works using slave mode and LIRC with mplayer, which outputs the variables to stdout. ​ The wrapper script then keeps these values, and uses them to jump to that last point.
  
-Note that this code is an ''​archived copy'' ​of the source code.  It's unmaintained,​ but probably works.+Note that this code is an **archived copy** of the source code.  It's unmaintained,​ but probably works. 
 + 
 +=== README === 
 + 
 +<​code>​ 
 +MPlayer playback / resume position script 
 + 
 + This PHP script will save the playback position of a file 
 + you watch with MPlayer. ​ Once you start playing the same file 
 + again, it will resume from last playback position. 
 + 
 + The *only* way this script will work is if you pass the 
 + "​get_time_pos"​ command to MPlayer through an input event, 
 + mapped by either LIRC or the keyboard. 
 + 
 + The script captures the output and saves it to a file in 
 + the playback directory for each media file. 
 + 
 + See http://​www.mplayerhq.hu/​DOCS/​tech/​slave.txt for more 
 + commands that work on both backends. 
 + 
 +Installation:​ 
 + 
 + To execute this program, either call it using the PHP 
 + binary, or make it executable. Whichever you like best. :) 
 + 
 + $ php mplayer-resume movie.avi 
 + 
 + # cp mplayer-resume /​usr/​local/​bin/​ 
 + # chmod +x /​usr/​local/​bin/​mplayer-resume 
 + $ mplayer-resume --filename movie.avi 
 + 
 + The script should parse any arguments that you want to send 
 + mplayer at the same time, regardless of whether you start 
 + it as a standalone program or with php. 
 + 
 + Standalone:​ 
 + $ mplayer-resume --filename movie.avi -vo xv 
 + 
 + With php: 
 + $ php mplayer-resume --filename movie.avi -vo xv 
 + 
 +Syntax: 
 + 
 + mplayer-resume --filename <​filename>​ [options] [mplayer options] 
 + 
 + As of v2.0, the syntax has changed. ​ Previously, mplayer-resume 
 + would attempt to guess the correct filename, but in cases of movies 
 + with spaces in the file, it would cause problems. ​ Now, you must 
 + define the filename manually with the --filename argument. 
 + 
 +MPlayer optional arguments:​ 
 + 
 + You can still pass all the normal arguments you would normally use 
 + when running mplayer. ​ They will be passed to the command line 
 + after mplayer-resume has added it's own. 
 + 
 + $ mplayer-resume --filename "My movie.mkv"​ -vo xv -fs -ao sdl 
 + 
 + The *only* extra arguments that this script will add to your 
 + mplayer command is -ss to seek to resume a file, and 
 + -quiet so it can correctly grab the output. 
 + 
 + The script will also strip out any commands that are known to 
 + break the output. ​ Currently the only one being stripped is 
 + "​-really-quiet"​. 
 + 
 +Optional arguments:​ 
 + 
 + Currently, mplayer-resume only supports one extra argument, a  
 + small feature added to the script to scratch a personal itch of mine. 
 + 
 + Passing --use-dir-conf to mplayer-resume will look for a file named 
 + "​mplayer.conf"​ in the same directory of the filename you are playing, 
 + and if one exists, it will pass "​-include <​filename>"​ to the mplayer 
 + binary. 
 + 
 + This is just a little workaround to add a feature that mplayer doesn'​t 
 + currently implement. :) 
 + 
 +LIRC: 
 + 
 + Setup your ~/.lircrc file to do three things when you hit 
 + the stop button: 
 + 
 + 1) Get the time position 
 + 2) Get the filename 
 + 3) Stop playing 
 +  
 + Here'​s an example configuration:​ 
 + 
 + begin 
 + prog = mplayer 
 + button = stop 
 + config = get_time_pos 
 + end 
 + begin 
 + prog = mplayer 
 + button = stop 
 + config = get_filename 
 + end 
 + begin 
 + prog = mplayer 
 + button = stop 
 + config = quit 
 + end 
 + 
 + You can of course map any button on your remote that you'd like 
 + to use this function for. 
 + 
 +Keyboard: 
 + 
 + Map a key with ~/​.mplayer/​input.conf to run '​get_time_pos'​ 
 + 
 + Sample entry: 
 + 
 + g get_time_pos 
 + 
 + When you want to save the position, hit '​g',​ and then '​q'​ 
 + to quit playback. 
 + 
 + You can also do it manually using mplayer'​s slave mode, 
 + which is useful for debugging:​ 
 + 
 + $ mplayer -slave -quiet movie.avi 
 + get_time_pos 
 + quit 
 + 
 +Configuration:​ 
 + 
 + This script will save a text file for each media file you 
 + watch using this script. ​ The text files are saved in the 
 + config variable $save_files_to defined in the script, which 
 + must be a directory that this script can read / write to. 
 + 
 + The script will try to automatically create a directory, and 
 + uses /​home/​username/​.mplayer/​resume/​ by default. 
 + 
 +MythTV: 
 + 
 + If you are using MythVideo (http://​www.mythtv.org/​) and want to 
 + use mplayer-resume as your playback script instead of mplayer, 
 + it's easy to setup. 
 + 
 + From the main menu, go to: 
 + 
 + Utilities/​Setup 
 + Video Settings 
 + Player Settings 
 + 
 + Change the entry for Default Player to: 
 + 
 + mplayer-resume %s 
 + 
 + Please note that you *do not* need to put quotes around the 
 + filename (as of v0.20.x), as MythTV will do it by itself. 
 + 
 + You can of course add any other extra MPlayer arguments as you 
 + normally may here. 
 + 
 + mplayer-resume -fs -vo xv -aspect 16/9 %s 
 + 
 +Notes: 
 + 
 + If your CLI version of PHP is dumping version information 
 + each time it runs, add -q to the top line to supress the 
 + output. 
 + 
 + #​!/​usr/​bin/​php -q 
 + 
 +Bugs: 
 + 
 + Doesn'​t save cwd with the file, so you can only have one 
 + entry per filename 
 + 
 +Help: 
 + 
 + If you get stuck, don't hesitate to contact me. 
 + 
 + http://​wonkabar.org/​contact-me 
 +</​code>​
  
 == mplayer-resume 2.0 == == mplayer-resume 2.0 ==
Line 267: Line 447:
  }  }
 ?> ?>
 +</​code>​
 +
 +=== ChangeLog ===
 +
 +<​code>​
 +2.0 (2009-08-11)
 +
 + - Add --filename argument to specify filename directly, instead
 +   of trying to guess what it is.
 + - Add optional argument --use-filedir-conf,​ to include mplayer.conf
 +   in local directory, and pass -include mplayer.conf to mplayer.
 +
 +1.6 (2008-12-16)
 +
 + - Check exit codes on mplayer, so that if mplayer quits
 +   unexpectedly,​ mplayer-resume won't kill the resume point.
 + - Send exit codes
 +
 +1.5 (2008-01-12)
 +
 + - Allow spaces in filenames. ​ Use mplayer-resume "​filename"​
 + - Get the filename from MPlayer on exit, and use that to save
 + the file to.  Useful for playlists. ​ See README.
 +
 +1.3 (2006-09-15)
 +
 + - Call env instead of php directly
 + - Get $HOME environment variable to save files to
 +
 +1.2
 +
 + - Documentation updates
 </​code>​ </​code>​

Navigation