How to achieve higher quality HD than Youtube ?
Ever since Youtube came on to the scene, online video sharing has taken off. Youtube is so popular that the name is synonymous with online sharing the world over. It’s one of those things that has invaded our lives. People constantly talk about it in real life like other things that the internet has put into our day to day lingo like e-mail and chat.
For a while Youtube was good enough. But as the nature dictates that everything must evolve, people started to feel limited by the quality of Youtube videos. With the arrival of Blu-Ray and HD-DVD onto the scene, everyone wondered what if our beloved Youtube could offer that kind of quality. What if ? The question hung in the air, with the world waiting for Youtube to answer it. But that question was first answered by Vimeo. Vimeo became the first site to offer HD (High-Definition) video streaming.
HD 101
HD stands for High-Definition. It is a way of classifying videos with a resolution higher than Standard Definition. Standard Definition videos normally have a resolution of 704×480, 720×486, 640×480, 720×48 or 704×576 depending on different systems. The highest resolution is 720×576 or 576p or 576i (i and p denote whether the video is interlaced or progressive). Vimeo used 720p for their videos which means that the resolution of videos was 1280 x 720 pixels (width x height). 1080p is known as Full-HD which means that the videos have a resolution of 1920 x 1080 pixels (width x height). Here is a chart that displays the sizes of these videos in relation to each other
Click the picture to see it in full size and see the actual size of a 1080p video.
Youtube was under pressure to deliver HD so as not to lose users to Vimeo. Now Youtube has also implemented HD and so have many other sites. But HD videos have a caveat attached to them. Playing HD content requires a powerful CPU and a fast internet connection. The videos on Youtube are generally encoded with a bitrate of 2100 KiloBits/Second (Kbps, audio + video) which equates to nearly 263 KiloBytes/Second. This means that your internet connection should be faster than 2 Mbps if you want to be able to play HD content on Youtube without waiting for the video to load and then being played (known as buffering).
Even if you let the video load and then play it, you would still need a powerful CPU to be able to play the video smoothly. This is because the HD videos are encoded in H.264 format. H.264 or MPEG-4 AVC (for Advanced Video Coding) as it is also known as is a standard for video compression similar to other popular video compression formats such as DivX and Xvid. H.264 generally offers better quality at the same bitrate when compared to DivX and Xvid especially at lower bitrates. Decoding H.264 is a much more CPU intensive task than DivX or Xvid. Generally, dual cores CPUs are capable of playing back Youtube HD videos smoothly.
Have you ever wondered that sometimes Youtube HD is not enough. You want more quality, you want something better. Now the question is “How to get better quality than Youtube HD”. That is the point of this article.
Enter Blip.tv
blip.tv’s mission and principles
Blip.tv is dedicated to pioneering the next generation of video programming — both narrowcast and broadcast — as producers and audiences educate and entertain each other according to the rigorous compliance standards that we have developed in conjunction with our users.
That is just marketing talk, but let me tell you one cool thing about Blip.
You can use the quality you decide for video to be displayed on their site. What this means is that YOU decide the QUALITY of video to be streamed, NOT Blip.
This means that you can have a 1080p 10Mbps video being streamed on the web to your viewers. But I did not find it practical as not many people in the world will have such fast connections, plus it requires a very good CPU to decode 1080p H.264. Also I would like to mention that Blip does encode your uploaded video to a lower quality Flash format fit for streaming. The trick is to encode to H.264 for the highest quality and put the H.264 video stream in a FLV container (container for flash video used for streaming on the internet) so that the video plays in the blip flash video player.
If you encode to Xvid or Divx in AVI container, Blip will use Windows Media Web Player to play the video. You will need a plugin for Firefox and will need to install ActiveX component in Internet Explorer to play the video. If you encode to H.264 in MP4 container, Blip will use Quicktime for playback of the source file. These are just some extra hassles your viewer will have to go through. But if you follow my method, if your viewers can play Youtube HD, anyone can play the video on Blip as it only requires flash player installed.
Test Configuration
Hardware
- Intel Q9450 @ 3.2GHz
- GIGABYTE EX-38 DS4
- GeIL 4GB (2×2GB) 800MHz RAM 5-4-4-12
- 2 x Western Digital 6400AAKS 640GB SATA Hard Drives
- 1 x Western Digital 250AAKS 250GB
Software
- Windows Vista SP2 x64
- Nvidia GeForce 185.66 drivers
- All settings in Nvidia control panel at default
Video Cards Used
- Galaxy GTS 250 512 MB – 738 MHz/1836 MHz/1100 MHz (Core/Shader/Memory)
So I started off with recording the World In Conflict in-game Benchmark with FRAPS. The resulting video was 49 seconds in length and 811 MB in size. You may be wondering why the size is so large. This is because that the codec that FRAPS uses uses high bitrates for recording so as not to loose on the details of the graphics being displayed on the screen. Here are the stats of video recorded by FRAPS (Stats by MediaInfo). Note the bitrate of the original video stream: 135 Mbps !
Now lets make the video fit for streaming. This means that we will have to encode the video to a smaller bitrate and size. Their are tons of software available for this purpose but we will try to keep things simple here so that you do not require any extra work to start encoding. All you need is SUPER. Yes that is the name of the software we are using. SUPER is an acronym for Simplified Universal Player Encoder & Renderer. This means that this an all-in-one software. You do not need any other codecs for encoding or playing a file. Everything you need to do your deed is in this software. Just set the settings and start encoding. This software can also playback video files, join two video files, mux audio and video and extract audio and video from a file. All this is made possible due to the open-source software video players and encoders provided by the FFmpeg , MEncoder , MPlayer , x264 , ffmpeg2theora , MusePack (mpc) ,Monkey’s Audio (ape) , True Audio (tta) , WavPack (wv) , libavcodec library (compiled inside FFmpeg and MEncoder) & the theora/vorbis RealProducer’s plugIn projects. SUPER provides a graphical user interface to these back-end programs, which are command-line based.
SUPER supports the following formats as input source file:
- Input Image Sequence: jpg, pgm, png, ppm (with sequentially numbered-ONLY filenames) having the same filename numbered-ONLY format. Example: 0001.jpg –up to–> 0999.jpg note that this format will NOT work name_0001.jpg –up to–> name_0999.jpg (take out name_)
- Input Video format: 3gp, 3g2, amv, asf, avi, dat, dvr-ms, fli, flc, flv, m2ts, mpg, mkv, mov, m4v, mp4, nsv, ogm, qt, rm(vb), str, swf, ts, trp, ty, ty+, tmf, viv, vob, wmv
- Input Audio format: aac, ac3, amr, flac, mmf, m4a, mp2, mp3, mpc, ogg, ra, wav, wma
- Input AviSynth Script Files: avs. To write a script and specify advanced encoding commands using AviSynth scripts!
If you thought that above was a lot of formats, wait until you see the list of formats it can encode to. That is why I’m not going to list them here. You can visit this page to see them.
Here is what the interface looks like
On to encoding our video:
Drag the video to the interface and select the settings as shown in the image below. Click the “H.264 Profile” and “Other Options” buttons to open the respective sub-menus and set the settings in them as shown below.
The highest bitrate option available was 3600 Kbps. I used AAC (Advanced Audio Coding) 56 Kbps as this clip doesn’t have much audio. Also AAC offers better quality at lower bitrates than MP3. AAC is to MP3, what H.264 is to Xvid and Divx. I resized the video to 1280×720 so that the video does not play with black bars on the sides in Youtube and in other widescreen flash players. That is it, click ‘encode’.
Here are the stats of the resulting video file:
As you can see the size of this file is only 22.7 MB and quality is almost the same as the source, while the source was 811 MB. Now I uploaded the same video to Youtube and Blip. See the difference for yourself.
NOTE: The point of this article is to show that a user can stream the video he/she encoded on the web by using Blip and does not have to rely on the quality decided by video sharing web-sites. The video that you see being streamed below on Blip is encoded by ME, NOT by BLIP. I’m not trying to make Youtube look bad. I’m just trying to show a higher quality alternative.
Youtube HD (~2000 Kbps)
Blip (~3700 Kbps)
In case you didn’t notice the difference in quality in the video, here are some 100% cropped images straight from the source videos.
Notice the completely washed out trees in the background.
There is massive difference in the above screens in the tank and the screens.
I hope you enjoyed this article. Next I will be looking at encoding the video to the same bitrate as Youtube HD and see if there is a difference in quality. I will also upload real life videos and see the difference in quality.
Important Links
My thanks to the authors of SUPER, FFmpeg , MEncoder , MPlayer , x264 , ffmpeg2theora , MusePack (mpc) ,Monkey’s Audio (ape) , True Audio (tta) , WavPack (wv) , libavcodec library (compiled inside FFmpeg and MEncoder) & the theora/vorbis RealProducer’s plugIn projects for building such great FREE software. I would also like to thank the people at Blip.Tv for providing a platform to publish such high quality videos.
If you like the article please spread it by Digging it here
http://digg.com/software/How_to_achieve_higher_quality_HD_than_Youtube
– Karan
ABT Senior Editor
Please join us in our Forums
Follow us on Twitter
For the latest updates from ABT, please join our RSS News Feed
Join our Distributed Computing teams
- Folding@Home – Team AlienBabelTech – 164304
- SETI@Home – Team AlienBabelTech – 138705
- World Community Grid – Team AlienBabelTech
An excellent post! that’s exactly what i was searching for
Thankyou for this post, I am a big big fan of this web site would like to continue updated.
Thank you, I have recently been looking for information about this topic for ages and yours is the best I have located so far.