I have been down this road. MCI doesn't work either
The most straight forward solution begins with:
http://www.mplayerhq.hu/design7/dload.html
MPlayer files in the the directory referenced in the command line. You can save them whereever. Also, download the 'slave' documentation.
Please don't laugh at my code.
Rick
proc mplayer {f args} {
set options {-width 940 -height 788}
while {[string match -* $args]} {
if {[lindex $args 0] eq "--"} then {
set args [lrange $args 1 end]
break
} else {
set args [lassign $args key val]
dict set options $key $val
}
}
frame .tMPlayer.$f -class Mplayer -background yellow -container yes {*}$options
set bOK [button .tMPlayer.bOK -text OK]
pack $bOK .tMPlayer.$f -side left
pack propagate .tMPlayer 0
set wid [winfo id .tMPlayer.$f]
# have -colorkey match window background
set channel \
[open [concat | ../shared/snitMP/mplayer.exe -quiet -idle -slave -vo directx -colorkey 0xff0000 -wid $wid $args] r+]
flush $channel
bind .tMPlayer.$f <Destroy> [subst {
catch {
rename .tMPlayer.$f ""
puts $channel quit
flush $channel
close $channel
}
}]
#rename $f "_$f"
proc $f {cmd args} [subst -nocommand {
puts \$cmd
puts \$args
if {\$cmd eq "cmd"} then {
puts $channel \$args
flush $channel
} else {
_$f \$cmd [list \$args]
}
}]
bind .tMPlayer.$f <1> [list focus .tMPlayer.$f]
bind .tMPlayer.$f <Map> [list focus .tMPlayer.$f]
bind .tMPlayer.$f <space> "$f cmd pause"
bind $f <Return> "$f cmd pt_step 1"
bind $f <less> "$f cmd pt_step -1"
bind $f <Right> "$f cmd seek 10"
bind $f <Left> "$f cmd seek -10"
bind $f <Down> "$f cmd seek -100"
bind $f <Up> "$f cmd seek 100"
bind .tMPlayer.$f <question> "$f cmd osd_show_progression"
bind $f 9 "$f cmd volume -1"
bind $f 0 "$f cmd volume 1"
puts "[set f]"
}
toplevel .tMPlayer -background #0000ff -width 1000 -height 900
mplayer movieplayer
movieplayer cmd loadfile http or your file name.mp4
update