[MPlayer-users] execute external commands during media playing

Phil Rhodes phil_rhodes at rocketmail.com
Thu Apr 10 13:43:35 CEST 2008


> thanks, this seems to be very interesting. Doing such things with
> javascript code under windows would be very useful for me; could you
> please show me a simple part of your code, so I can start editing some
> working javascript code?

Not easily - it wasn't very simple!

The problem is that slave mode is riddled with bugs and appears to be more 
or less unmaintained; also, you will almost invariably find yourself wanting 
to do things it can't do, such as changing the pan audio filter. I 
eventually ended up relaunching mplayer from scratch for every file, so I 
could at least have per-file changes to all the usual command line stuff. It 
also doesn't help that JScript's stdio reader is blocking, so you have to be 
very sure you have something to read when you try to read it, or your 
program will become trapped in a lock-o-doom from which there is no escape.

Basically it works like this:

- Build a command line
- Run it with WScript.Shell's Exec method, keeping a reference to the 
process.
- Request a time position update
- Request any other info you want
- Read lines until you see the time position update
- Do whatever you need to do based on the information received.
- Repeat

It's slightly flaky in that you could theoretically request a time pos as 
"any other info" and you would then stop reading too early, but the simple 
solution is "don't do that". There were a lot of exceptions and special 
cases for things which didn't quite work as advertised - if you seek to a 
given position then read the time position, it won't be the position you 
seeked to, for some reason. Tread carefully.

P 




More information about the MPlayer-users mailing list