I'm generating some subtitled movies for a DVD-ROM product. The
DVD-ROM is written in Director and provides full-screen ability by
scaling the movie up, rather than invoking the full-screen mode of
Quicktime itself (so that we can display our own Director based
navigation controls)*. The video track of the movie plays back
absolutely fine when scaled up, however as soon as you add a Text track
the playback is bad (frame rate drops considerably).
Originally the movies were SMIL files with the text track overlaid on
the video (using {antialias:on} and {keyed:on} text descriptors) but
the performance was really bad in "full-screen". I did some
AppleScripting to import the text tracks directly into the video (using
the same anti-alias and keyed stuff) and save them as self-contained
movies, again the performance was bad**.
I then did some digging about and found a suggestion that I try
changing the transfer mode to transparent on the text track. So I used
Applescript to change the movie to have a non-keyed and
non-antialiased*** text-track (well, every frame of the text track
pedant-fans ;) and then changed the track to have a transparent
transfer mode (transparency colour being the background colour of the
text track). This achieves the same visual results (white text
"floating" on top of the movie) and gave some performance increase...
but it's still not great.
Assuming it was something to do with all the transparency (It's a
640x480 movie, with a 640x70 text track (height determined to give room
for 3 rows of text) at the bottom, most of which is transparent, apart
from the few cases when all 3 rows are in use) I used Applescript to
regenerate the movies from the original SMIL files, but this time
without setting the transfer mode to transparent. This gives us normal
performance in "full-screen", but it's not great visually as the bottom
~15% of the movie is covered (our movies are of talking heads, but
often they use their hands for expressive movements or to aid what they
are describing and it's a shame to lose this "info"****).
My final attempt was to generate the transparent transfer mode movies
and then to "flatten" them down to mpeg4 movies (using the same
settings as the original un-subtitled movies). This has the benefit of
good performance and keeps the transparency around the text, but has
two downsides.
1. The subtitle text has a fuzzy jpeg-artefacty border
2. The subtitles are "fixed" to the movie.
If it was only the fuzzy border round the text I could live with it, as
it's a minor visual quirk. However, the second point is more
irritating:
I want to deliver a DVD-ROM with the option of watching with or withoug
subtitles (possibly in several languages). To do this because the
subtitles are "fixed" I'd need to deliver a copy of each movie in each
language, and a final one without any subtitles. Delivering multiple
copies of each movie would be pushing the limits of a single-layer
DVD-ROM for some of our content (we're talking hours of footage). My
original plan was to provide the option of turning on / off subtitles
by using SMIL or reference movies that included the appropriate
text-track alongside the normal QT movie (these are obviously
significantly smaller than duplicating the movies).
Now. After all that, here's the question (blink and you'll miss it ;):
Are there any tips you can think of that I could try for performance
improvements, that would also allow me to go with my reference
movie/SMIL movie plan?
I'm doing everything I can in AppleScript and SMIL 'cos that's where my
skills lie at the moment but if needs be I could delve into Cocoa to
generate the movies directly if that would provide me more control
(I've always needed a reason to learn).
Note: Quicktime 6 is the delivery platform (at the moment) and by that
you'll have guessed that I'm working on 10.3.9. The "bad" performance
is from a 1.6Ghz G5 with 1Gb RAM (if I can get it good on that, then
I'll see what it's like on "lesser" machines and Windows boxes)
Cheers
Muz
* I'm not really at liberty to change how the DVD-ROM works wrt
fullscreen as:
a) I didn't write it and don't really relish the prospect of delving
into Director more than I have to, and
b) fixing the quicktime movies is going to be quicker (I hope)
** There didn't seem to be any appreciable difference between the SMIL
delivered file and the self-contained movie file... should there have
been?
*** Should anti-aliasing make a difference performance wise? I'm
thinking it's probably negligible.
**** I'd prefer not to lose this info as when we deliver the same
movies on the web we put the subtitles underneath the video so it
doesn't interfere at all. We don't want the DVD-ROM to provide "less"
material.