Somebody once said that "...all wars can be avoided but they are not because we need them." Why? Well, allegedly, because wars are the source of progress. I disagree with this statement!
But the intention of this article is neither to make the theory of war, nor to explain the mechanisms of global conflicts. All I shall do is try to make it easy to understand that the war of platforms is something that affects all of us and that yes, there are peaceful solutions to end this war.
Where to begin? With the beginning, of course! Somebody asked if there is any chance to make two different platforms like Wintel (short for Window + Intel, it means PCs, or Windows-native based computers) and Apple Macintosh exchange media files without the nightmare of file conversions, losing extensions and icon disappearing etc. Is there a way to pass the 3D animation created on my Intergraph workstation to Joes G4 to do the final composition and all those eye-candy effects? Then, can I get this back to the PC station, so I can print it to tape? Sounds like a Space Odyssey, especially that we are in 2001.
Once Upon a Time
Well, apparently, that was the beginning. But, to understand the mechanism of these two intensively used platforms, we have to go back in time, at least for a little while.
Back to the days when there were no PCs at all for the professional and home users. Ok, NASA had their computers (how do you think they sent that spaceship to put the man on the moon?!), but who could afford some million dollars home-computer? At that time, two persons, each one working independently, were trying to come-up with a solution to solve this need for personal computers. Of course, they were not working alone, they were the leaders of two teams. These two guys were: Bill Gates and Steve Jobs. They have developed two independent operating systems on two different platforms. These platforms still exist, after more then 20 years, with some major changes, of course.
Basically, a computer is storing data, transferring data between the components of the machine, interpreting data and processing data, performing mathematical operations on data. The big difference in terms of functionality between the two machines is how they interpret, store and transmit data within the machine and, years later, between the machines. To make it easy to manipulate the data, all computers store data in a sequence of zeros and ones, called bits. A sequence of eight bits, forms a byte. A byte for the computer is like the atom for a body: everything is related to the small byte when we are talking computers. The data is structured in words of data, which means in coupled bytes. First, a word of data had a byte. Then, two bytes, and then, four.
Big-Endians vs Little-Endians
The incompatibility problems begun when interpreting the data format. Steve Jobs team machine, Macintosh, was processing the data as follows: to send a word of data, the first byte was sent and then the following, down to the last byte of the word; Gates team machine, was doing the other way around: the last byte of the word was sent first, up to the first one at the end of the transmission. Same thing for storing the data into the hard-disks. This mechanism still happens today, for compatibility purposes.
Do you remember the Story of Gulliver, when the two kings were fighting on what is the best way to eat an egg: the little-endian vs big-endian? This inspired engineers and software designers when they named this incompatibility in data transmission the big-endians, little-endians situation.
Apple Talks loud and clear
Now, imagine you want to transfer information from Macintosh to Wintel and viceversa. Impossible! some said. Will never be possible! said others. What a nightmare!
Actually, there is a piece of software, AppleTalk by its name, who can do the service to translate from big-endian into little-endian and backwards. Problem solved, we can talk to each other without speaking the same language.
The answer to the question raised above is yes, one can exchange files between the two platforms without any pain and still work things out perfectly. And I am speaking out from my own experience!
Its time for a Quicktime
One solution, and the most elegant, comes from Apples side. Its name is Quicktime. I guess everybody knows this name, is one of the most popular player in the business. The ones who know about quicktime, please bear with me, even if I might be too kinder-ish. Thank you!
There are two versions of Quicktime available now days. The one for Macintosh and the one for Wintel. The players are 100% FREE to download from apples website. The url is:
This is where one can download the standalone installer. The other workout is to install it directly from the website. I recommend the first option, is more elegant and more understandable (read user-friendly).
What is Quicktime player, anyway?
It is a cross-platform player, used to play any types of media, from .mov files to static images (tiffs, bmp etc) to sound files (aiffs, mp3s) etc. Lets analyze! Cross-platform: this means that, regardless the platform, the files can be played on both platforms, or machines. Player, well, quicktime is a player, which means it plays the files. Intended, first, to play the movie files format (those files that end in .mov, now days can play a lot of file formats.
For further reference on file formats playback capability, please consult:
Is an universally accepted player for every single piece of software that produces media files. Adobe After Effects, Avids whole line, Discreets, Matrox, DPS, Media 100, Macromedia Flash and Director, Media Cleaner, you name it! What makes it so extraordinary is that it has lots of codecs included already in the free player. What does this mean? You can export from your digital content creation software (referred as dccs, further on) with different compressions schemes, according to your needs and be able to play the *.mov files in any computer that has Quicktime player properly installed. Regardless the platform; remember, it is a cross-platform media player.
The suitable applications for quicktime are infinite: from high-end video post-production to internet streaming, from multimedia presentations to film post-production. As you can notice we have covered the whole spectrum of visual media now days.
Too good to be true
one might say. No, better said too true to be good. What are the limits of this powerful medium of communication? Well, there are some limitations, of course, but they are reasonable. I mean, lets take an example: if you record an event with your VHS-C camera, and then do the transfer on Digital Betacam format, make several generation copies and then try to broadcast it MPEG-2 @30 Mbps, you still get VHS-bad-copy quality image. You will not be able to tell Chip from Dale! That kind of limitation is what we are talking about. What is meant to be for high-end video will have a certain quality, what is meant to be for film, will have another quality and what is meant to be for multimedia and internet streaming will have a different quality.
I think at this point a couple of examples will be helpful.
Case # one: in a post production facility, one needs to transfer high quality video files from one computer to another several times. You have a Wintel PC with a 3D animation dccs. You do your animation in this software, you export the file WITH ALPHA CHANNEL as a quicktime movie, enabling the cross-platform export option (on the dccs that have that option; if they dont have it, dont panic, it comes by default!!!!). It is preferable to export with no compression, so you dont loose quality. Animation compressor can do an amazing job and is supported by both platforms. (On codecs, later, folks!) Now you want to import it in another dccs, to composite it and do some effects. This software resides in another computer and is an Apple Macintosh G4 PowerPC. The mean of transfer can vary, we will not cover this subject here. Once you have your quicktime movie in your G4, you import it in the compositing dccs with its alpha channel and do the job. Any pain 'til now? Dont think so. Then you send your video back to PC platform, because you want to print the movie to tape.
Case # two: a postproduction facility needs to present a preview to a client. Same scenario as in the first case, except that you want to send the video to your client for preview. You export the piece of video w/o alpha channel, as a small and compressed quicktime movie. Sorenson compressor does a great job (on codec, later folks!) you burn a CD and take it to the client. Make sure you add on that CD the standalone quicktime installer, for both platforms. Maybe your client lives in the past and does not have quicktime player installed yet in his/her computer! Now, no matter what platform the client has, he/she can still see you work and sign your paycheck!
Codecs. Which one is appropriate for my application?
A codec is an algorithm of coding and decoding the information. Basically, a codec is a piece of software that resides in your computer and is called by the dccs when need to interpret your media file or when you need to export/render your media files. The codec can reside in a chip on your video-capture card, in that case we say its a hardware-codec. This is very useful for real-time capability.
There are several codecs available with the free version of the quicktime player. Lets analyze the most common ones!
H.261 Video CODEC is ideal for videoconferencing and video transmission applications. The ITU-T H.261 standard is part of the H.320 group of standards for audio/visual communications. H.261 forms the heart of a very wide range of videoconferencing and video communications systems. Applications include: Studio-based and desktop videoconferencing; Surveillance and monitoring; Computer-based training.
More info: http://www.4i2i.com/h_261_software_video_codec.htm
H.263 is a standard video-conferencing codec. As such, it is optimized for low data rates and relatively low motion. H.263 is an advancement of the H.261 and MPEG-1 standards, designed with the goal of producing substantially better quality below 64 kbit/sec.
Pros: Good quality at low data rates. Generally better quality than H.261
Cons: Standard H.263 streams can only have a fixed frame size (QCIF, or 176x144 pixels). Not always as good at very low bitrates (such as 14.4 modem) as H.261.
Tips: H.263 has a strong temporal compression component, and works best on movies in which there is little change between frames.
Cinepak Toolkit is an easy-to-use compression tool for QuickTime. Cinepak Toolkit has been optimized to work with the NEW CinepakPro compressor to deliver high-quality compressed digital movies for the Web, CD-ROM, DVD-ROM, Kiosk, Intranet and game environments. Its greatest strength is its extremely low CPU requirements. As computers have continued to advance in years since Cinepak was created, developers are now using Cinepak at higher (and lower) datarates than it was originally designed for, and making ever-larger movies.
Cinepak's quality/datarate was amazing when it was first released, but is not in the same class as newer codecs available today. There are higher-quality (and lower-data-rate) solutions for almost any application.
More info: http://www.cinepak.com/text.html
Component video codec:
The Component Video codec (also referred to as the "YUV" codec) was introduced in QuickTime 1.6. It compresses at a ratio of 2:1, and is best suited to archival or interim storage of digitized video.
Pros: Asking QuickTime to record in Component Video bypasses a couple of steps during digitization, and this can improve the capture frame rate on some digitizing hardware.
Cons: Due to its compression ratio of 2:1, the Component Video codec will require substantial disk space to store captured video.
There are three JPEG-based codecs built into QuickTime. These are: Photo-JPEG, MJPEG-A and MJPEG-B.
M-JPEG stands for "Motion JPEG," and is identical to Photo-JPEG with two differences. First, Photo-JPEG is for progressive images, which M-JPEG compresses the two fields of interlaced images separately. Second, the M-JPEG codecs have translators built-in to support the different capture cards (hardware codecs).
M-JPEG is not the same as MPEG, although the names are confusingly similar. The primary difference is that MPEG provides temporal compression, while M-JPEG only provides spatial compression. In English, this means the frame is compressed using the information only from within the frame, while MPEG is using the information from previous and next frames to compress one frame. It is suitable for non-linear editing. Many hardware codecs are based on this class of compression.
Pros: M-JPEG codecs are often used as storage formats for large files that need to be archived with good quality. It is a lossy codec, but at 100% quality, the image degradation is minimal.
Cons: Not appropriate for final delivery of video (on WWW or CD-ROM).
Tips: Avoid saving the same file multiple times with any JPEG codec, as the JPEG artifacts may build up and become objectionable.
The Photo JPEG codec implements the Joint Photographic Experts Group (JPEG ISO version 9R9) algorithm for image compression. It is generally used for storage of still images. It can also be used for editing and storage of high-quality video files.
Pros: Picture quality is generally good enough for use in desktop publishing applications. This codec is great for compressing high-resolution, photographic images, and is also very good for 8-bit grayscale images. It works very well for "slide-show" movies that have a very low frame rate.
Cons: Not appropriate for delivery of motion video
Tips: If the same file is saved multiple times, the JPEG artifacts may build up and become objectionable.
QuickTime's "Animation" codec is best suited for storage of two-dimensional animation and computer-generated video content. It is lossy at quality settings from 1%-99%, and lossless at 100%. Animation at 100% is generally used as a "storage" or intermediate work format.
Pros: This codec is great for sequences of screen images. Since it is lossless, Animation at 100% will not introduce any noise into the video signal, which is why it is sometimes used instead of JPEG. The Animation codec works with all bit depths. It is slightly slower than the None codec, but usually produces smaller files.
Cons: At 100% quality, files compressed with the Animation codec may be quite large. Images captured from videotape generally have visual noise which can corrupt the inherent similarity of the pixels and make it more difficult for the codec to achieve good compression. This problem is surpassed if you have a good-quality video.
Tips: The Animation codec's performance and compression ratios are highly dependent on the images being compressed. The codec is very sensitive to picture changes and generally works best on images that have been generated synthetically.
QuickTime's "Graphics" codec uses an 8-bit compression approach very much like animated GIFs. It provides higher compression ratios than the Animation codec at the expense of slower decompression time.
Pros: The Graphics codec typically generates a compressed image that is a little less than one half of the size of the same image compressed by the Animation codec. it is also good for use with video captured at 16 or 24 bits and dithered down to 8 bits.
Cons: Not well suited to video. The Graphics codec can decompress a given image at only half the speed of the Animation codec.
QuickTime "None" codec doesn't actually compress. As such, it is lossless and produces huge files. It is often used as a storage format for files that need to be archived with perfect quality, as well as an intermediate format for files that need to have effects applied to them multiple times.
Cons: The None codec produces huge files. Movies using the None codec normally won't play smoothly given their high data rates. The Animation codec is usually a better storage format given its smaller file sizes.
Tips: When converting full-color data to indexed colors (256 colors or less) using the None codec, the Quality setting affects how the codec does the conversion. If the Quality setting is set to Most, you'll get a dithered image. If the Quality setting is set to Least, you'll get a posterized image.
QuickTime's "Video" codec was one of the first widely available codecs for delivering compressed digital video. It predates Cinepak, and does not include data rate control capabilities. This codec was designed to run on the computers of a decade ago, so it makes low demands on the CPU. Because of this, the image quality at a given bitrate is not comparable to newer codecs. The "Video" is now only used for special purposes, such as quick "preview" compressions, and should almost never be used for delivery of compressed video.
Pros: Plays well on the absolute slowest machines. Compresses very quickly, so it's good for visualization tests.
Cons: Image quality at a given bitrate is not nearly as good as with modern codecs. Not generally appropriate for delivering video (either web or CD-ROM)
One of the best in the business, folks, when it comes to web and CD-ROM publishing. Compared with Cinepak, Sorenson Video generally achieves higher image quality at a fraction of the data rate. This allows for higher quality, and either faster viewing (on the WWW), or more movies on a CD-ROM (often four times as much material on a disc as Cinepak). Now, at its third version, is just great. You can find Sorenson in two versions: Standard Edition, a free plug-in that comes bundled with Quicktime 5 player and the Developers Kit, or Pro. The big difference between the two of them is the Pro version has a lot of compression controls activated. Such as Variable Bit-Rate.
Let me explain myself: when movies are compressed, each frame of the video must be encoded to a certain number of bytes. There are several techniques for allocating the bytes for each frame. Fixed bitrate is used by certain codecs (like Cinepak), which attempt to allocate approximately the same number of bytes per frame. Variable bitrate (VBR) is supported by other codecs (such as MPEG-2 and Sorenson), and attempts to give each frame the optimum number of bytes, while still meeting set constraints (such as the overall data rate of the movie, and the maximum peak data rate).
Almost every DVD-Video feature film available today uses variable bitrate encoding. The need to acheive the best possible quality in a given space is important even on a 4.7GB disc; it is even more important on a 650MB CD-ROM or a 1MB web file.
More info: www.sorenson.com
And last, but not the least: MPEG
MPEG is a set of international standards for audio and video compression.
MPEG-1 provides excellent audio and video quality at 1x and 2x CD-ROM data rates. It is used for a wide range of applications, from CD-ROM to VCM ("white book" video CD) to kiosks. MPEG files may be either "system streams" (both audio and video), or "elementary streams" (audio or video.)
In order to achieve this level of quality, MPEG requires fairly powerful playback hardware. Nearly all computers sold today have sufficient CPU power for basic playback, and many high-quality video cards now include MPEG playback acceleration. As an open standard, MPEG has a wide range of encoders and decoders available. The standard defines a specific way to decode a stream, so in theory all decoders should look the same. But it does not define a specific way to encode a stream, so the results achieved by different encoders can range from marginal from some consumer applications, to very good for professional encoders.
Pros: Excellent audio and video quality. Widely implemented standard, so files can be used in many environments
Cons: Moderately high playback requirements; many older are not capable of viewing MPEG. Not well-suited to WWW video (wait for the upcoming MPEG-4 folks!)
MPEG-2 provides broadcast-quality digitally encoded audio and video. It offers outstanding image quality and resolution (somewhat better than laserdisc). MPEG-2 is the primary video standard for DVD-Video.
Playback of MPEG-2 video generally requires special hardware, which is built into all DVD-Video players, and most (but not all) DVD-ROM kits. Some of the fastest CPUs may be able to play MPEG-2 without specialized hardware. For instance, a 400 MHz iMac with DVD player can do the job; or a Pentium II 500 MHz, too.
MPEG-2 was based on MPEG-1, but optimized for higher data rates. This allows for excellent quality at DVD rates (300-1000KBps), but tends to produce results inferior to MPEG-1 at lower rates. It is an excellent broadcast-quality audio and video codec. It is also an international standard which is becoming widespread in broadcast industry.
Solution number two
Another cross-platform solution: tiff sequence or targa sequence. It is not that elegant but is more sure and more intuitive for some people. Basically the solution consists in creating a sequence of files that share the same root-name and teminated with a number, designating the frame number in the sequence.
To be more specific, here is an example: let's assume we have one second of video exported as a tiff sequence. In NTSC, the sequence will comprise the following files: name.0000.tif, name.0001.tif, name.0002.tif, name.0003.tif,
, name.0028.tif, name.0029.tif.
But, beware! There are some dccs that export the folowing pattern of files: name.1.tif, name.2.tif,
, name.10.tif, name.11.tif, ..., name.20.tif, name.21.tif,
, name.29.tif. This is not alway good, because some dccs will import the files in this order: 1, 10, 11, 12,
, 19, 2, 20, 21,
, 29, 3,
, 9. I guess this was not the way you expected your program to behave! The workout of this problem is to manually put your first 10 frames in a separate folder, then the next 90 frames in another folder, so you can easilly manage the frame-range numbering situation. You will have in a folder the frames 0 to 9, in another folder the frames 10 to 99, in another folder the frames the frames 100 to 999 and so on. It's not that complicated, so dont panic!
That would be the elegant way of this method. If not, well
There are some pros and cons of this solution, too.
Pros: Good picture quality, since the tiffs and targas are not compressed very much. It is good for compositing purposes, because it preserves the information on alpha channel.
Cons: Well, being a sequence of static frames, its non-interlaced. This can cause problems on rapid movements inside the frame, like an unwanted strobe effect. The frame-range numbering situation discussed above.
Note: Well, fellow farmers and worldwide COW-workers, that was it. I hope I answered some of your questions. These are the two methods that I know of and have used for four years, since I started to work on both platforms. If you have any questions, comments and suggestions, I will see you in the Macromedia Director Forum, at the COW.