PDA

View Full Version : HTTP pseudo-streaming .mp4 in Quicktime


Tom Ellard
8th January 2005, 23:44
Hi, I've been using QuickTime player to make .mp4 videos that 'stream' from a HTTP server. When you give the URL to a QT player at home it buffers up a bit of the video and then starts playing. All is good.

I was trying to improve the quality a bit by encoding in Nero - these mp4 files load up in QT just fine and play with no artifacts. But when I place them on a HTTP server the whole file has to download before it plays... :confused:

- there's some difference between the .mp4's - is it something I can manually add on to the .mp4's that Nero makes? Some kind of 'hey I can stream' - the Movie info in QT Player looks the same, and they play fine so it's some part of the .mp4 container I don't understand.

Cheers.

keel
9th January 2005, 01:03
Originally posted by Tom Ellard
Hi, I've been using QuickTime player to make .mp4 videos that 'stream' from a HTTP server. When you give the URL to a QT player at home it buffers up a bit of the video and then starts playing. All is good.

I was trying to improve the quality a bit by encoding in Nero - these mp4 files load up in QT just fine and play with no artifacts. But when I place them on a HTTP server the whole file has to download before it plays... :confused:

- there's some difference between the .mp4's - is it something I can manually add on to the .mp4's that Nero makes? Some kind of 'hey I can stream' - the Movie info in QT Player looks the same, and they play fine so it's some part of the .mp4 container I don't understand.
Some ideas...
1. QT Player only plays MPEG4 simple profile, are you using that in Nero? (probably, as they play)
2. Use the right HTML code, and enable AutoPlay in it, http://www.qtbridge.com/pageot/pageot.html
3. Open the movie in QT Player Pro, enable AutoPlay, and save.
4. There may be some way in which QT Player handles .mov files differently from .mp4 on playback, did you try to save the Nero encodes as .mov (if it can), or opening them up in QT Player Pro and saving as .mov, to see if you get the same result?
5. I have not had any problems with the 3ivx MPEG4 simple profile and "fast start" or "progressive download" movies, which is what Apple calls your "pseudo-streaming".
http://video.conncoll.edu/test/codecs/
3ivx provides much better quality than Apple's MPEG4, not sure how it measures up to Nero though.

Tom Ellard
9th January 2005, 02:34
Yes thanks, I went to your test site and checked out the examples - which got me asking the question. I'm aiming to do the same as example 5, but to use the QT plugin. I've got "QuickTime For The Web" so I think the HTML is correct, but it doesn't cover MP4 in too much detail.

Putting the MP4 stream into the QuickTime container certainly works and that's what I have done in the meantime - but it increases the filesize too much for small clips. Your suggestion about 3ivx sounds good, I've downloaded the software and I'll do some tests.

Ideally, when QT 7 comes out with AVC, it'll be a cross platform solution.

I'm still curious what the factor is that's causing the behaviour. I suppose I could pull out a MP4 tool and start poking around. :cool:

keel
9th January 2005, 16:20
Originally posted by Tom Ellard
I've got "QuickTime For The Web" so I think the HTML is correct, but it doesn't cover MP4 in too much detail....
Putting the MP4 stream into the QuickTime container certainly works and that's what I have done in the meantime - but it increases the filesize too much for small clips...
Ideally, when QT 7 comes out with AVC, it'll be a cross platform solution....
I'm still curious what the factor is that's causing the behaviour. I suppose I could pull out a MP4 tool and start poking around. :cool:
"QuickTime for the Web" is the best book for QuickTime issues, but you are right, mp4 is not covered in much detail.
The main thing with QT HTML is to use both the EMBED and the OBJECT tags.
There's also a lot of stuff on Apple's web sites http://www.apple.com/quicktime/tools_tips/tutorials/

Putting the mp4 into QuickTime should not increase file size very much. Are you opening the file in QT Player Pro, and using the "Save As" function? I just tried it on a 1.8 MB mp4 file and it only increased the size by 2k when I saved it as a .mov. What size increase are you noticing?
QT7 will be cross-platform, Apple has always tried hard for equal features in both PC and Mac platforms, unlike Microsoft's WM technologies.
If you have questions that are not answered here, you might also ask in the Apple QT mail list at http://lists.apple.com/archives/quicktime-users

bond
9th January 2005, 18:53
try to hint your streams when streaming them (i dont think nero can do this, but mp4box and mp4creator can)

also qt doesnt include a good mpeg-4 video decoder, so tick the "qt compatibility" option in nero recode2, which will automatically restrict all options that are not allowed in mpeg-4 simple profile (which is the only mpeg-4 profile qt handles)

keel
9th January 2005, 23:39
Originally posted by bond
try to hint your streams when streaming them (i dont think nero can do this, but mp4box and mp4creator can) You don't have to hint your QT movies if you are delivering them through HTTP with a web server. You have to hint them if you are truly streaming them from QuickTime Streaming Server or Darwin Streaming Server. Not sure if they have to be hinted from helix server. QT Player Pro can also create a hint track.
also qt doesnt include a good mpeg-4 video decoder, so tick the "qt compatibility" option in nero recode2, which will automatically restrict all options that are not allowed in mpeg-4 simple profile (which is the only mpeg-4 profile qt handles) I have not compared QT's MPEG4 simple profile decoder with other ones. However, are you saying that you get a better decoder when you use nero recode2? It seems you are only getting a better encoder than Apple's.
To clarify, I did not state 3ivx was better than nero in creating MPEG4 simple. But as you know 3ivx can also create MPEG4 advanced simple with an extra "tick"

bond
9th January 2005, 23:47
Originally posted by keel
I have not compared QT's MPEG4 simple profile decoder with other ones. However, are you saying that you get a better decoder when you use nero recode2?indeed. qt's decoder only supports decoding mpeg-4 simple profile. nero (and 3ivx, divx5, xvid, enviviotv aso...) support decoding mpeg-4 advanced simple profile (which adds b-frames, qpel, gmc, custom quants to simple profile, options which are not decodeable by qt)

still nero, xvid, divx5 and 3ivx dont support streamed .mp4 files. enviviotv and mpegable's decoders do. there are also other players that do support streamed ASP, like videolan aso. have a look at the mp4 faq

Tom Ellard
10th January 2005, 00:24
While I'm still experimenting with HTTP (and many thanks for all the help) I tried making a .mp4 with Nero Recode using the default settings (I didn't tick the QT Compatable box). It still played in QT. Humph. :)

Yes, you're right - if I make the .mp4 then pop it into the container then it's smaller than if I make a .mov using the mp4 codec. That's curious, but it's good. In one test - 2.17Mb VS 3.13Mb

Bond:
there are also other players that do support streamed ASP, like videolan aso. have a look at the mp4 faq

Alas and alack, I am providing video to a wide audience, they are going to use the player that came with their machine, and that leaves me with QT Player, WMP and Real. %99.9 of the world are never going to install a new player just for me :p

keel
10th January 2005, 03:00
Originally posted by bond
indeed. qt's decoder only supports decoding mpeg-4 simple profile. nero (and 3ivx, divx5, xvid, enviviotv aso...) support decoding mpeg-4 advanced simple profile (which adds b-frames, qpel, gmc, custom quants to simple profile, options which are not decodeable by qt) Yes, I know that QT Player only decodes MPEG4 simple profile. You mentioned in an earlier message that "qt doesnt include a good mpeg-4 video decoder", which led to my question.
As QT can only decode simple profile, let me paraphrase better my original question, as we are starting to go round in circles:
Do you think other non-quicktime MPEG4 players do a better job of playing back (decoding) the same MPEG4 simple profile video file? Better as in providing higher visual quality. I realize advanced simple profile offers the promise of better quality.

For $6.95 you can buy an MPEG4 advanced simple profile decoder from 3ivx that works with Quicktime Player, quantity licensing available. It may have a limited market, as most folks don't like to pay extra for decoders.

bond
10th January 2005, 13:58
Originally posted by keel
Do you think other non-quicktime MPEG4 players do a better job of playing back (decoding) the same MPEG4 simple profile video file? Better as in providing higher visual quality.no, by default all players output exactly the same picture
of course some decoders offer postporcessing (eg ffdshow lets you add sharpness aso), but thats surely not an option for the "everyday" user

For $6.95 you can buy an MPEG4 advanced simple profile decoder from 3ivx that works with Quicktime Player, quantity licensing available.3ivx is available for free for endusers!

btw realplayer10 (the payware version, not the free one), also supports mpeg-4 simple profile .mp4 files playback, eg streaming (the freeware version only supports audio-only .mp4 files)

also mpegable offers a free plugin which enables .mp4 streaming playback in wmp10

have a look for the links in the mp4 faq

keel
11th January 2005, 22:51
Originally posted by bond
3ivx is available for free for endusers!
Well, only for testing purposes. Here is 3ivx's policy:
"The free codec is for testing purposes only, personal is for non-commercial use, pro is for commercial use." It's the same codec, but free for testing, $6.95 for personal use, and $29.95 for professional use. It seems they trust the honor system....

bond
11th January 2005, 23:02
Originally posted by keel
It seems they trust the honor system....i would more say that they offer their stuff, in fact, for free as a method to spread the word about it and they are sucessful imho :)