Hi everyone,
Recently I’m using the great video converting utility mencoder a lot. But it only has a command line interface. I hate to open Terminal and type words just to convert a movie which QuickTime can’t handle. So I got the idea of making a simple AppleScript droplet application that converts the movie. And I decided to make a progress bar. (http://scriptbuilders.net/files/bpprogressbar1.0.html)The problem is that, how do I get the output of “do shell script” BEFORE the script finishes executing?
I’ve heard of things like background server process, which returns immediately after the process has started. But how do I get the output of it?
Here’s what I have now:
Open this Scriplet in your Editor:
property encpath : ((path to me) as text) & "Contents:MacOS:mencoder"
on run
my convert((choose file with multiple selections allowed and invisibles) as list)
end run
on open movies
my convert(movies as list)
end
on convert(movies)
set ProgressBar to load script alias (((path to me) as text) & "Contents:Resources:BP Progress Bar Controller.scpt")
tell ProgressBar
initialize("Movie Converter")
barberPole(true)
setStatusTop to "Converting..."
setStatusBottom to "Calculating time remaining..."
setMax to 100 *(the count of movies)
end tell
repeat with movie in movies
set the_path to the POSIX path of movie
set the_cmd to the (POSIX path of alias encpath) & " " & the_path & " -o ~/Desktop/" & rmExt(movie) & ".avi -oac mp3lame -ovc lavc"
(*What should I do here? *)
do shell script the_cmd
(* Or here?*)
end repeat
tell ProgressBar to quit
end convert
on rmExt(f)
tell (info for f) to set {Nm, Ex} to {name, name extension}
set BN to text 1 thru ((get offset of "." & Ex in Nm) - 1) of Nm
return BN
end rmExt
Thanks in advance