|
 |
|
|
|
 |
 |
Solution Examples
Just some of the more recent projects I have completed
DVD Auto Authoring (PC--Visual
Basic)
DVD Authoring can be simple. However, our company needed to push the
DVD format to the limit. We needed to produce a monthly educational
DVD. The size varies from month to month, but a smaller DVD has the
following contents:
Graphics files: 98
 Scripts: 61
• total lines of code: 512

Menus: 49
• total buttons: 500

Tracks: 13
• total markers (sequences): 615
• total stories: 273
Many decisions to numerous to mention here have to be made in authoring
a DVD. Each button's up/down/left/right navigation has to be set to
jump to another logical button. What happens when a story finishes
playing? How to keep track of which menus the user has been to? What
happens when there is a need for more buttons than allowed by the DVD
specification (of 16)?
For this project, it takes an author a week and a half to create it by
hand. With the Visual Basic program I wrote, it now takes 30 to 60
seconds. The program scans many separate documents (2 MS Word
documents, 12 EDLs from a video editing program, the actual contents of
12 MPEG files, and contents of 49 PICT files) for information in order
to create a 1.4M text document. This text document (similar in format
to XML) is imported by the DVD authoring program. It is then checked
for accuracy and burned.
Thousands of lines of code later, we have a good process.
IFO Repair (PC--Visual Basic)
The past version of DVD Studio Pro (Apple) had a bug that surfaced only
when creating larger projects like the one mentioned above. When
expecting tom jump from location X to a menu, the user is sent to a
different menu. After examining the contents of the compiled DVD
control file (*.IFO), I found an error in the way a certain Program
Chain was created. I created a VB program to automatically scan the IFO
file and correct the bad chain.
While I was in there, I have it
optimize the way chains jump from one to another. This optimization in
some cases actually saves many seconds between selecting an button in a
menu and seeing the requested video.
Render Farm
(Macintosh--AppleScript)
We use LightWave for generating 3D video. To generate the finished
product, rendering video can take days, if we used one machine. The way
to get the render time down to a reasonable time is to use a render
farm. A render farm is simply many computers rendering individual
frames. When completed, all frames are assimilated into a chunk of
video. When we started, Lightwave's methodology for controlling the
render farm was very very limiting.
So I set out to figure how the communication worked between the central
hub and the individual machines. I then wrote an AppleScript that acts
as the hub, keeping track of which machines were assigned which frames.
I also wrote another AppleScript to act as the user interface to the
individual farm computes. This whole process provided a much more
efficient render farm.
Photoshop Automation
(Macintosh--JavaScript)
Photoshop now allows programmers to control the app via JavaScript. One
of the many things accomplished with this new functionality: Read a
text file. Create a Photoshop document for each line of text. Align the
text and apply treatment according to fields within the text document.
Break the lines of text according to predefined rules, and save the
finished documents.
EDL Conversion (PC--Microsoft
Access)
EDL is an acronym for Edit Decision List. Video editors have used these
for years to describe each shot in the video; how long it was, what
effect was used to transition to the next shot, how long the transition
lasted, etc.
Over time, many different formats have emerged. Converting from one
format to another can be quite tedious to do by hand. Enter my Access
app. Now a user can select and EDL, select a few options (like merging
selected parts of another EDL), select what format to save it as, and
click the convert button. No hassles anymore!
Time Code Reader (PC--Microsoft
Word)
We have a continuing need for people in a cubicle to make decisions on
what shots to use on new video programs. These users must select the
exact point in the video to start and to stop. The way to do this is to
take advantage of time code.
In professional video equipment (and some consumer as well), a time
code is stamped on every frame of video (30 frames pass by every
second). This is a unique number consisting of hours, minutes, and
frames. This signal can be sent out of the machine as an audio signal.
To get the video to a user elsewhere, we record this onto a regular VHS
tape. The left channel of audio is replaced with this time code signal.
As long as a user has a VCR and small TV, the video can be seen. How
about grabbing the time code?
One common method to send this time code signal into a personal
computer is to buy a $300 PCI card that takes care of interpreting this
code, and handing of the numbers to a program designed to communicate
with it.
I developed another, less expensive method. This audio signal is sent
into the sound card of the PC. Within Microsoft Word, I decode the
audio waveform, and insert the time code into the Word Doc. This wasn't
easy, but now a dozen or so users can select sections of video down to
the frame for free.
Project Tracking (PC--Lotus Notes)
Lotus Notes allows companies to keep track of all sorts of data, and
view it many ways. Templates exist to handle many tasks with little
effort. Of course, there are times when these don't solve the tasks at
hand.
We needed to track all the steps involved in making videos. Since
multiple departments are involved, and multiple projects are a
different stages of development, Lotus Notes seemed to be the answer.
Some of the design criteria included:
The list of steps (tasks) and the following definitions was to come
from MS Excel
Each task may have default persons assigned

Each task, when started, may be predefined to
• start any number of other tasks
• Email a set of people

Each task, when finished, may be predefined to
• start any number of other tasks
• Email a set of people

Each task, if not completed on time, may email the administrator on
Monday as well as remind the persons assigned
This project involved a good bit of code, but it continues to be a
great asset to producing timely videos.
Microsoft Office Automation
(PC--Microsoft Office)
Many times it's the little things that count. Users seem to appreciate
these the most. MS Office has the wonderful ability to be automated to
nearly the limit of imagination.
How about a button that counts the occurrences of whatever text a user
enters? (I used this myself to get the statistics for the "DVD
Generation" section above.) Simple, but useful.
How about automatically formatting plain text documents to something
more professional?
How about a generic database lookup function? A dialog box allows a
user to grab information in one table of an open document by key fields
in common with another table in a separate document.
These are some of the buttons on many toolbars of happy users.
|
|
|
|