~ubuntu-branches/ubuntu/jaunty/xvidcap/jaunty-proposed

« back to all changes in this revision

Viewing changes to ffmpeg/doc/ffserver-doc.html

  • Committer: Bazaar Package Importer
  • Author(s): Christian Marillat
  • Date: 2004-08-29 10:53:42 UTC
  • Revision ID: james.westby@ubuntu.com-20040829105342-qgmnry37eadfkoxx
Tags: upstream-1.1.3
ImportĀ upstreamĀ versionĀ 1.1.3

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<HTML>
 
2
<HEAD>
 
3
<!-- Created by texi2html 1.56k from ffserver-doc.texi on 15 September 2003 -->
 
4
 
 
5
<TITLE>FFserver Documentation</TITLE>
 
6
</HEAD>
 
7
<BODY>
 
8
<H1>FFserver Documentation</H1>
 
9
<P>
 
10
<P><HR><P>
 
11
<H1>Table of Contents</H1>
 
12
<UL>
 
13
<LI><A NAME="TOC1" HREF="ffserver-doc.html#SEC1">1. Introduction</A>
 
14
<LI><A NAME="TOC2" HREF="ffserver-doc.html#SEC2">2. QuickStart</A>
 
15
<UL>
 
16
<LI><A NAME="TOC3" HREF="ffserver-doc.html#SEC3">2.1 What can this do?</A>
 
17
<LI><A NAME="TOC4" HREF="ffserver-doc.html#SEC4">2.2 What do I need?</A>
 
18
<LI><A NAME="TOC5" HREF="ffserver-doc.html#SEC5">2.3 How do I make it work?</A>
 
19
<LI><A NAME="TOC6" HREF="ffserver-doc.html#SEC6">2.4 What happens next?</A>
 
20
<LI><A NAME="TOC7" HREF="ffserver-doc.html#SEC7">2.5 Troubleshooting</A>
 
21
<UL>
 
22
<LI><A NAME="TOC8" HREF="ffserver-doc.html#SEC8">2.5.1 I don't hear any audio, but video is fine</A>
 
23
<LI><A NAME="TOC9" HREF="ffserver-doc.html#SEC9">2.5.2 The audio and video loose sync after a while.</A>
 
24
<LI><A NAME="TOC10" HREF="ffserver-doc.html#SEC10">2.5.3 After a long while, the video update rate goes way down in WMP.</A>
 
25
<LI><A NAME="TOC11" HREF="ffserver-doc.html#SEC11">2.5.4 WMP 6.4 behaves differently to WMP 7.</A>
 
26
</UL>
 
27
<LI><A NAME="TOC12" HREF="ffserver-doc.html#SEC12">2.6 What else can it do?</A>
 
28
<LI><A NAME="TOC13" HREF="ffserver-doc.html#SEC13">2.7 Tips</A>
 
29
<LI><A NAME="TOC14" HREF="ffserver-doc.html#SEC14">2.8 Why does the ?buffer / Preroll stop working after a time?</A>
 
30
<LI><A NAME="TOC15" HREF="ffserver-doc.html#SEC15">2.9 Does the <CODE>?date=</CODE> stuff work.</A>
 
31
</UL>
 
32
<LI><A NAME="TOC16" HREF="ffserver-doc.html#SEC16">3. Invocation</A>
 
33
<UL>
 
34
<LI><A NAME="TOC17" HREF="ffserver-doc.html#SEC17">3.1 Syntax</A>
 
35
<LI><A NAME="TOC18" HREF="ffserver-doc.html#SEC18">3.2 Options</A>
 
36
</UL>
 
37
</UL>
 
38
<P><HR><P>
 
39
 
 
40
<P>
 
41
FFserver Documentation
 
42
 
 
43
 
 
44
 
 
45
 
 
46
<H1><A NAME="SEC1" HREF="ffserver-doc.html#TOC1">1. Introduction</A></H1>
 
47
 
 
48
<P>
 
49
FFserver is a streaming server for both audio and video. It supports
 
50
several live feeds, streaming from files and time shifting on live feeds
 
51
(you can seek to positions in the past on each live feed, provided you
 
52
specify a big enough feed storage in ffserver.conf).
 
53
 
 
54
 
 
55
<P>
 
56
This documentation covers only the streaming aspects of ffserver /
 
57
ffmpeg. All questions about parameters for ffmpeg, codec questions,
 
58
etc. are not covered here. Read <TT>`ffmpeg-doc.html'</TT> for more
 
59
information.
 
60
 
 
61
 
 
62
 
 
63
 
 
64
<H1><A NAME="SEC2" HREF="ffserver-doc.html#TOC2">2. QuickStart</A></H1>
 
65
 
 
66
<P>
 
67
[Contributed by Philip Gladstone, philip-ffserver at gladstonefamily dot net]
 
68
 
 
69
 
 
70
 
 
71
 
 
72
<H2><A NAME="SEC3" HREF="ffserver-doc.html#TOC3">2.1 What can this do?</A></H2>
 
73
 
 
74
<P>
 
75
When properly configured and running, you can capture video and audio in real
 
76
time from a suitable capture card, and stream it out over the Internet to
 
77
either Windows Media Player or RealAudio player (with some restrictions).
 
78
 
 
79
 
 
80
<P>
 
81
It can also stream from files, though that is currently broken. Very often, a
 
82
web server can be used to serve up the files just as well.
 
83
 
 
84
 
 
85
<P>
 
86
It can stream prerecorded video from .ffm files, though it is somewhat tricky
 
87
to make it work correctly.
 
88
 
 
89
 
 
90
 
 
91
 
 
92
<H2><A NAME="SEC4" HREF="ffserver-doc.html#TOC4">2.2 What do I need?</A></H2>
 
93
 
 
94
<P>
 
95
I use Linux on a 900MHz Duron with a cheapo Bt848 based TV capture card. I'm
 
96
using stock linux 2.4.17 with the stock drivers. [Actually that isn't true,
 
97
I needed some special drivers from my motherboard based sound card.]
 
98
 
 
99
 
 
100
<P>
 
101
I understand that FreeBSD systems work just fine as well.
 
102
 
 
103
 
 
104
 
 
105
 
 
106
<H2><A NAME="SEC5" HREF="ffserver-doc.html#TOC5">2.3 How do I make it work?</A></H2>
 
107
 
 
108
<P>
 
109
First, build the kit. It *really* helps to have installed LAME first. Then when
 
110
you run the ffserver ./configure, make sure that you have the --enable-mp3lame
 
111
flag turned on.
 
112
 
 
113
 
 
114
<P>
 
115
LAME is important as it allows streaming of audio to Windows Media Player. Don't
 
116
ask why the other audio types do not work.
 
117
 
 
118
 
 
119
<P>
 
120
As a simple test, just run the following two command lines (assuming that you
 
121
have a V4L video capture card):
 
122
 
 
123
 
 
124
 
 
125
<PRE>
 
126
./ffserver -f doc/ffserver.conf &#38;
 
127
./ffmpeg http://localhost:8090/feed1.ffm
 
128
</PRE>
 
129
 
 
130
<P>
 
131
At this point you should be able to go to your windows machine and fire up
 
132
Windows Media Player (WMP). Go to Open URL and enter 
 
133
 
 
134
 
 
135
 
 
136
<PRE>
 
137
    http://&#60;linuxbox&#62;:8090/test.asf
 
138
</PRE>
 
139
 
 
140
<P>
 
141
You should see (after a short delay) video and hear audio. 
 
142
 
 
143
 
 
144
<P>
 
145
WARNING: trying to stream test1.mpg doesn't work with WMP as it tries to
 
146
transfer the entire file before starting to play. The same is true of avi files.
 
147
 
 
148
 
 
149
 
 
150
 
 
151
<H2><A NAME="SEC6" HREF="ffserver-doc.html#TOC6">2.4 What happens next?</A></H2>
 
152
 
 
153
<P>
 
154
You should edit the ffserver.conf file to suit your needs (in terms of 
 
155
frame rates etc). Then install ffserver and ffmpeg, write a script to start
 
156
them up, and off you go.
 
157
 
 
158
 
 
159
 
 
160
 
 
161
<H2><A NAME="SEC7" HREF="ffserver-doc.html#TOC7">2.5 Troubleshooting</A></H2>
 
162
 
 
163
 
 
164
 
 
165
<H3><A NAME="SEC8" HREF="ffserver-doc.html#TOC8">2.5.1 I don't hear any audio, but video is fine</A></H3>
 
166
 
 
167
<P>
 
168
Maybe you didn't install LAME, or get your ./configure statement right. Check
 
169
the ffmpeg output to see if a line referring to mp3 is present. If not, then
 
170
your configuration was incorrect. If it is, then maybe your wiring is not
 
171
setup correctly. Maybe the sound card is not getting data from the right 
 
172
input source. Maybe you have a really awful audio interface (like I do)
 
173
that only captures in stereo and also requires that one channel be flipped. 
 
174
If you are one of these people, then export 'AUDIO_FLIP_LEFT=1' before 
 
175
starting ffmpeg.
 
176
 
 
177
 
 
178
 
 
179
 
 
180
<H3><A NAME="SEC9" HREF="ffserver-doc.html#TOC9">2.5.2 The audio and video loose sync after a while.</A></H3>
 
181
 
 
182
<P>
 
183
Yes, they do.
 
184
 
 
185
 
 
186
 
 
187
 
 
188
<H3><A NAME="SEC10" HREF="ffserver-doc.html#TOC10">2.5.3 After a long while, the video update rate goes way down in WMP.</A></H3>
 
189
 
 
190
<P>
 
191
Yes, it does. Who knows why?
 
192
 
 
193
 
 
194
 
 
195
 
 
196
<H3><A NAME="SEC11" HREF="ffserver-doc.html#TOC11">2.5.4 WMP 6.4 behaves differently to WMP 7.</A></H3>
 
197
 
 
198
<P>
 
199
Yes, it does. Any thoughts on this would be gratefully received. These
 
200
differences extend to embedding WMP into a web page. [There are two
 
201
different object ids that you can use, one of them -- the old one -- cannot
 
202
play very well, and the new one works well (both on the same system). However, 
 
203
I suspect that the new one is not available unless you have installed WMP 7].
 
204
 
 
205
 
 
206
 
 
207
 
 
208
<H2><A NAME="SEC12" HREF="ffserver-doc.html#TOC12">2.6 What else can it do?</A></H2>
 
209
 
 
210
<P>
 
211
You can replay video from .ffm files that was recorded earlier.
 
212
However, there are a number of caveats which include the fact that the 
 
213
ffserver parameters must match the original parameters used to record the
 
214
file. If not, then ffserver deletes the file before recording into it. (Now I write
 
215
this, this seems broken).
 
216
 
 
217
 
 
218
<P>
 
219
You can fiddle with many of the codec choices and encoding parameters, and
 
220
there are a bunch more parameters that you cannot control. Post a message
 
221
to the mailing list if there are some 'must have' parameters. Look in the
 
222
ffserver.conf for a list of the currently available controls.
 
223
 
 
224
 
 
225
<P>
 
226
It will automatically generate the .ASX or .RAM files that are often used
 
227
in browsers. These files are actually redirections to the underlying .ASF
 
228
or .RM file. The reason for this is that the browser often fetches the
 
229
entire file before starting up the external viewer. The redirection files
 
230
are very small and can be transferred quickly. [The stream itself is
 
231
often 'infinite' and thus the browser tries to download it and never 
 
232
finishes.]
 
233
 
 
234
 
 
235
 
 
236
 
 
237
<H2><A NAME="SEC13" HREF="ffserver-doc.html#TOC13">2.7 Tips</A></H2>
 
238
 
 
239
<P>
 
240
* When you connect to a live stream, most players (WMP, RA etc) want to
 
241
buffer a certain number of seconds of material so that they can display the
 
242
signal continuously. However, ffserver (by default) starts sending data
 
243
in real time. This means that there is a pause of a few seconds while the
 
244
buffering is being done by the player. The good news is that this can be
 
245
cured by adding a '?buffer=5' to the end of the URL. This says that the
 
246
stream should start 5 seconds in the past -- and so the first 5 seconds 
 
247
of the stream is sent as fast as the network will allow. It will then
 
248
slow down to real time. This noticeably improves the startup experience.
 
249
 
 
250
 
 
251
<P>
 
252
You can also add a 'Preroll 15' statement into the ffserver.conf that will
 
253
add the 15 second prebuffering on all requests that do not otherwise
 
254
specify a time. In addition, ffserver will skip frames until a key_frame
 
255
is found. This further reduces the startup delay by not transferring data
 
256
that will be discarded.
 
257
 
 
258
 
 
259
<P>
 
260
* You may want to adjust the MaxBandwidth in the ffserver.conf to limit
 
261
the amount of bandwidth consumed by live streams.
 
262
 
 
263
 
 
264
 
 
265
 
 
266
<H2><A NAME="SEC14" HREF="ffserver-doc.html#TOC14">2.8 Why does the ?buffer / Preroll stop working after a time?</A></H2>
 
267
 
 
268
<P>
 
269
It turns out that (on my machine at least) the number of frames successfully
 
270
grabbed is marginally less than the number that ought to be grabbed. This
 
271
means that the timestamp in the encoded data stream gets behind real time.
 
272
This means that if you say 'preroll 10', then when the stream gets 10
 
273
or more seconds behind, there is no preroll left.
 
274
 
 
275
 
 
276
<P>
 
277
Fixing this requires a change in the internals in how timestamps are 
 
278
handled.
 
279
 
 
280
 
 
281
 
 
282
 
 
283
<H2><A NAME="SEC15" HREF="ffserver-doc.html#TOC15">2.9 Does the <CODE>?date=</CODE> stuff work.</A></H2>
 
284
 
 
285
<P>
 
286
Yes (subject to the caution above). Also note that whenever you start
 
287
ffserver, it deletes the ffm file (if any parameters have changed), thus wiping out what you had recorded
 
288
before. 
 
289
 
 
290
 
 
291
<P>
 
292
The format of the <CODE>?date=xxxxxx</CODE> is fairly flexible. You should use one
 
293
of the following formats (the 'T' is literal):
 
294
 
 
295
 
 
296
 
 
297
<PRE>
 
298
* YYYY-MM-DDTHH:MM:SS     (localtime)
 
299
* YYYY-MM-DDTHH:MM:SSZ    (UTC)
 
300
</PRE>
 
301
 
 
302
<P>
 
303
You can omit the YYYY-MM-DD, and then it refers to the current day. However 
 
304
note that <SAMP>`?date=16:00:00'</SAMP>  refers to 4PM on the current day -- this may be
 
305
in the future and so unlikely to useful.
 
306
 
 
307
 
 
308
<P>
 
309
You use this by adding the ?date= to the end of the URL for the stream.
 
310
For example:   <SAMP>`http://localhost:8080/test.asf?date=2002-07-26T23:05:00'</SAMP>.
 
311
 
 
312
 
 
313
 
 
314
 
 
315
<H1><A NAME="SEC16" HREF="ffserver-doc.html#TOC16">3. Invocation</A></H1>
 
316
 
 
317
 
 
318
<H2><A NAME="SEC17" HREF="ffserver-doc.html#TOC17">3.1 Syntax</A></H2>
 
319
 
 
320
<PRE>
 
321
ffserver [options]
 
322
</PRE>
 
323
 
 
324
 
 
325
 
 
326
<H2><A NAME="SEC18" HREF="ffserver-doc.html#TOC18">3.2 Options</A></H2>
 
327
<DL COMPACT>
 
328
 
 
329
<DT><SAMP>`-L'</SAMP>
 
330
<DD>
 
331
print the license
 
332
<DT><SAMP>`-h'</SAMP>
 
333
<DD>
 
334
print the help
 
335
<DT><SAMP>`-f configfile'</SAMP>
 
336
<DD>
 
337
use <TT>`configfile'</TT> instead of <TT>`/etc/ffserver.conf'</TT>
 
338
</DL>
 
339
 
 
340
<P><HR><P>
 
341
This document was generated on 15 September 2003 using
 
342
<A HREF="http://wwwinfo.cern.ch/dis/texi2html/">texi2html</A>&nbsp;1.56k.
 
343
</BODY>
 
344
</HTML>