Quicktime-h.264 and streaming

Comments

GlennChan wrote on 7/3/2005, 1:58 PM
I'm still looking for the best system (Vegas or other) to stream stuff for high speed delivery.

Ok when I stream video I look at the following criteria:
A- Compatibility.
Do they have the codec installed? If not, can the user easily install it?

Does their system have enough computing power to decode the codec? Some formats are designed so that not-so-powerful devices like cell phones can easily decode the video. HD footage is also an issue, because people will need a powerful system to decode the video.

B- Quality

C- Bandwidth

D- "Features". Indexing is nice so the user can scrub through your video (Quicktime is really good about this). Windows Media has to be specifically encoded to allow this (I believe Vegas defaults to indexing on).
If you want others to evaluate your work, indexing is very good to have for the random access.

Another feature that's nice is streaming. With Quicktime, you can embed it into a webpage and it'll stream. Same deal with Windows Media I believe.

E- Does it hijack your system?
This rules out real player, which is not cool. One hijack it does is that the user won't be able to play back QT MPEG4 with .mp4 extension. RP associates .mp4 files to itself, but it can't play them (roll eyes).
Some divX codecs are bundled with spyware.

That being said, this is probably the best route for distribution:
A- Shotgun the audience with multiple choices.
Try to at least do a Windows Media and Quicktime version. This'll cover your bases well.
Windows Media 7 is the most compatible for Windows platforms. Win95/98 may have difficulty with WM7 as the codec is not installed by default. Those platforms won't be able to play WM8 and above as far as I know.
On newer Windows PCs, they can play WM8 and WM9 if they have the codec. Windows Media is supposed to download it automatically, but it doesn't always work.

Quicktime works well with Macs. Also, it'll work with win95+98 if you stick with QT5 (I think QT6 will work too). The user would have to manually install QT Player... and then let it automatically download the appropriate codecs if necessary.

You could do Real Player too, but I think it's evil.
You could also add in 'trick' codecs which offer better compression. (h.264, vp5, etc.)
I never really tried Flash.

Ideally, encode multiple versions for different bandwidths. Indicate file size on the download page... i.e.
56k 1.2MB
broadband (low) 5MB
broadband (high) 20MB

That way people will choose the appropriate size for their connection. If they want a higher quality version, they can download it. Allow an option for people to download the video.

Add clear instructions to make things idiot-proof.


Encoding Windows Media:
You can do it straight out of Vegas. This is easiest.
Or, download Windows Media Encoder, which is free. You can set it up to output multiple versions of one file. For example, use the progressive download presets for 3 different bandwidths. The WME interface is kind of annoying and complicated.

Windows Media gives excellent quality compression- the same as or better than QT with pro codecs, and much better than QT with free codecs. And it's free if you have a PC.

Encoding Quicktime:
You will get better results if you pay for the pro sorenson codecs.

The best video codec to use (according to the criteria above) is sorenson3. It needs QT5 to play, and gives good quality video. I would consider h.264 to be a 'trick' codec which you can add on as another option.

For audio, you have 2 choices. For compatibility, go with qdesign music or mp3. To get good quality out of those codecs, you need to pay $$$. An encoding app like Sorenson Squeeze will encode mp3 audio. IMA 4:1 is also good quality, but it does not compress your audio well so it's huge. It has a fixed 4:1 compression ratio. It has some problems with sharp transients like clapping.

If you want something that's free/cheap and good quality, use MPEG4 audio. I don't think Vegas compresses mpeg4 audio, so you may need QT Pro (like $30?). MPEG4 audio gives better quality than mp3. The user needs QT6 or above to play things back.

General compression tips:
Pick half the frame rate. The motion will look slightly worse, but file size is halved.

Make the image smaller to increase compression. (sorry this may be kind of obvious)

56k: Have decent audio, and just do a slideshow for the video (i.e. 1fps, high quality). This is probably the best compromise. If you need to impress clients, it may be best to have good image quality at the expense of (smooth) motion. As well, you may want to have good image quality at the expense of audio quality/lack of artifacts? (on cheap computer speakers, they may not notice it anyways)

divX: From a test I've done, WMV9 looks just as good if not better. I don't think it's that useful anymore.


Anyways, that's what I know about compression. Other people may know of ways to do things better.
p@mast3rs wrote on 7/3/2005, 2:04 PM
"I would consider h.264 to be a 'trick' codec which you can add on as another option."

Clarify please just what exactly makes it a trick codec. I just want to understand your view before I respond.
vicmilt wrote on 7/3/2005, 4:02 PM
GlennChan -
You are my hero!
Thanx,
v
B_JM wrote on 7/3/2005, 7:47 PM
when you half the frame rate - the file size is not 1/2 , unless you also 1/2 the bitrate ..

DiVX can look better than WMV-9 if you know how to use it .. though XViD and some H264 can look better yet than both .


also just to clarify, there are some really really good FREE QT codecs , but in the context of streaming they are not generally considered thus , except for 3ivx (which technically is not free)

p@mast3rs wrote on 7/3/2005, 7:51 PM
Vic, my system is tied up at the moment and will be for another couple days. Once its free, I will encode an HD source that I have with the various codecs that have been discussed here and post them for you to view to help with your decision. What resolution are you looking to stream?
GlennChan wrote on 7/4/2005, 5:10 PM
"I would consider h.264 to be a 'trick' codec which you can add on as another option."
Perhaps "trick" is not the right word. But anyways... characteristics of a so-called trick codec:
A- Requires a special codec that people probably don't have. I would consider H.264 to be fall under this since many people are on PC. On PC, QT7 isn't really out yet.
In the future, H.264 will probably become a standard codec.
Trick codecs are really for the more advanced users in your audience (in my opinion!).
B- Better compression, or some other benefit that makes up for A.
MPEG1 for example is extremely compatible, which may be good for you. It does not compress very well though.

In any case, the distinction may not be that important? h.264 is a codec worth looking into. I just did some research on it, and it seems to blow the doors off sorenson3 (like 2-3X the amount of compression???).

High/low compression: By high compression I mean good quality to size ratio.