annotate src/libvorbis-1.3.3/doc/vorbisenc/examples.html @ 1:05aa0afa9217

Bring in flac, ogg, vorbis
author Chris Cannam
date Tue, 19 Mar 2013 17:37:49 +0000
parents
children
rev   line source
Chris@1 1 <html>
Chris@1 2
Chris@1 3 <head>
Chris@1 4 <title>libvorbisenc - Documentation</title>
Chris@1 5 <link rel=stylesheet href="style.css" type="text/css">
Chris@1 6 </head>
Chris@1 7
Chris@1 8 <body bgcolor=white text=black link="#5555ff" alink="#5555ff" vlink="#5555ff">
Chris@1 9 <table border=0 width=100%>
Chris@1 10 <tr>
Chris@1 11 <td><p class=tiny>libvorbisenc documentation</p></td>
Chris@1 12 <td align=right><p class=tiny>libvorbisenc version 1.3.2 - 20101101</p></td>
Chris@1 13 </tr>
Chris@1 14 </table>
Chris@1 15
Chris@1 16 <h1>Libvorbisenc Setup Examples</h1>
Chris@1 17
Chris@1 18 VBR is always the recommended mode for Vorbis encoding when
Chris@1 19 there's no need to impose bitrate constraints. True VBR encoding will
Chris@1 20 always produce the most consistent quality output as well as the
Chris@1 21 highest quality for a the bits used.
Chris@1 22
Chris@1 23 <p>The following code examples prepare a
Chris@1 24 <a href="../libvorbis/vorbis_info.html">vorbis_info</a> structure for encoding
Chris@1 25 use with libvorbis.<p>
Chris@1 26
Chris@1 27 <h2>Example: encoding using a VBR quality mode</h2>
Chris@1 28
Chris@1 29 <table border=0 width=100% color=black cellspacing=0 cellpadding=7>
Chris@1 30 <tr bgcolor=#cccccc><td><pre><b>
Chris@1 31 vorbis_info_init(&vi);
Chris@1 32
Chris@1 33 /*********************************************************************
Chris@1 34 Encoding using a VBR quality mode. The usable range is -.1
Chris@1 35 (lowest quality, smallest file) to 1.0 (highest quality, largest file).
Chris@1 36 Example quality mode .4: 44kHz stereo coupled, roughly 128kbps VBR
Chris@1 37 *********************************************************************/
Chris@1 38
Chris@1 39 ret = vorbis_encode_init_vbr(&vi,2,44100,.4);
Chris@1 40
Chris@1 41 /*********************************************************************
Chris@1 42 do not continue if setup failed; this can happen if we ask for a
Chris@1 43 mode that libVorbis does not support (eg, too low a quality mode, etc,
Chris@1 44 will return 'OV_EIMPL')
Chris@1 45 *********************************************************************/
Chris@1 46
Chris@1 47 if(ret) exit(1);
Chris@1 48 </b></pre></td></tr></table>
Chris@1 49
Chris@1 50 <h2>Example: encoding using average bitrate (ABR)</h2>
Chris@1 51
Chris@1 52 <table border=0 width=100% color=black cellspacing=0 cellpadding=7>
Chris@1 53 <tr bgcolor=#cccccc><td><pre><b>
Chris@1 54 vorbis_info_init(&vi);
Chris@1 55
Chris@1 56 /*********************************************************************
Chris@1 57 Encoding using an average bitrate mode (ABR).
Chris@1 58 example: 44kHz stereo coupled, average 128kbps ABR
Chris@1 59 *********************************************************************/
Chris@1 60
Chris@1 61 ret = vorbis_encode_init(&vi,2,44100,-1,128000,-1);
Chris@1 62
Chris@1 63 /*********************************************************************
Chris@1 64 do not continue if setup failed; this can happen if we ask for a
Chris@1 65 mode that libVorbis does not support (eg, too low a bitrate, etc,
Chris@1 66 will return 'OV_EIMPL')
Chris@1 67 *********************************************************************/
Chris@1 68
Chris@1 69 if(ret) exit(1);
Chris@1 70 </b></pre></td></tr></table>
Chris@1 71
Chris@1 72 <h2>Example: encoding using constant bitrate (CBR)</h2>
Chris@1 73
Chris@1 74 <table border=0 width=100% color=black cellspacing=0 cellpadding=7>
Chris@1 75 <tr bgcolor=#cccccc><td><pre><b>
Chris@1 76 vorbis_info_init(&vi);
Chris@1 77
Chris@1 78 /*********************************************************************
Chris@1 79 Encoding using a constant bitrate mode (CBR).
Chris@1 80 example: 44kHz stereo coupled, average 128kbps CBR
Chris@1 81 *********************************************************************/
Chris@1 82
Chris@1 83 ret = vorbis_encode_init(&vi,2,44100,128000,128000,128000);
Chris@1 84
Chris@1 85 /*********************************************************************
Chris@1 86 do not continue if setup failed; this can happen if we ask for a
Chris@1 87 mode that libVorbis does not support (eg, too low a bitrate, etc,
Chris@1 88 will return 'OV_EIMPL')
Chris@1 89 *********************************************************************/
Chris@1 90
Chris@1 91 if(ret) exit(1);
Chris@1 92 </b></pre></td></tr></table>
Chris@1 93
Chris@1 94 <h2>Example: encoding using VBR selected by approximate bitrate</h2>
Chris@1 95
Chris@1 96 <table border=0 width=100% color=black cellspacing=0 cellpadding=7>
Chris@1 97 <tr bgcolor=#cccccc><td><pre><b>
Chris@1 98 vorbis_info_init(&vi);
Chris@1 99
Chris@1 100 /*********************************************************************
Chris@1 101 Encode using a quality mode, but select that quality mode by asking for
Chris@1 102 an approximate bitrate. This is not ABR, it is true VBR, but selected
Chris@1 103 using the bitrate interface, and then turning bitrate management off:
Chris@1 104 *********************************************************************/
Chris@1 105
Chris@1 106 ret = ( vorbis_encode_setup_managed(&vi,2,44100,-1,128000,-1) ||
Chris@1 107 vorbis_encode_ctl(&vi,OV_ECTL_RATEMANAGE2_SET,NULL) ||
Chris@1 108 vorbis_encode_setup_init(&vi));
Chris@1 109
Chris@1 110 /*********************************************************************
Chris@1 111 do not continue if setup failed; this can happen if we ask for a
Chris@1 112 mode that libVorbis does not support (eg, too low a bitrate, etc,
Chris@1 113 will return 'OV_EIMPL')
Chris@1 114 *********************************************************************/
Chris@1 115
Chris@1 116 if(ret) exit(1);
Chris@1 117 </b></pre></td></tr></table>
Chris@1 118
Chris@1 119 <br><br>
Chris@1 120 <hr noshade>
Chris@1 121 <table border=0 width=100%>
Chris@1 122 <tr valign=top>
Chris@1 123 <td><p class=tiny>copyright &copy; 2000-2010 Xiph.Org</p></td>
Chris@1 124 <td align=right><p class=tiny><a href="http://www.xiph.org/ogg/vorbis/">Ogg Vorbis</a></p></td>
Chris@1 125 </tr><tr>
Chris@1 126 <td><p class=tiny>libvorbisenc documentation</p></td>
Chris@1 127 <td align=right><p class=tiny>libvorbisenc version 1.3.2 - 20101101</p></td>
Chris@1 128 </tr>
Chris@1 129 </table>
Chris@1 130
Chris@1 131 </body>
Chris@1 132
Chris@1 133 </html>