|
1 ------------------------------------------------------------------------- |
|
2 The Xiph.org Foundation's libtheora 1.2 |
|
3 ------------------------------------------------------------------------- |
|
4 |
|
5 *** What is Theora? |
|
6 |
|
7 Theora is Xiph.Org's first publicly released video codec, intended |
|
8 for use within the Foundation's Ogg multimedia streaming system. |
|
9 Theora is derived directly from On2's VP3 codec, adds new features |
|
10 while allow it a longer useful lifetime as an competitive codec. |
|
11 |
|
12 The 1.0 release decoder supported all the new features, but the |
|
13 encoder is nearly identical to the VP3 code. |
|
14 |
|
15 The 1.1 release featured a completely rewritten encoder, offering |
|
16 better performance and compression, and making more complete use |
|
17 of the format's feature set. |
|
18 |
|
19 The 1.2 release features significant additional improvements in |
|
20 compression and performance. Files produced by newer encoders can |
|
21 be decoded by earlier releases. |
|
22 |
|
23 *** Where is Theora? |
|
24 |
|
25 Theora's main site is www.theora.org. Theora and related libraries |
|
26 can be gotten from www.theora.org or the main Xiph.Org site at |
|
27 www.xiph.org. Development source is kept in an open subversion |
|
28 repository, see http://theora.org/svn/ for instructions. |
|
29 |
|
30 ------------------------------------------------------------------------- |
|
31 Getting started with the code |
|
32 ------------------------------------------------------------------------- |
|
33 |
|
34 *** What do I need to build the source? |
|
35 |
|
36 Requirements summary: |
|
37 |
|
38 For libtheora: |
|
39 |
|
40 libogg 1.1 or newer. |
|
41 |
|
42 For example encoder: |
|
43 |
|
44 as above, |
|
45 |
|
46 libvorbis and libvorbisenc 1.0.1 or newer. |
|
47 (libvorbis 1.3.1 or newer for 5.1 audio) |
|
48 |
|
49 For creating a source distribution package: |
|
50 |
|
51 as above, |
|
52 |
|
53 Doxygen to build the API documentation, |
|
54 pdflatex and fig2dev to build the format specification |
|
55 (transfig package in Ubuntu). |
|
56 |
|
57 For the player only: |
|
58 |
|
59 as above, |
|
60 |
|
61 SDL (Simple Direct media Layer) libraries and headers, |
|
62 OSS audio driver and development headers. |
|
63 |
|
64 The provided build system is the GNU automake/autoconf system, and |
|
65 the main library, libtheora, should already build smoothly on any |
|
66 system. Failure of libtheora to build on a GNU-enabled system is |
|
67 considered a bug; please report problems to theora-dev@xiph.org. |
|
68 |
|
69 Windows build support is included in the win32 directory. |
|
70 |
|
71 Project files for Apple XCode are included in the macosx directory. |
|
72 |
|
73 There is also a more limited scons build. |
|
74 |
|
75 *** How do I use the sample encoder? |
|
76 |
|
77 The sample encoder takes raw video in YUV4MPEG2 format, as used by |
|
78 lavtools, mjpeg-tools and other packages. The encoder expects audio, |
|
79 if any, in a separate wave WAV file. Try 'encoder_example -h' for a |
|
80 complete list of options. |
|
81 |
|
82 An easy way to get raw video and audio files is to use MPlayer as an |
|
83 export utility. The options " -ao pcm -vo yuv4mpeg " will export a |
|
84 wav file named audiodump.wav and a YUV video file in the correct |
|
85 format for encoder_example as stream.yuv. Be careful when exporting |
|
86 video alone; MPlayer may drop frames to 'keep up' with the audio |
|
87 timer. The example encoder can't properly synchronize input audio and |
|
88 video file that aren't in sync to begin with. |
|
89 |
|
90 The encoder will also take video or audio on stdin if '-' is specified |
|
91 as the input file name. |
|
92 |
|
93 There is also a 'png2theora' example which accepts a set of image |
|
94 files in that format. |
|
95 |
|
96 *** How do I use the sample player? |
|
97 |
|
98 The sample player takes an Ogg file on standard in; the file may be |
|
99 audio alone, video alone or video with audio. |
|
100 |
|
101 *** What other tools are available? |
|
102 |
|
103 The programs in the examples directory are intended as tutorial source |
|
104 for developers using the library. As such they sacrifice features and |
|
105 robustness in the interests of comprehension and should not be |
|
106 considered serious applications. |
|
107 |
|
108 If you're wanting to just use theora, consider the programs linked |
|
109 from http://www.theora.org/. There is playback support in a number |
|
110 of common free players, and plugins for major media frameworks. |
|
111 Jan Gerber's ffmpeg2theora is an excellent encoding front end. |
|
112 |
|
113 ------------------------------------------------------------------------- |
|
114 Troubleshooting the build process |
|
115 ------------------------------------------------------------------------- |
|
116 |
|
117 *** Compile error, such as: |
|
118 |
|
119 encoder_internal.h:664: parse error before `ogg_uint16_t' |
|
120 |
|
121 This means you have version of libogg prior to 1.1. A *complete* new Ogg |
|
122 install, libs and headers is needed. |
|
123 |
|
124 Also be sure that there aren't multiple copies of Ogg installed in |
|
125 /usr and /usr/local; an older one might be first on the search path |
|
126 for libs and headers. |
|
127 |
|
128 *** Link error, such as: |
|
129 |
|
130 undefined reference to `oggpackB_stream' |
|
131 |
|
132 See above; you need libogg 1.1 or later. |
|
133 |
|
134 *** Link error, such as: |
|
135 |
|
136 undefined reference to `vorbis_granule_time' |
|
137 |
|
138 You need libvorbis and libvorbisenc from the 1.0.1 release or later. |
|
139 |
|
140 *** Link error, such as: |
|
141 |
|
142 /usr/lib/libSDL.a(SDL_esdaudio.lo): In function `ESD_OpenAudio': |
|
143 SDL_esdaudio.lo(.text+0x25d): undefined reference to `esd_play_stream' |
|
144 |
|
145 Be sure to use an SDL that's built to work with OSS. If you use an |
|
146 SDL that is also built with ESD and/or ALSA support, it will try to |
|
147 suck in all those extra libraries at link time too. That will only |
|
148 work if the extra libraries are also installed. |
|
149 |
|
150 *** Link warning, such as: |
|
151 |
|
152 libtool: link: warning: library `/usr/lib/libogg.la' was moved. |
|
153 libtool: link: warning: library `/usr/lib/libogg.la' was moved. |
|
154 |
|
155 Re-run theora/autogen.sh after an Ogg or Vorbis rebuild/reinstall |
|
156 |