I ultimately want to save the middle frame of movies I download from my
digital camera. That jpg will be a placeholder in Aperture. Here's what
I think are the essentials at this point
require 'rbosa'
require 'fileutils'
include FileUtils
appQT = OSA.app('QuickTime Player')
src = "/Volumes/photos/"
filesCount = 0
frameFilesCount = 0
Find.find(src) do |fn|
if File.file?(fn)
if ['.mov','.avi'].include?(File.extname(fn).downcase)
appQT.open(fn) # works
frameCount = appQT.duration("movie 1") >> undefined method
‘duration’ for #<OSA::QuickTimePlayer::Application:0x1065c24>
puts "frameCount: #{frameCount}"
appQT.close(fn) # doesn't work
end
end
end
puts
I looked at the output of appQT.methods and none of the items listed
that made sense to me worked.
This newbie needs some help groking RubyOSA, Ruby, and QuickTime.
Thanks
--
Posted via http://www.ruby-forum.com/.
On 7/3/07, 12 34 <ruby...@web.knobby.ws> wrote:
> How do I access the properties of a QuickTime movie? I'm trying RubyOSA,
> but am open to other ideas.
Why not trying to access the QTKit framework from Ruby via RubyCocoa?
Here is an example that prints all the metadata properties of a given movie.
$ cat a.rb
require 'osx/foundation'
OSX.require_framework 'QTKit'
puts OSX::QTMovie.movieWithFile_error(ARGV[0], nil).movieAttributes
HTH,
Laurent
Didn't know I could, and even if I had I didn't know what do to with it.
I thought RubyCocoa went to the other way. That is, to use Ruby in
XCode. But obviously it's more than that.
>
> Here is an example that prints all the metadata properties of a given
> movie.
>
> $ cat a.rb
> require 'osx/foundation'
> OSX.require_framework 'QTKit'
> puts OSX::QTMovie.movieWithFile_error(ARGV[0], nil).movieAttributes
>
> HTH,
> Laurent
Either I've already installed RubyCocoa or I can't. Neither machine will
allow the pkg installer to work. And I tried by hand recently on my iMac
desktop, and I got an error at some point.
So unless I figure out how to get around that I'm up a creek.
Also what is cat a.rb. I don't find cat in Ruby, and man cat, tell me
it's concatenate and pring; but that doesn't make sense to me in this
context. Much to learn.
Thanks for any other further suggestions.
Using rb-appscript (http://rb-appscript.rubyforge.org) to get
properties of the frontmost movie in QuickTime Player:
require 'appscript'
include Appscript
QTP = app('QuickTime Player.app')
movie = QTP.movies[1] # a reference to the frontmost movie
p movie.name.get # get movie name
p movie.duration.get # get movie duration
p movie.properties_.get # get all properties at once
# etc...
> I ultimately want to save the middle frame of movies I download from my
> digital camera.
To export the middle frame of a movie file to a PICT file:
movie = QTP.open(MacTypes::Alias.path('/path/to/your movie.mov'))[0]
movie.current_time.set(movie.duration.get / 2)
movie.export(:to=>MacTypes::FileURL.path('/path/to/middle
frame.pict'), :as=>:picture)
movie.close
To convert a PICT file to a JPEG file:
IA = app('Image Events')
img = IA.open(MacTypes::Alias.path('/path/to/middle frame.pict'))
img.save(:in=>'/path/to/middle frame.jpg', :as=>:JPEG)
img.close
HTH
has
--
http://appscript.sourceforge.net
http://rb-appscript.rubyforge.org
Yes, it's a real bridge between the Objective-C and the Ruby runtimes.
> > Here is an example that prints all the metadata properties of a given
> > movie.
> >
> > $ cat a.rb
> > require 'osx/foundation'
> > OSX.require_framework 'QTKit'
> > puts OSX::QTMovie.movieWithFile_error(ARGV[0], nil).movieAttributes
> >
> > HTH,
> > Laurent
>
> Either I've already installed RubyCocoa or I can't. Neither machine will
> allow the pkg installer to work. And I tried by hand recently on my iMac
> desktop, and I got an error at some point.
Ah, maybe you are running 10.4.10. The latest release won't install on
it because of an installer bug, but we released a minor version,
called RubyCocoa-0.11.1p1, that you can get from the usual location:
http://sourceforge.net/project/showfiles.php?group_id=44114
> So unless I figure out how to get around that I'm up a creek.
>
> Also what is cat a.rb. I don't find cat in Ruby, and man cat, tell me
> it's concatenate and pring; but that doesn't make sense to me in this
> context. Much to learn.
cat is an UNIX command-line tool that has nothing to do with Ruby
here. Just look at the 3 lines of Ruby code :-)
Laurent
LoadError: no such file to load — osx/foundation
I'll be back later.
If Exiftool support your needs
http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/QuickTime.html
it should work.
Greets
Jan
With solution using rb-appscript from HAS, I've got what I need for now.