Exporting, compressing and multiplexing
your audio for distribution.
Exporting your Movie
First of all, as you should know by now, when you are
exporting your movie from your editing program you should always use
uncompressed PCM wav as your audio stream. Also, you shouldn't change
the sample rate - if you are using a 44.1kHz source then export it
as such. For this guide you should export your audio as a separate
wav. See the exporting guide for more info.
OK, this is where the guide will split into 3 parts:
1) Compressing audio for your DivX/XviD
2) Compressing audio for your MPEG-1/2
3) Compressing audio using higher
quality but less standard methods (Variable Bitrate, Ogg etc.)
Compressing
Audio for your DivX
AVI files can have numerous audio compression types
but for most of you the only one you need to think about is MPEG layer
3 audio.
Now, there is much speculation about the best mp3 encoder.
Like most of the mpeg specs, the quality varies per encoder although
every mp3 player can play back mp3 audio from any encoder. So, which
mp3 encoder is the best and where can you get them from?
Frauenhofer MP3 Codec - people call this the
"reference" mp3 codec that all others should be compared
to. I must admit, it is very very good - especially for constant bitrate
MP3s. There is a version of this codec supplied with Divx3.11a. However,
I think it's possibly been superseded by the LAME mp3 implementation,
which is what I recommend you use. If you want to use Frauenhoffer
then try installing the Divx3.11a codec and making sure it overwrites
all files. You will then be able to access it in virtualdub's audio
compression. However, if you want to take my advice, you'll use LAME
LAME MP3 - this is presently in my opinion the
best mp3 encoding option available. Even moreso because it's free
:) Although the codec is usually not designed for compression directly
in virtualdub there is an ACM implementation which is what we will
use to encode our audio. It is part of the AMVapp.
Quality Saving Tip - if you were using an mp3
as a source (shame on you :P) and made a wav file from it for editing,
you will be losing quality again when reencoding to mp3. If you can,
make sure that there is no silence at the start of your video (so
that the first frame of the video is the first frame of the audio)
then you can use the original mp3 file for the audio stream using
Nandub. See the next page for how to do
this.
Encoding your MP3 Audio in Virtualdub/Nandub
This method is very simple and involves importing your
wav audio to virtualdub and selecting Lame MP3 compression settings.
(You may need to download the AMVapp for
the LAME ACM MP3 codec)
For this conversion you will need to have the wav separate
from your video which, if you don't have already, you can do with
this guide or you can export
your audio separately in your video editing program. This is merely
to make sure that everyone is doing the same thing :)
Setup Options
You should ideally add your audio either during the
2nd pass of your DivX/XviD encode or by muxing it after. To mux the
audio after you have encoded the video, load your encoded video into
Virtualdub and in the Video menu choose "direct stream copy".
To compress you audio in Virtualdub, go to the audio
menu. Choose "Wav source..." and load the wav file of your
audio stream. Now choose Full Processing mode. Now choose "compression..."
Select Lame MP3 on the left. In the box on the right,
a long list of settings will appear. The first thing you should ask
yourself is what is the "sample frequency of my audio and is
it in stereo?". CDs are always 44.1KHz, dvds are 48KHz. There
is a problem that lots of people seem to have in Virtualdub with "Audio
Compression not possible" errors. So please read this carefully:
Virtualdub cannot encode something at 44.1kHz Stereo
if the source is 48kHz or mono etc. The reason you are getting the
error is because you are encoding the stream without converting the
input to match the selected compression type. So, make sure that you
select the right options for your input audio - if you have a 48kHz
stream then choose that as the encoding option.
It is possible to convert the audio in Virtualdub or
Nandub by Choosing Audio -> Conversion but I personally wouldn't
recommend it. The only time I could see conversion to be worthwhile
is if you have a 48kHz input stream and want to make sure people with
old soundcards can play it but to be honest, if they can't play 48kHz
audio then they probably can't play divxes. Converting upwards is
a waste of valuable bits, so don't do it.
In the Lame compression box you will see a list like
this:
44100 Hz, 320 kbps CBR, Stereo 40KB/s
44100 Hz, 256 kbps CBR, Stereo 32KB/s
44100 Hz, 224 kbps CBR, Stereo 28KB/s
44100 Hz, 192 kbps CBR, Stereo 24KB/s
44100 Hz, 160 kbps ABR, Stereo 20KB/s
44100 Hz, 160 kbps CBR, Stereo 20KB/s
...
44100 Hz, 128 kbps CBR, Stereo 16KB/s
44100 Hz, 124 kbps ABR, Stereo 16KB/s
These mean as follows: 44.1KHz audio at 320kbits per
second, Constant BitRate, Stereo. The eagle-eyed amongst you will
notice that there are ABR (Average BitRate) options. This is a "good
thing" and they actually work. I recommend choosing 160kbps ABR
but anything 128 or higher will be "ok". If you can do 192
or higher then that would be even better but it depends on how much
space you want to spend on your audio encode.
Interleaving - This is worth talking about briefly as
it designates how your audio will be 'joined' to the video. Audio
is separated and processed in frames just like video and for playback
it is best if they are interleaved. Check out the interleaving option
but the default setting of 1 frame is fine for this.
When you've set everything up, choose "Save as
Avi" and you're done.
Note: If when trying to compress your
audio in Virtualdub you notice that the Audio Stream stops at a few
kb, then you will need to go into Options > Preferences... then
choose the AVI tab and select Do Not Correct MPEG Layer III Audio
Streams. If this is not selected then the Lame encoder and Virtualdub
fight it out and you don't get any audio. Don't worry though, it will
all work well all the same.
Compressing
Audio for your MPEG 1/2
Most of you will be wanting to know about encoding audio
for MPEG 1 but this guide is also useful for MPEG2 stuff.
MPEG audio
For most people the choice of audio compression will
be no choice at all. Mpeg-1 layer 2 audio is what ErMaC recommends
in his guide and indeed it is the standard... you should never use
Mpeg1 layer 1 audio because it's seriously old and seriously crap
(it's pre-vcd which is pre 1993). So, mpeg1 layer 2 it is.
Mind you, it is possible to use MP3 audio in your mpeg
video files. The only problem with this is that they aren't compatible
with hardware playback - so vcds, dvd players and hardware mpeg players
will all have trouble with mp3 audio but in terms of playback in software
mode there is no problem whatsoever in using an MP3 stream for the
audio (except really really old pcs like P100s etc might get lagged).
[note - do not use mp3 for convention submissions
as they often use hardware players]
The choice is yours - I'll describe how to do good encodes
with both mp2 and mp3 audio but you need to decide whether you want
to have the video more compliant (which, if you are using ErMaC's
TMPGenc method it wont be anyway) or smaller/better quality audio-wise.
If you are doing an MPEG2 video file for a DVD master then you'll
have to choose mpeg layer 2 audio (unless you are DVD authoring where
you could possibly use WAV PCM but if you know much about authoring
then you know more than me already)
For this, the program used will be TMPGenc
which you should know about from ErMaC's guide.
mp2 - TMPG's audio encoding capabilities are
ok.. but they're nothing special. There is a better way to get quality
audio when encoding with TMPG using an addon program called tooLAME.
This is a simple .exe file that you can put anywhere on your computer.
Once you've extracted it, load up TMPG and choose Options -> Environmental
Settings:
In the External Tool tab you can point TMPG to programs
that will do parts of the conversion for you. As you can see I have
external programs for layer-2 (mp2), Layer-3 (mp3) and sample rate
changing. The one you need is the Layer-2 (mp2) audio which you should
point to the tooLAME file you have extracted like I have done.
Audio encoding settings in TMPG are fairly simple and
the minimum quality settings I think you should choose are:
Of course, make sure the sample rate is the same as
your input file. If you think that Joint Stereo loses too much of
the stereo separation for you then by all means choose normal Stereo
for better sound. As for bitrate... well larger is better but for
mpeg layer 2 audio you don't really want to be going any less than
192. 128kbps may be ok for mp3s but it's not good for mp2 audio. 224kbps
is the standard for vcd audio so that's what I recommend. If you are
doing an MPEG2 DVD master of your video then don't skimp on the audio
- choose 384kbps.
That should be all you need to know for mp2 audio in
your mpeg file.
mp3 - TMPG doesn't have a default option for
mp3 encoding, you need to use an external compressing tool. Look at
the setup above for the TooLAME mp2 encoder and you will see that
I have a LAME mp3 encoder for layer 3 audio compression. This is what
you should do for mp3 audio. Get
the LAME mp3 stuff from here.
Extract the files into a directory on your computer
and then point to the LAME.exe from TMPG the same way as you have
done for tooLAME.
Again, the audio settings are the same as before except
now you can choose Mpeg1 Audio Layer III as your compression type.
So, again choose the correct sample rate and choose Joint Stereo (or
Stereo if you want that extra edge with the sound). For the bitrate
you should choose 128kbps or above. Personally I think 160kbps is
a good value for a reasonable quality/size ratio. If you can go higher,
please do ^_^ - if you do a 224kbps encode it will be the same size
as the layer 2 audio version but the quality will be much much better.
AbsoluteDestiny - October 2002
|