Log in

View Full Version : AVC vs FLV vs WMV vs XVID, 960x540 @ 2 kbps


nhope
22nd March 2008, 09:46
edit: obviously that title should read 2000 kbps!

I'm trying to decide how to publish HD video on the web since Stage6 closed down so I've done a comparison test of HD web video formats (http://www.bubblevision.com/underwater-video/HD-web-video-formats.htm) at 960 x 540 and 2000 kbps CBR. I've published 4 contenders:

- FLV On2 VP6 2-pass in Flix Pro
- AVC in Sony AVC in Vegas Pro
- WMV 9 2-pass in Vegas Pro
- Xvid in VirtualDub frameserved from Vegas Pro

I've used 2000 kbps to try and show some differences between the codecs, but 2300 - 2500 kbps would generally give a better result.

I have provided both direct links and links to open the videos in embedded players in a Javascript popup window.

Download them and please let me know your comments about quality and playability on your sytem.

Thanks!

bond
22nd March 2008, 10:24
just had a short look and recognized two things:

1) 960 x 540 is clearly not high definition, dvds 1024x576 is classic standard definition

2) sony avc sucks hard, dont use it

nhope
22nd March 2008, 10:40
Thanks bond. Well, wrong terminology perhaps but they are high definition compared with the vast majority of video on the web.

Yes, I'm not a fan of the AVC one either. Too much contrast for me. Note that I also did an encode with the Main Concept AVC/AAC codec in Sony Vegas and the result was very similar to Sony AVC.

bond
22nd March 2008, 10:43
Yes, I'm not a fan of the AVC one either. Too much contrast for me. Note that I also did an encode with the Main Concept AVC/AAC codec in Sony Vegas and the result was very similar to Sony AVC.in terms of quality?

what version of the mainconcept encoder is used in vegas?

nhope
22nd March 2008, 12:08
Yes I thought the quality was very similar.

I've uploaded a MainConcept version here (http://www.underwater-footage.com/videos/MainConcept-AVC-960x540-2000kbps.mp4).

Vegas doesn't show the MainConcept codec version but Gspot and VLC report the codec used as "avc1" and the name as "H.264/MPEG-4 AVC", the same as the Sony AVC version?

Is there a better AVC codec I can plug into VirtualDub?

nhope
22nd March 2008, 15:28
OK, I have a some questions related to this. Forgive me if some of them are rather newbie:

1. Is there a way to find out which version of the MainConcept codec has been used by Vegas for the encode? I notice version 7.3.0 had some very good test reports. Perhaps Vegas has an older version.

2. Can I get my Xvid .avi file into a .mp4 file that can be embedded in a recent Flash Player? Can mp4box do this? I think the Xvid is H.263 but doesn't Flash Player need H.264?

3. Can a file encoded with x264 be embedded in a recent Flash Player? Would the viewer need to download an extra codec besides the Flash Player?

4. Is encoding with x264VFW in VirtualDub a good solution, bearing in mind I like to frameserve an AVI out of Vegas? Is there a better way to encode with x264. I am a non-expert user.

Thanks!

bond
22nd March 2008, 16:14
1. Is there a way to find out which version of the MainConcept codec has been used by Vegas for the encode? I notice version 7.3.0 had some very good test reports. Perhaps Vegas has an older version.sniff through the files and documents of vegas

2. Can I get my Xvid .avi file into a .mp4 file that can be embedded in a recent Flash Player? Can mp4box do this? I think the Xvid is H.263 but doesn't Flash Player need H.264?mp4box can do it, but flash needs h.264 which xvid is not compliant with, so you need to reencode

3. Can a file encoded with x264 be embedded in a recent Flash Player? Would the viewer need to download an extra codec besides the Flash Player?no extra codecs :search: for how to do it

4. Is encoding with x264VFW in VirtualDub a good solution, bearing in mind I like to frameserve an AVI out of Vegas? Is there a better way to encode with x264. I am a non-expert user.avi sucks, use mp4 or mkv

nhope
22nd March 2008, 21:31
Thanks bond.

I've done an x264 version here:

Embedded in Flash player (http://www.bubblevision.com/underwater-video/x264-vdub.htm)

Direct link (http://www.underwater-footage.com/videos/x264-960x540-2000kbps.mp4)

How do you think this compares to the others?

My workflow was not elegant:

1. Frameserve from Vegas to VirtualDub using Debugmode Frameserver
2. Deinterlace, resize and encode with x264vfw inside VirtualDub and save as AVI
3. Save Sony AAC from Vegas
4. Mux and convert to .mp4 in mp4box

I tried a few other ways to encode with x264 and none worked. Super made the bitrate far too high. Avidemux could not read the AVI I frameserved out of Vegas. x264vfw inside Vegas generated an error.

Can anyone suggest a better workflow for this, starting with the video in Sony Vegas Pro?

Raptus
24th March 2008, 16:16
Is there a reason you don't start a progressive project in Vegas to begin with?

Anyway, I'd suggest the following workflow:
1) Frameserve from Vegas with the Debugmode plugin
2) Open the signpost AVI in an AVS script, use whatever processing you need (deint, resize, etc.)
3) Open the AVS in MeGUI and encode using x264 directly to mp4

benwaggoner
24th March 2008, 16:35
The best readily availble encoder for WMV right now is the Expression Encoder 2 beta, which incorporates the VC-1 Encoder SDK.

http://www.microsoft.com/expression/products/download.aspx?key=encoder2beta

Here's my own 720p 2 Mbps test I did with it a couple of weeks ago:

http://on10.net/blogs/benwagg/21587/

It's being discussed over here as well:

http://forum.doom9.org/showthread.php?t=135872

nhope
26th March 2008, 18:20
Thanks Raptus and Ben.

Is there a reason you don't start a progressive project in Vegas to begin with?

I'm starting with 1080i and Vegas is not known for its deinterlacing quality. I am resizing to 540 lines and I want to be sure I'm just dropping one field. The "interpolate" deinterlace method in Vegas might do this if the number of lines is exactly halved but I'm not sure.

Anyway, I'd suggest the following workflow:
1) Frameserve from Vegas with the Debugmode plugin
2) Open the signpost AVI in an AVS script, use whatever processing you need (deint, resize, etc.)
3) Open the AVS in MeGUI and encode using x264 directly to mp4

Thanks for the advice. I'll go and get my head around AVIsynth.

Sagittaire
26th March 2008, 19:48
Possible to obtain the source (720p or better 1080p) ... ???

cakuhnen
26th March 2008, 19:48
Vegas are using the old versions i think, to check just go to the program directory search for this file *.h264vout.001, this are the Mainconcept encoder library. Current SDK version are 7.6.0.21276

nhope
27th March 2008, 04:48
Sagittaire, what do you want to do with the source?

Thanks ckuhnen.

Version of MainConcept H.264/AVC encoder mch264vout.dll used in Sony Vegas Pro 8.0b is 2.0.1889.0, 2006/01/05.

Sagittaire
27th March 2008, 10:27
Sagittaire, what do you want to do with the source?

Thanks ckuhnen.

Version of MainConcept H.264/AVC encoder mch264vout.dll used in Sony Vegas Pro 8.0b is 2.0.1889.0, 2006/01/05.

1) Make the encoding with best solution for H264 and VC1.

2) 2.0.1889.0 is a very old version. Try with Converter Studio.

nhope
27th March 2008, 16:48
Sagittaire, I'm on rather limited bandwidth, and I would need to put my watermark on it, so I can give you either a 182MB .m2v 1080i video stream re-encoded at best settings from the original HDV .m2t in Vegas Pro, or I could try to upload overnight a 1 GB Huffyuv 960x540 .avi that has been deinterlaced and resized in VirtualDub. If you prefer that then how would you want it deinterlacing and resizing?

Sagittaire do you mean the Elecard Converter Studio that costs $240?

OK so now I'm trying to improve my workflow and tune the x264 encode.

I'm frameserving 1080i from Vegas in RGB24 to AviSynth and my script looks like this:

-------------
AviSource("d:\frameserver.avi")
SeparateFields()
SelectEven()
BilinearResize(960,540)
ConvertToYV12()
-------------

Then I'm opening this AVS in MeGUI to encode with x264.

Here's an encode I did using the HQ-Slowest profile with the bitrate increased from 1000 to 2000 kbps. Audio is Nero Digital AAC at 128 kbps CBR:

Embedded in Flash Player (http://www.bubblevision.com/underwater-video/x264.htm) (refresh if you loaded the previous x264 page as it's the same URL)

Direct Link (http://www.underwater-footage.com/videos/x264-MeGUI-HQ-Slowest-2000kbps.mp4)

Some questions:

1. Am I right to use bilinear resize in AviSynth, bearing in mind the video is being downsized and only in the x axis? Or might bicubic or lanczos or lanczos 4 be preferable?

2. The HQ profiles create a VBR stream don't they? Should I be aiming for a CBR stream for progressive download and if so, which MeGUI profile should I use for that?

3. Is the HQ-Slowest profile (with the bitrate increased to 2000 kbps) a good choice for excellent quality but also playability in the Flash 9 Player? Is there a better choice? (actually it's looking like 1500 kbps will be sufficient with x264)

4. Quicktime in Windows has more trouble playing this x264 file than my Sony AVC or MainConcept versions and then crashes. Why might that be and can I fix it?

5. What would be a good choice of AAC audio profile, considering the source is 44100khz WAV stock music? Nero Digital NDAAC-HE-64kbps profile perhaps?

Thanks!

audyovydeo
27th March 2008, 17:31
-------------
AviSource("d:\frameserver.avi")
SeparateFields()
SelectEven()
BilinearResize(960,540)


here you're throwing away 50% of you video quality before you even start compressing it. Deinterlace with a proper deinterlacer (I use TDeint, but there are hundreds of options).

Edit : you're actually deleting half your image, then upsizing it back to 960x540.
download TDeint for avisynth and replace the above lines with :

TDeint(0,0)

(this is assuming your footage if BFF).
There are more complex options to TDeint which dramatically improve quality, but we'll discuss them later. Proper deinterlacing will give you better source quality which will give better compressibility later down the production chain.


Here's an encode I did using the HQ-Slowest profile with the bitrate increased from 1000 to 2000 kbps.


I don't use megui anymore and I don't remember this profile, but for web download you should compress to a max. However, look at point 4 below.



Some questions:

1. Am I right to use bilinear resize in AviSynth, bearing in mind the video is being downsized and only in the x axis? Or might bicubic or lanczos or lanczos 4 be preferable?

2. The HQ profiles create a VBR stream don't they? Should I be aiming for a CBR stream for progressive download and if so, which MeGUI profile should I use for that?


3. Is the HQ-Slowest profile (with the bitrate increased to 2000 kbps) a good choice for excellent quality but also playability in the Flash 9 Player? Is there a better choice? (actually it's looking like 1500 kbps will be sufficient with x264)



I don't use megui so I'll let others answer.



4. Quicktime in Windows has more trouble playing this x264 file than my Sony AVC or MainConcept versions and then crashes. Why might that be and can I fix it?

5. What would be a good choice of AAC audio profile, considering the source is 44100khz WAV stock music? Nero Digital NDAAC-HE-64kbps profile perhaps?




4. Windows QuickTime is problematic if encoding to High Profile. If you choose the quality used in QuickTime Trailers (Baseline, no cabac, etcetera) you'll be much safer, but you'll get lower compression and bigger files.
File size doesn't seem to worry you -- it worries me: it was a longish download for my taste, even on a business connection.

5. you should get by with 64kbps AAC, let Nero decide the profile.


cheers
audyovydeo

nhope
27th March 2008, 20:52
Thanks audyovydeo.

here you're throwing away 50% of you video quality before you even start compressing it. Deinterlace with a proper deinterlacer (I use TDeint, but there are hundreds of options).

Edit : you're actually deleting half your image, then upsizing it back to 960x540.

Actually there is no upsizing going on because 540 pixels high is exactly half the height of 1080i, so when I discard one field the height is correct and then it just needs to be reduced in width.

I have no doubt that a deinterlacer like TDeint would be preferable for any other size than exactly half the height, but my theory was that discarding one field is the method of least quality loss when exactly halving the height.

Of course this method means half the temporal information has gone so there will be less motion blur but is that a bad thing?

Or have I got this all wrong?


File size doesn't seem to worry you -- it worries me: it was a longish download for my taste, even on a business connection.
Once I've decided on my format I'm planning to reduce the bitrate as much as acceptable. I will have lower resolution versions of the same files as well, so these are the high quality ones and will be clearly marked as such in the links.

audyovydeo
27th March 2008, 23:59
Actually there is no upsizing going on because 540 pixels high is exactly half the height of 1080i

my bad (I've been waiting for the occasion to use this curious expression ;-)

re : deinterlacing, if there was an easy solution, it'd already been discovered.
50% of anything is a lot.
My opinion is that it is senseless to dump 50% of data at the touch of a magic wand, then feed it to the most advanced encoders on earth which chew it for hours to obtain whatever compression ratio.

Other people's opinions may undoubtedly vary.

cheers
a/v

nm
28th March 2008, 04:32
50% of anything is a lot.
My opinion is that it is senseless to dump 50% of data at the touch of a magic wand, then feed it to the most advanced encoders on earth which chew it for hours to obtain whatever compression ratio.
In this case (web publishing), compatibility and playback performance in various systems makes 25p/30p more feasible than 50p/60p or keeping the video interlaced.

nhope
28th March 2008, 04:42
In this case (web publishing), compatibility and playback performance in various systems makes 25p/30p more feasible than 50p/60p or keeping the video interlaced.

OK, so in the specific case of going from 1080i HDV to 960x540, how about just discarding one field to get to progressive instead of an advanced deinterlacer?

nm
28th March 2008, 05:32
That's perfectly fine in my opinion.

lilhobo
2nd April 2008, 17:39
why would anyone use such high resolution for the web? no wonder u killed stage 6 LOL

Blue_MiSfit
2nd April 2008, 23:16
Some questions:

1. Am I right to use bilinear resize in AviSynth, bearing in mind the video is being downsized and only in the x axis? Or might bicubic or lanczos or lanczos 4 be preferable?

2. The HQ profiles create a VBR stream don't they? Should I be aiming for a CBR stream for progressive download and if so, which MeGUI profile should I use for that?

3. Is the HQ-Slowest profile (with the bitrate increased to 2000 kbps) a good choice for excellent quality but also playability in the Flash 9 Player? Is there a better choice? (actually it's looking like 1500 kbps will be sufficient with x264)

4. Quicktime in Windows has more trouble playing this x264 file than my Sony AVC or MainConcept versions and then crashes. Why might that be and can I fix it?

5. What would be a good choice of AAC audio profile, considering the source is 44100khz WAV stock music? Nero Digital NDAAC-HE-64kbps profile perhaps?

Thanks!

1) Bicubic is fine. I usually prefer the slightly sharper look of Lanczos, but that's just me...

2) VBR is crucial. x264 is very much optimized for it. I would say setup VBV so that you can effectively set a bitrate cap.

3) HQ-Slowest is a great profile. It's pretty slow though :D I use a modified HQ-Slower for most of my stuff (with reduced deblocking settings and a few other tweaks), but I do high bitrate CRF mode HD-DVD and BluRay backups. I think you can get good 960x540p video at 2mbit in most cases. As long as your encodes play in the Flash player, you're good to go. Keep in mind, not everyone will have a fast PC, so doing high profile might not be a great idea. Test your encodes on old PCs - like a 2 GHz Pentium 4 or an AthlonXP 2000+. There's lots of those out there.

4) Quicktime in windows (and in general) is fucking retarded. Apple doesn't follow standards, and impliments an H.264 (acually all MPEG-4 video standards) decoder haphazardly that doesn't work very well. Thus, there are special apple specific profiles in MeGUI for the iPhone / iPod etc. I forget the exact restrictions, but I think its no more than 1-2 references, no more than 1bframe, 8x8dct works but not all searches IIRC... not sure. Dont worry about it. Flash's H.264 decoder is _worlds_ better.

5) Nero 64kbps HE-AAC is a great choice. Nero's HE-AAC encoder is very good at low bitrates like that.

~MiSfit

DeathTheSheep
4th April 2008, 00:24
Have you tried VP6.4.2 in best quality mode? For lower-end computers, this thing performs quite well, and with quality to match. Also, it's Flash8 compatible, whereas AVC is compatible with only a small, recent subset of 9.

arnea
1st May 2008, 14:57
I liked the x264 AVC most.

I looked at the processor load during the playback (I used quite recent mplayer for playing all samples) - FLV was worst and Xvid best. In fact Xvid was 2-3 times better than everything else.

Arne

shae
13th May 2008, 00:57
Also, it's Flash8 compatible, whereas AVC is compatible with only a small, recent subset of 9.The JW player (maybe others too) can fallback to FLV+VP6 when running on Flash versions that don't support MP4+AVC (v < 9.0 r115).