Pre-transcode
Why pre-transcode?
If you go to the broadcast page and
start streaming a file or DVD, the Veetle broadcasting software will
transcode your video into the h264 format. This uses a lot of processing
power, and in some cases (especially at high resolutions) unless you
have a very recent CPU, your stream quality may suffer as a result.
An option for old computers to broadcast at high, even HD, resolutions is to pre-transcode your video into an h264 video before it enters Veetle's website. This way, Veetle would only be responsible for streaminging the video over the Internet, which does not require much procesing power.
Software for Transcoding
Graphics Card
On the bleeding edge of transcoding is software that can use your graphics
processing unit (GPU). The reason for using GPUs to transcode videos is
that the GPU has hundreds of stream processors compared to the CPU's maximum
of four. In addition, GPUs can perform graphics operations such as matrix
multiplications more efficiently than CPUs.
One of the only GPU transcoders out there is Badaboom. It requires an nVidia graphics card, 8 series or above. It can transcode 720p to another 720p h264 video at more than 3 times the original framerate of the video! This means that if your video were 3 hours long, it would take less than 1 hour to transcode! The problem with Badaboom is that it's relatively new and it doesn't let you configure many settings, which can result in poor image quality during fast moving scenes.
If you don't have an nVidia GPU, then you likely have an ATI GPU. ATI has a free software called Avivo to transcode video. We don't have much experience with Avivo, so we can't personally comment on its effectivness over Badaboom. However, reviews have said that Avivo is faster but buggier than Badaboom.
Central Processing Unit
If you don't care about transcoding at bleeding edge speeds and care more
about the final video quality, then consider transcoding with your central
processing unit (CPU). But be warned: you may spend up to 5 hours
transcoding a single 720p content on the CPU. By sacrificing speed, you get
better image quality because CPU transcoding software is well established
and is easier for programmers to develop. The best CPU's for transcoding
are quad cores. We recommend the
Intel Corei7.
It's a ton of horsepower at a bargain price.
If you're a big nerd, then you'll probably want to use x264 on FFMPEG. Since you're so nerdy, I won't need to tell you how to use it.
For the rest of us there is an easy to use CPU encoder called Handbrake. It's free and is supported on all major operating systems. Here are suggested settings for downsampling a 720p video:
Slower, good quality
-i "E:\input.mkv" -t 1 -c 1 -o "E:\output.mp4" -f mp4 -w 960 -l 544 -e x264 -b 900 -2 -a 1 -E faac -6 stereo -R Auto -B 96 -D 0.0 -x mixed-refs=0:8x8dct=0:trellis=2:b-adapt=2:direct=auto:me=umh:no-fast-pskip=1:merange=32:ref=5:subq=9:vbv-maxrate=2000:vbv-bufsize=4000:rc-lookahead=60:bframes=5:b-pyramid=none:weightp=0 --verbose=1
Faster, average quality
-i "E:\input.mkv" -t 1 -c 1 -o "E:\output.mp4" -f mp4 -w 960 -l 544 -e x264 -b 900 -2 -a 1 -E faac -6 stereo -R Auto -B 96 -D 0.0 -x mixed-refs=0:8x8dct=0:trellis=2:b-adapt=2:direct=auto:me=hex:no-fast-pskip=1:merange=24:ref=3:subq=7:vbv-maxrate=2000:vbv-bufsize=4000:rc-lookahead=50:bframes=5:b-pyramid=none:weightp=0 --verbose=1
Transcoding Suggestions
- MP4 container: Veetle works great with the MP4 container format, so name your files "myFilename.mp4".
- h264 video encoding: This is the only supported video encoding.
- AAC or MP3 audio encoding: You should downsample 5.1 surround sound to stereo because 90% of viewers have stereo speakers. When 5.1 sound is played through stereo speakers, important channels will be missing. Most of the time, you can't even hear the actors speaking.
- Resolution: The final resolution should always be equal or less than the source resolution. Setting the final resolution higher than the source is a waste of space. 720p videos are suggested to be downsampled to 960x544. Standard 720x576 DVD can be kept at the same the same resolution. In Handbrake's picture tab, check "keep aspect ratio" and set "anamorphic" to none so your video doesn't come out squashed.
- Video bitrate: A good rule of thumb is to set your video kbps same as the final video pixel width. For example, if the final resolution is 960x544, set your video bitrate to 960 kbps. If you're using a higher x264 profile, you'll need less to acheive the same quality - somewhere around 800-900 kbps.
- Audio bitrate: Set it to 96 kbps. That's the threshold for hearing any difference. At 64 kbps, you start hearing the hoarseness. 128 kbps is very clear, but only only people would a good set of speakers will appreciate it.
- FPS: Some newer transcoding software will do variable framerate (VFR) if you don't specify a hard framerate. Veetle's player can sometimes run into issues playing back VFR smoothly. You should set the final framerate to be the same as the source framerate. To figure out the source framerate, play the original video in VLC and go to Tools > Codec Information. Handbrake's scan log can also tell you the source framerate.
- 2-pass: Turn it on. When 2-pass is turned on, transcoding time will nearly be doubled, but final quality should be much better. On the first pass, the software will analyze which scenes are fast moving and which are slow. Then on the second pass, it will assign more information to the slow moving scenes and less to the fast moving ones. That's because the human eye tends to not deeply analyze the quality of fast moving scenes, so it would be a waste of space to assign a lot of information to these scenes.
- Pyramidal B-frames off: Pyramidal B-frames are not supported by the Veetle player and can cause the stream to stutter especially during camera pans.
- Weighted P-frames off: Weighted P-frames are not supported by the Veetle player and can make the stream gray.
- 8x8 Transform off: Videos may have the wrong aspect ratio when this is turned on.
Broadcasting the Transcoded Video
Once you've finished transcoding, go to the
broadcast page. Click the big file
button and select your file. In the next screen, select the
use super advanced command line option and replace the code with
the following:
#duplicate{dst=standard{access=http,mux=asf,dst=localhost:1234}}Basically, we've removed the transcode part because your video is already transcoded. Finally, put your channel on air and enjoy HD streaming without an extreme gamer's computer!