1 | <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
|
---|
2 | <html>
|
---|
3 | <!-- Created on June, 30 2006 by texi2html 1.76 -->
|
---|
4 | <!--
|
---|
5 | Written by: Lionel Cons <[email protected]> (original author)
|
---|
6 | Karl Berry <[email protected]>
|
---|
7 | Olaf Bachmann <[email protected]>
|
---|
8 | and many others.
|
---|
9 | Maintained by: Many creative people <[email protected]>
|
---|
10 | Send bugs and suggestions to <[email protected]>
|
---|
11 |
|
---|
12 | -->
|
---|
13 | <head>
|
---|
14 | <title>FFserver Documentation: 1. Introduction</title>
|
---|
15 |
|
---|
16 | <meta name="description" content="FFserver Documentation: 1. Introduction">
|
---|
17 | <meta name="keywords" content="FFserver Documentation: 1. Introduction">
|
---|
18 | <meta name="resource-type" content="document">
|
---|
19 | <meta name="distribution" content="global">
|
---|
20 | <meta name="Generator" content="texi2html 1.76">
|
---|
21 | <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
|
---|
22 | <style type="text/css">
|
---|
23 | <!--
|
---|
24 | a.summary-letter {text-decoration: none}
|
---|
25 | pre.display {font-family: serif}
|
---|
26 | pre.format {font-family: serif}
|
---|
27 | pre.menu-comment {font-family: serif}
|
---|
28 | pre.menu-preformatted {font-family: serif}
|
---|
29 | pre.smalldisplay {font-family: serif; font-size: smaller}
|
---|
30 | pre.smallexample {font-size: smaller}
|
---|
31 | pre.smallformat {font-family: serif; font-size: smaller}
|
---|
32 | pre.smalllisp {font-size: smaller}
|
---|
33 | span.sansserif {font-family:sans-serif; font-weight:normal;}
|
---|
34 | ul.toc {list-style: none}
|
---|
35 | -->
|
---|
36 | </style>
|
---|
37 |
|
---|
38 |
|
---|
39 | </head>
|
---|
40 |
|
---|
41 | <body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
|
---|
42 |
|
---|
43 | <a name="SEC1"></a>
|
---|
44 | <table cellpadding="1" cellspacing="1" border="0">
|
---|
45 | <tr><td valign="middle" align="left">[ < ]</td>
|
---|
46 | <td valign="middle" align="left">[<a href="#SEC2" title="Next section in reading order"> > </a>]</td>
|
---|
47 | <td valign="middle" align="left"> </td>
|
---|
48 | <td valign="middle" align="left">[ << ]</td>
|
---|
49 | <td valign="middle" align="left">[ Up ]</td>
|
---|
50 | <td valign="middle" align="left">[<a href="#SEC2" title="Next chapter"> >> </a>]</td>
|
---|
51 | <td valign="middle" align="left"> </td>
|
---|
52 | <td valign="middle" align="left"> </td>
|
---|
53 | <td valign="middle" align="left"> </td>
|
---|
54 | <td valign="middle" align="left"> </td>
|
---|
55 | <td valign="middle" align="left">[<a href="#SEC1" title="Cover (top) of document">Top</a>]</td>
|
---|
56 | <td valign="middle" align="left">[Contents]</td>
|
---|
57 | <td valign="middle" align="left">[Index]</td>
|
---|
58 | <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
|
---|
59 | </tr></table>
|
---|
60 | <h1 class="chapter"> 1. Introduction </h1>
|
---|
61 |
|
---|
62 | <p>FFserver is a streaming server for both audio and video. It supports
|
---|
63 | several live feeds, streaming from files and time shifting on live feeds
|
---|
64 | (you can seek to positions in the past on each live feed, provided you
|
---|
65 | specify a big enough feed storage in ffserver.conf).
|
---|
66 | </p>
|
---|
67 | <p>This documentation covers only the streaming aspects of ffserver /
|
---|
68 | ffmpeg. All questions about parameters for ffmpeg, codec questions,
|
---|
69 | etc. are not covered here. Read <tt>`ffmpeg-doc.html'</tt> for more
|
---|
70 | information.
|
---|
71 | </p>
|
---|
72 | <hr size="6">
|
---|
73 | <a name="SEC2"></a>
|
---|
74 | <table cellpadding="1" cellspacing="1" border="0">
|
---|
75 | <tr><td valign="middle" align="left">[<a href="#SEC1" title="Previous section in reading order"> < </a>]</td>
|
---|
76 | <td valign="middle" align="left">[<a href="#SEC3" title="Next section in reading order"> > </a>]</td>
|
---|
77 | <td valign="middle" align="left"> </td>
|
---|
78 | <td valign="middle" align="left">[<a href="#SEC1" title="Beginning of this chapter or previous chapter"> << </a>]</td>
|
---|
79 | <td valign="middle" align="left">[<a href="#SEC1" title="Up section"> Up </a>]</td>
|
---|
80 | <td valign="middle" align="left">[<a href="#SEC16" title="Next chapter"> >> </a>]</td>
|
---|
81 | <td valign="middle" align="left"> </td>
|
---|
82 | <td valign="middle" align="left"> </td>
|
---|
83 | <td valign="middle" align="left"> </td>
|
---|
84 | <td valign="middle" align="left"> </td>
|
---|
85 | <td valign="middle" align="left">[<a href="#SEC1" title="Cover (top) of document">Top</a>]</td>
|
---|
86 | <td valign="middle" align="left">[Contents]</td>
|
---|
87 | <td valign="middle" align="left">[Index]</td>
|
---|
88 | <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
|
---|
89 | </tr></table>
|
---|
90 | <h1 class="chapter"> 2. QuickStart </h1>
|
---|
91 |
|
---|
92 | <p>[Contributed by Philip Gladstone, philip-ffserver at gladstonefamily dot net]
|
---|
93 | </p>
|
---|
94 | <hr size="6">
|
---|
95 | <a name="SEC3"></a>
|
---|
96 | <table cellpadding="1" cellspacing="1" border="0">
|
---|
97 | <tr><td valign="middle" align="left">[<a href="#SEC2" title="Previous section in reading order"> < </a>]</td>
|
---|
98 | <td valign="middle" align="left">[<a href="#SEC4" title="Next section in reading order"> > </a>]</td>
|
---|
99 | <td valign="middle" align="left"> </td>
|
---|
100 | <td valign="middle" align="left">[<a href="#SEC2" title="Beginning of this chapter or previous chapter"> << </a>]</td>
|
---|
101 | <td valign="middle" align="left">[<a href="#SEC2" title="Up section"> Up </a>]</td>
|
---|
102 | <td valign="middle" align="left">[<a href="#SEC16" title="Next chapter"> >> </a>]</td>
|
---|
103 | <td valign="middle" align="left"> </td>
|
---|
104 | <td valign="middle" align="left"> </td>
|
---|
105 | <td valign="middle" align="left"> </td>
|
---|
106 | <td valign="middle" align="left"> </td>
|
---|
107 | <td valign="middle" align="left">[<a href="#SEC1" title="Cover (top) of document">Top</a>]</td>
|
---|
108 | <td valign="middle" align="left">[Contents]</td>
|
---|
109 | <td valign="middle" align="left">[Index]</td>
|
---|
110 | <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
|
---|
111 | </tr></table>
|
---|
112 | <h2 class="section"> 2.1 What can this do? </h2>
|
---|
113 |
|
---|
114 | <p>When properly configured and running, you can capture video and audio in real
|
---|
115 | time from a suitable capture card, and stream it out over the Internet to
|
---|
116 | either Windows Media Player or RealAudio player (with some restrictions).
|
---|
117 | </p>
|
---|
118 | <p>It can also stream from files, though that is currently broken. Very often, a
|
---|
119 | web server can be used to serve up the files just as well.
|
---|
120 | </p>
|
---|
121 | <p>It can stream prerecorded video from .ffm files, though it is somewhat tricky
|
---|
122 | to make it work correctly.
|
---|
123 | </p>
|
---|
124 | <hr size="6">
|
---|
125 | <a name="SEC4"></a>
|
---|
126 | <table cellpadding="1" cellspacing="1" border="0">
|
---|
127 | <tr><td valign="middle" align="left">[<a href="#SEC3" title="Previous section in reading order"> < </a>]</td>
|
---|
128 | <td valign="middle" align="left">[<a href="#SEC5" title="Next section in reading order"> > </a>]</td>
|
---|
129 | <td valign="middle" align="left"> </td>
|
---|
130 | <td valign="middle" align="left">[<a href="#SEC2" title="Beginning of this chapter or previous chapter"> << </a>]</td>
|
---|
131 | <td valign="middle" align="left">[<a href="#SEC2" title="Up section"> Up </a>]</td>
|
---|
132 | <td valign="middle" align="left">[<a href="#SEC16" title="Next chapter"> >> </a>]</td>
|
---|
133 | <td valign="middle" align="left"> </td>
|
---|
134 | <td valign="middle" align="left"> </td>
|
---|
135 | <td valign="middle" align="left"> </td>
|
---|
136 | <td valign="middle" align="left"> </td>
|
---|
137 | <td valign="middle" align="left">[<a href="#SEC1" title="Cover (top) of document">Top</a>]</td>
|
---|
138 | <td valign="middle" align="left">[Contents]</td>
|
---|
139 | <td valign="middle" align="left">[Index]</td>
|
---|
140 | <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
|
---|
141 | </tr></table>
|
---|
142 | <h2 class="section"> 2.2 What do I need? </h2>
|
---|
143 |
|
---|
144 | <p>I use Linux on a 900MHz Duron with a cheapo Bt848 based TV capture card. I'm
|
---|
145 | using stock Linux 2.4.17 with the stock drivers. [Actually that isn't true,
|
---|
146 | I needed some special drivers for my motherboard-based sound card.]
|
---|
147 | </p>
|
---|
148 | <p>I understand that FreeBSD systems work just fine as well.
|
---|
149 | </p>
|
---|
150 | <hr size="6">
|
---|
151 | <a name="SEC5"></a>
|
---|
152 | <table cellpadding="1" cellspacing="1" border="0">
|
---|
153 | <tr><td valign="middle" align="left">[<a href="#SEC4" title="Previous section in reading order"> < </a>]</td>
|
---|
154 | <td valign="middle" align="left">[<a href="#SEC6" title="Next section in reading order"> > </a>]</td>
|
---|
155 | <td valign="middle" align="left"> </td>
|
---|
156 | <td valign="middle" align="left">[<a href="#SEC2" title="Beginning of this chapter or previous chapter"> << </a>]</td>
|
---|
157 | <td valign="middle" align="left">[<a href="#SEC2" title="Up section"> Up </a>]</td>
|
---|
158 | <td valign="middle" align="left">[<a href="#SEC16" title="Next chapter"> >> </a>]</td>
|
---|
159 | <td valign="middle" align="left"> </td>
|
---|
160 | <td valign="middle" align="left"> </td>
|
---|
161 | <td valign="middle" align="left"> </td>
|
---|
162 | <td valign="middle" align="left"> </td>
|
---|
163 | <td valign="middle" align="left">[<a href="#SEC1" title="Cover (top) of document">Top</a>]</td>
|
---|
164 | <td valign="middle" align="left">[Contents]</td>
|
---|
165 | <td valign="middle" align="left">[Index]</td>
|
---|
166 | <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
|
---|
167 | </tr></table>
|
---|
168 | <h2 class="section"> 2.3 How do I make it work? </h2>
|
---|
169 |
|
---|
170 | <p>First, build the kit. It *really* helps to have installed LAME first. Then when
|
---|
171 | you run the ffserver ./configure, make sure that you have the -enable-mp3lame
|
---|
172 | flag turned on.
|
---|
173 | </p>
|
---|
174 | <p>LAME is important as it allows for streaming audio to Windows Media Player.
|
---|
175 | Don't ask why the other audio types do not work.
|
---|
176 | </p>
|
---|
177 | <p>As a simple test, just run the following two command lines (assuming that you
|
---|
178 | have a V4L video capture card):
|
---|
179 | </p>
|
---|
180 | <table><tr><td> </td><td><pre class="example">./ffserver -f doc/ffserver.conf &
|
---|
181 | ./ffmpeg http://localhost:8090/feed1.ffm
|
---|
182 | </pre></td></tr></table>
|
---|
183 | <p>At this point you should be able to go to your Windows machine and fire up
|
---|
184 | Windows Media Player (WMP). Go to Open URL and enter
|
---|
185 | </p>
|
---|
186 | <table><tr><td> </td><td><pre class="example"> http://<linuxbox>:8090/test.asf
|
---|
187 | </pre></td></tr></table>
|
---|
188 | <p>You should (after a short delay) see video and hear audio.
|
---|
189 | </p>
|
---|
190 | <p>WARNING: trying to stream test1.mpg doesn't work with WMP as it tries to
|
---|
191 | transfer the entire file before starting to play.
|
---|
192 | The same is true of AVI files.
|
---|
193 | </p>
|
---|
194 | <hr size="6">
|
---|
195 | <a name="SEC6"></a>
|
---|
196 | <table cellpadding="1" cellspacing="1" border="0">
|
---|
197 | <tr><td valign="middle" align="left">[<a href="#SEC5" title="Previous section in reading order"> < </a>]</td>
|
---|
198 | <td valign="middle" align="left">[<a href="#SEC7" title="Next section in reading order"> > </a>]</td>
|
---|
199 | <td valign="middle" align="left"> </td>
|
---|
200 | <td valign="middle" align="left">[<a href="#SEC2" title="Beginning of this chapter or previous chapter"> << </a>]</td>
|
---|
201 | <td valign="middle" align="left">[<a href="#SEC2" title="Up section"> Up </a>]</td>
|
---|
202 | <td valign="middle" align="left">[<a href="#SEC16" title="Next chapter"> >> </a>]</td>
|
---|
203 | <td valign="middle" align="left"> </td>
|
---|
204 | <td valign="middle" align="left"> </td>
|
---|
205 | <td valign="middle" align="left"> </td>
|
---|
206 | <td valign="middle" align="left"> </td>
|
---|
207 | <td valign="middle" align="left">[<a href="#SEC1" title="Cover (top) of document">Top</a>]</td>
|
---|
208 | <td valign="middle" align="left">[Contents]</td>
|
---|
209 | <td valign="middle" align="left">[Index]</td>
|
---|
210 | <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
|
---|
211 | </tr></table>
|
---|
212 | <h2 class="section"> 2.4 What happens next? </h2>
|
---|
213 |
|
---|
214 | <p>You should edit the ffserver.conf file to suit your needs (in terms of
|
---|
215 | frame rates etc). Then install ffserver and ffmpeg, write a script to start
|
---|
216 | them up, and off you go.
|
---|
217 | </p>
|
---|
218 | <hr size="6">
|
---|
219 | <a name="SEC7"></a>
|
---|
220 | <table cellpadding="1" cellspacing="1" border="0">
|
---|
221 | <tr><td valign="middle" align="left">[<a href="#SEC6" title="Previous section in reading order"> < </a>]</td>
|
---|
222 | <td valign="middle" align="left">[<a href="#SEC8" title="Next section in reading order"> > </a>]</td>
|
---|
223 | <td valign="middle" align="left"> </td>
|
---|
224 | <td valign="middle" align="left">[<a href="#SEC2" title="Beginning of this chapter or previous chapter"> << </a>]</td>
|
---|
225 | <td valign="middle" align="left">[<a href="#SEC2" title="Up section"> Up </a>]</td>
|
---|
226 | <td valign="middle" align="left">[<a href="#SEC16" title="Next chapter"> >> </a>]</td>
|
---|
227 | <td valign="middle" align="left"> </td>
|
---|
228 | <td valign="middle" align="left"> </td>
|
---|
229 | <td valign="middle" align="left"> </td>
|
---|
230 | <td valign="middle" align="left"> </td>
|
---|
231 | <td valign="middle" align="left">[<a href="#SEC1" title="Cover (top) of document">Top</a>]</td>
|
---|
232 | <td valign="middle" align="left">[Contents]</td>
|
---|
233 | <td valign="middle" align="left">[Index]</td>
|
---|
234 | <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
|
---|
235 | </tr></table>
|
---|
236 | <h2 class="section"> 2.5 Troubleshooting </h2>
|
---|
237 |
|
---|
238 | <hr size="6">
|
---|
239 | <a name="SEC8"></a>
|
---|
240 | <table cellpadding="1" cellspacing="1" border="0">
|
---|
241 | <tr><td valign="middle" align="left">[<a href="#SEC7" title="Previous section in reading order"> < </a>]</td>
|
---|
242 | <td valign="middle" align="left">[<a href="#SEC9" title="Next section in reading order"> > </a>]</td>
|
---|
243 | <td valign="middle" align="left"> </td>
|
---|
244 | <td valign="middle" align="left">[<a href="#SEC2" title="Beginning of this chapter or previous chapter"> << </a>]</td>
|
---|
245 | <td valign="middle" align="left">[<a href="#SEC7" title="Up section"> Up </a>]</td>
|
---|
246 | <td valign="middle" align="left">[<a href="#SEC16" title="Next chapter"> >> </a>]</td>
|
---|
247 | <td valign="middle" align="left"> </td>
|
---|
248 | <td valign="middle" align="left"> </td>
|
---|
249 | <td valign="middle" align="left"> </td>
|
---|
250 | <td valign="middle" align="left"> </td>
|
---|
251 | <td valign="middle" align="left">[<a href="#SEC1" title="Cover (top) of document">Top</a>]</td>
|
---|
252 | <td valign="middle" align="left">[Contents]</td>
|
---|
253 | <td valign="middle" align="left">[Index]</td>
|
---|
254 | <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
|
---|
255 | </tr></table>
|
---|
256 | <h3 class="subsection"> 2.5.1 I don't hear any audio, but video is fine. </h3>
|
---|
257 |
|
---|
258 | <p>Maybe you didn't install LAME, or got your ./configure statement wrong. Check
|
---|
259 | the ffmpeg output to see if a line referring to MP3 is present. If not, then
|
---|
260 | your configuration was incorrect. If it is, then maybe your wiring is not
|
---|
261 | set up correctly. Maybe the sound card is not getting data from the right
|
---|
262 | input source. Maybe you have a really awful audio interface (like I do)
|
---|
263 | that only captures in stereo and also requires that one channel be flipped.
|
---|
264 | If you are one of these people, then export 'AUDIO_FLIP_LEFT=1' before
|
---|
265 | starting ffmpeg.
|
---|
266 | </p>
|
---|
267 | <hr size="6">
|
---|
268 | <a name="SEC9"></a>
|
---|
269 | <table cellpadding="1" cellspacing="1" border="0">
|
---|
270 | <tr><td valign="middle" align="left">[<a href="#SEC8" title="Previous section in reading order"> < </a>]</td>
|
---|
271 | <td valign="middle" align="left">[<a href="#SEC10" title="Next section in reading order"> > </a>]</td>
|
---|
272 | <td valign="middle" align="left"> </td>
|
---|
273 | <td valign="middle" align="left">[<a href="#SEC2" title="Beginning of this chapter or previous chapter"> << </a>]</td>
|
---|
274 | <td valign="middle" align="left">[<a href="#SEC7" title="Up section"> Up </a>]</td>
|
---|
275 | <td valign="middle" align="left">[<a href="#SEC16" title="Next chapter"> >> </a>]</td>
|
---|
276 | <td valign="middle" align="left"> </td>
|
---|
277 | <td valign="middle" align="left"> </td>
|
---|
278 | <td valign="middle" align="left"> </td>
|
---|
279 | <td valign="middle" align="left"> </td>
|
---|
280 | <td valign="middle" align="left">[<a href="#SEC1" title="Cover (top) of document">Top</a>]</td>
|
---|
281 | <td valign="middle" align="left">[Contents]</td>
|
---|
282 | <td valign="middle" align="left">[Index]</td>
|
---|
283 | <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
|
---|
284 | </tr></table>
|
---|
285 | <h3 class="subsection"> 2.5.2 The audio and video loose sync after a while. </h3>
|
---|
286 |
|
---|
287 | <p>Yes, they do.
|
---|
288 | </p>
|
---|
289 | <hr size="6">
|
---|
290 | <a name="SEC10"></a>
|
---|
291 | <table cellpadding="1" cellspacing="1" border="0">
|
---|
292 | <tr><td valign="middle" align="left">[<a href="#SEC9" title="Previous section in reading order"> < </a>]</td>
|
---|
293 | <td valign="middle" align="left">[<a href="#SEC11" title="Next section in reading order"> > </a>]</td>
|
---|
294 | <td valign="middle" align="left"> </td>
|
---|
295 | <td valign="middle" align="left">[<a href="#SEC2" title="Beginning of this chapter or previous chapter"> << </a>]</td>
|
---|
296 | <td valign="middle" align="left">[<a href="#SEC7" title="Up section"> Up </a>]</td>
|
---|
297 | <td valign="middle" align="left">[<a href="#SEC16" title="Next chapter"> >> </a>]</td>
|
---|
298 | <td valign="middle" align="left"> </td>
|
---|
299 | <td valign="middle" align="left"> </td>
|
---|
300 | <td valign="middle" align="left"> </td>
|
---|
301 | <td valign="middle" align="left"> </td>
|
---|
302 | <td valign="middle" align="left">[<a href="#SEC1" title="Cover (top) of document">Top</a>]</td>
|
---|
303 | <td valign="middle" align="left">[Contents]</td>
|
---|
304 | <td valign="middle" align="left">[Index]</td>
|
---|
305 | <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
|
---|
306 | </tr></table>
|
---|
307 | <h3 class="subsection"> 2.5.3 After a long while, the video update rate goes way down in WMP. </h3>
|
---|
308 |
|
---|
309 | <p>Yes, it does. Who knows why?
|
---|
310 | </p>
|
---|
311 | <hr size="6">
|
---|
312 | <a name="SEC11"></a>
|
---|
313 | <table cellpadding="1" cellspacing="1" border="0">
|
---|
314 | <tr><td valign="middle" align="left">[<a href="#SEC10" title="Previous section in reading order"> < </a>]</td>
|
---|
315 | <td valign="middle" align="left">[<a href="#SEC12" title="Next section in reading order"> > </a>]</td>
|
---|
316 | <td valign="middle" align="left"> </td>
|
---|
317 | <td valign="middle" align="left">[<a href="#SEC2" title="Beginning of this chapter or previous chapter"> << </a>]</td>
|
---|
318 | <td valign="middle" align="left">[<a href="#SEC7" title="Up section"> Up </a>]</td>
|
---|
319 | <td valign="middle" align="left">[<a href="#SEC16" title="Next chapter"> >> </a>]</td>
|
---|
320 | <td valign="middle" align="left"> </td>
|
---|
321 | <td valign="middle" align="left"> </td>
|
---|
322 | <td valign="middle" align="left"> </td>
|
---|
323 | <td valign="middle" align="left"> </td>
|
---|
324 | <td valign="middle" align="left">[<a href="#SEC1" title="Cover (top) of document">Top</a>]</td>
|
---|
325 | <td valign="middle" align="left">[Contents]</td>
|
---|
326 | <td valign="middle" align="left">[Index]</td>
|
---|
327 | <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
|
---|
328 | </tr></table>
|
---|
329 | <h3 class="subsection"> 2.5.4 WMP 6.4 behaves differently to WMP 7. </h3>
|
---|
330 |
|
---|
331 | <p>Yes, it does. Any thoughts on this would be gratefully received. These
|
---|
332 | differences extend to embedding WMP into a web page. [There are two
|
---|
333 | object IDs that you can use: The old one, which does not play well, and
|
---|
334 | the new one, which does (both tested on the same system). However,
|
---|
335 | I suspect that the new one is not available unless you have installed WMP 7].
|
---|
336 | </p>
|
---|
337 | <hr size="6">
|
---|
338 | <a name="SEC12"></a>
|
---|
339 | <table cellpadding="1" cellspacing="1" border="0">
|
---|
340 | <tr><td valign="middle" align="left">[<a href="#SEC11" title="Previous section in reading order"> < </a>]</td>
|
---|
341 | <td valign="middle" align="left">[<a href="#SEC13" title="Next section in reading order"> > </a>]</td>
|
---|
342 | <td valign="middle" align="left"> </td>
|
---|
343 | <td valign="middle" align="left">[<a href="#SEC2" title="Beginning of this chapter or previous chapter"> << </a>]</td>
|
---|
344 | <td valign="middle" align="left">[<a href="#SEC2" title="Up section"> Up </a>]</td>
|
---|
345 | <td valign="middle" align="left">[<a href="#SEC16" title="Next chapter"> >> </a>]</td>
|
---|
346 | <td valign="middle" align="left"> </td>
|
---|
347 | <td valign="middle" align="left"> </td>
|
---|
348 | <td valign="middle" align="left"> </td>
|
---|
349 | <td valign="middle" align="left"> </td>
|
---|
350 | <td valign="middle" align="left">[<a href="#SEC1" title="Cover (top) of document">Top</a>]</td>
|
---|
351 | <td valign="middle" align="left">[Contents]</td>
|
---|
352 | <td valign="middle" align="left">[Index]</td>
|
---|
353 | <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
|
---|
354 | </tr></table>
|
---|
355 | <h2 class="section"> 2.6 What else can it do? </h2>
|
---|
356 |
|
---|
357 | <p>You can replay video from .ffm files that was recorded earlier.
|
---|
358 | However, there are a number of caveats, including the fact that the
|
---|
359 | ffserver parameters must match the original parameters used to record the
|
---|
360 | file. If they do not, then ffserver deletes the file before recording into it.
|
---|
361 | (Now that I write this, it seems broken).
|
---|
362 | </p>
|
---|
363 | <p>You can fiddle with many of the codec choices and encoding parameters, and
|
---|
364 | there are a bunch more parameters that you cannot control. Post a message
|
---|
365 | to the mailing list if there are some 'must have' parameters. Look in
|
---|
366 | ffserver.conf for a list of the currently available controls.
|
---|
367 | </p>
|
---|
368 | <p>It will automatically generate the ASX or RAM files that are often used
|
---|
369 | in browsers. These files are actually redirections to the underlying ASF
|
---|
370 | or RM file. The reason for this is that the browser often fetches the
|
---|
371 | entire file before starting up the external viewer. The redirection files
|
---|
372 | are very small and can be transferred quickly. [The stream itself is
|
---|
373 | often 'infinite' and thus the browser tries to download it and never
|
---|
374 | finishes.]
|
---|
375 | </p>
|
---|
376 | <hr size="6">
|
---|
377 | <a name="SEC13"></a>
|
---|
378 | <table cellpadding="1" cellspacing="1" border="0">
|
---|
379 | <tr><td valign="middle" align="left">[<a href="#SEC12" title="Previous section in reading order"> < </a>]</td>
|
---|
380 | <td valign="middle" align="left">[<a href="#SEC14" title="Next section in reading order"> > </a>]</td>
|
---|
381 | <td valign="middle" align="left"> </td>
|
---|
382 | <td valign="middle" align="left">[<a href="#SEC2" title="Beginning of this chapter or previous chapter"> << </a>]</td>
|
---|
383 | <td valign="middle" align="left">[<a href="#SEC2" title="Up section"> Up </a>]</td>
|
---|
384 | <td valign="middle" align="left">[<a href="#SEC16" title="Next chapter"> >> </a>]</td>
|
---|
385 | <td valign="middle" align="left"> </td>
|
---|
386 | <td valign="middle" align="left"> </td>
|
---|
387 | <td valign="middle" align="left"> </td>
|
---|
388 | <td valign="middle" align="left"> </td>
|
---|
389 | <td valign="middle" align="left">[<a href="#SEC1" title="Cover (top) of document">Top</a>]</td>
|
---|
390 | <td valign="middle" align="left">[Contents]</td>
|
---|
391 | <td valign="middle" align="left">[Index]</td>
|
---|
392 | <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
|
---|
393 | </tr></table>
|
---|
394 | <h2 class="section"> 2.7 Tips </h2>
|
---|
395 |
|
---|
396 | <p>* When you connect to a live stream, most players (WMP, RA, etc) want to
|
---|
397 | buffer a certain number of seconds of material so that they can display the
|
---|
398 | signal continuously. However, ffserver (by default) starts sending data
|
---|
399 | in realtime. This means that there is a pause of a few seconds while the
|
---|
400 | buffering is being done by the player. The good news is that this can be
|
---|
401 | cured by adding a '?buffer=5' to the end of the URL. This means that the
|
---|
402 | stream should start 5 seconds in the past - and so the first 5 seconds
|
---|
403 | of the stream are sent as fast as the network will allow. It will then
|
---|
404 | slow down to real time. This noticeably improves the startup experience.
|
---|
405 | </p>
|
---|
406 | <p>You can also add a 'Preroll 15' statement into the ffserver.conf that will
|
---|
407 | add the 15 second prebuffering on all requests that do not otherwise
|
---|
408 | specify a time. In addition, ffserver will skip frames until a key_frame
|
---|
409 | is found. This further reduces the startup delay by not transferring data
|
---|
410 | that will be discarded.
|
---|
411 | </p>
|
---|
412 | <p>* You may want to adjust the MaxBandwidth in the ffserver.conf to limit
|
---|
413 | the amount of bandwidth consumed by live streams.
|
---|
414 | </p>
|
---|
415 | <hr size="6">
|
---|
416 | <a name="SEC14"></a>
|
---|
417 | <table cellpadding="1" cellspacing="1" border="0">
|
---|
418 | <tr><td valign="middle" align="left">[<a href="#SEC13" title="Previous section in reading order"> < </a>]</td>
|
---|
419 | <td valign="middle" align="left">[<a href="#SEC15" title="Next section in reading order"> > </a>]</td>
|
---|
420 | <td valign="middle" align="left"> </td>
|
---|
421 | <td valign="middle" align="left">[<a href="#SEC2" title="Beginning of this chapter or previous chapter"> << </a>]</td>
|
---|
422 | <td valign="middle" align="left">[<a href="#SEC2" title="Up section"> Up </a>]</td>
|
---|
423 | <td valign="middle" align="left">[<a href="#SEC16" title="Next chapter"> >> </a>]</td>
|
---|
424 | <td valign="middle" align="left"> </td>
|
---|
425 | <td valign="middle" align="left"> </td>
|
---|
426 | <td valign="middle" align="left"> </td>
|
---|
427 | <td valign="middle" align="left"> </td>
|
---|
428 | <td valign="middle" align="left">[<a href="#SEC1" title="Cover (top) of document">Top</a>]</td>
|
---|
429 | <td valign="middle" align="left">[Contents]</td>
|
---|
430 | <td valign="middle" align="left">[Index]</td>
|
---|
431 | <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
|
---|
432 | </tr></table>
|
---|
433 | <h2 class="section"> 2.8 Why does the ?buffer / Preroll stop working after a time? </h2>
|
---|
434 |
|
---|
435 | <p>It turns out that (on my machine at least) the number of frames successfully
|
---|
436 | grabbed is marginally less than the number that ought to be grabbed. This
|
---|
437 | means that the timestamp in the encoded data stream gets behind realtime.
|
---|
438 | This means that if you say 'Preroll 10', then when the stream gets 10
|
---|
439 | or more seconds behind, there is no Preroll left.
|
---|
440 | </p>
|
---|
441 | <p>Fixing this requires a change in the internals of how timestamps are
|
---|
442 | handled.
|
---|
443 | </p>
|
---|
444 | <hr size="6">
|
---|
445 | <a name="SEC15"></a>
|
---|
446 | <table cellpadding="1" cellspacing="1" border="0">
|
---|
447 | <tr><td valign="middle" align="left">[<a href="#SEC14" title="Previous section in reading order"> < </a>]</td>
|
---|
448 | <td valign="middle" align="left">[<a href="#SEC16" title="Next section in reading order"> > </a>]</td>
|
---|
449 | <td valign="middle" align="left"> </td>
|
---|
450 | <td valign="middle" align="left">[<a href="#SEC2" title="Beginning of this chapter or previous chapter"> << </a>]</td>
|
---|
451 | <td valign="middle" align="left">[<a href="#SEC2" title="Up section"> Up </a>]</td>
|
---|
452 | <td valign="middle" align="left">[<a href="#SEC16" title="Next chapter"> >> </a>]</td>
|
---|
453 | <td valign="middle" align="left"> </td>
|
---|
454 | <td valign="middle" align="left"> </td>
|
---|
455 | <td valign="middle" align="left"> </td>
|
---|
456 | <td valign="middle" align="left"> </td>
|
---|
457 | <td valign="middle" align="left">[<a href="#SEC1" title="Cover (top) of document">Top</a>]</td>
|
---|
458 | <td valign="middle" align="left">[Contents]</td>
|
---|
459 | <td valign="middle" align="left">[Index]</td>
|
---|
460 | <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
|
---|
461 | </tr></table>
|
---|
462 | <h2 class="section"> 2.9 Does the <code>?date=</code> stuff work. </h2>
|
---|
463 |
|
---|
464 | <p>Yes (subject to the limitation outlined above). Also note that whenever you
|
---|
465 | start ffserver, it deletes the ffm file (if any parameters have changed),
|
---|
466 | thus wiping out what you had recorded before.
|
---|
467 | </p>
|
---|
468 | <p>The format of the <code>?date=xxxxxx</code> is fairly flexible. You should use one
|
---|
469 | of the following formats (the 'T' is literal):
|
---|
470 | </p>
|
---|
471 | <table><tr><td> </td><td><pre class="example">* YYYY-MM-DDTHH:MM:SS (localtime)
|
---|
472 | * YYYY-MM-DDTHH:MM:SSZ (UTC)
|
---|
473 | </pre></td></tr></table>
|
---|
474 | <p>You can omit the YYYY-MM-DD, and then it refers to the current day. However
|
---|
475 | note that <samp>`?date=16:00:00'</samp> refers to 16:00 on the current day - this
|
---|
476 | may be in the future and so is unlikely to be useful.
|
---|
477 | </p>
|
---|
478 | <p>You use this by adding the ?date= to the end of the URL for the stream.
|
---|
479 | For example: <samp>`http://localhost:8080/test.asf?date=2002-07-26T23:05:00'</samp>.
|
---|
480 | </p>
|
---|
481 | <hr size="6">
|
---|
482 | <a name="SEC16"></a>
|
---|
483 | <table cellpadding="1" cellspacing="1" border="0">
|
---|
484 | <tr><td valign="middle" align="left">[<a href="#SEC15" title="Previous section in reading order"> < </a>]</td>
|
---|
485 | <td valign="middle" align="left">[<a href="#SEC17" title="Next section in reading order"> > </a>]</td>
|
---|
486 | <td valign="middle" align="left"> </td>
|
---|
487 | <td valign="middle" align="left">[<a href="#SEC2" title="Beginning of this chapter or previous chapter"> << </a>]</td>
|
---|
488 | <td valign="middle" align="left">[<a href="#SEC1" title="Up section"> Up </a>]</td>
|
---|
489 | <td valign="middle" align="left">[ >> ]</td>
|
---|
490 | <td valign="middle" align="left"> </td>
|
---|
491 | <td valign="middle" align="left"> </td>
|
---|
492 | <td valign="middle" align="left"> </td>
|
---|
493 | <td valign="middle" align="left"> </td>
|
---|
494 | <td valign="middle" align="left">[<a href="#SEC1" title="Cover (top) of document">Top</a>]</td>
|
---|
495 | <td valign="middle" align="left">[Contents]</td>
|
---|
496 | <td valign="middle" align="left">[Index]</td>
|
---|
497 | <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
|
---|
498 | </tr></table>
|
---|
499 | <h1 class="chapter"> 3. Invocation </h1>
|
---|
500 | <hr size="6">
|
---|
501 | <a name="SEC17"></a>
|
---|
502 | <table cellpadding="1" cellspacing="1" border="0">
|
---|
503 | <tr><td valign="middle" align="left">[<a href="#SEC16" title="Previous section in reading order"> < </a>]</td>
|
---|
504 | <td valign="middle" align="left">[<a href="#SEC18" title="Next section in reading order"> > </a>]</td>
|
---|
505 | <td valign="middle" align="left"> </td>
|
---|
506 | <td valign="middle" align="left">[<a href="#SEC16" title="Beginning of this chapter or previous chapter"> << </a>]</td>
|
---|
507 | <td valign="middle" align="left">[<a href="#SEC16" title="Up section"> Up </a>]</td>
|
---|
508 | <td valign="middle" align="left">[ >> ]</td>
|
---|
509 | <td valign="middle" align="left"> </td>
|
---|
510 | <td valign="middle" align="left"> </td>
|
---|
511 | <td valign="middle" align="left"> </td>
|
---|
512 | <td valign="middle" align="left"> </td>
|
---|
513 | <td valign="middle" align="left">[<a href="#SEC1" title="Cover (top) of document">Top</a>]</td>
|
---|
514 | <td valign="middle" align="left">[Contents]</td>
|
---|
515 | <td valign="middle" align="left">[Index]</td>
|
---|
516 | <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
|
---|
517 | </tr></table>
|
---|
518 | <h2 class="section"> 3.1 Syntax </h2>
|
---|
519 | <table><tr><td> </td><td><pre class="example">ffserver [options]
|
---|
520 | </pre></td></tr></table>
|
---|
521 | <hr size="6">
|
---|
522 | <a name="SEC18"></a>
|
---|
523 | <table cellpadding="1" cellspacing="1" border="0">
|
---|
524 | <tr><td valign="middle" align="left">[<a href="#SEC17" title="Previous section in reading order"> < </a>]</td>
|
---|
525 | <td valign="middle" align="left">[ > ]</td>
|
---|
526 | <td valign="middle" align="left"> </td>
|
---|
527 | <td valign="middle" align="left">[<a href="#SEC16" title="Beginning of this chapter or previous chapter"> << </a>]</td>
|
---|
528 | <td valign="middle" align="left">[<a href="#SEC16" title="Up section"> Up </a>]</td>
|
---|
529 | <td valign="middle" align="left">[ >> ]</td>
|
---|
530 | <td valign="middle" align="left"> </td>
|
---|
531 | <td valign="middle" align="left"> </td>
|
---|
532 | <td valign="middle" align="left"> </td>
|
---|
533 | <td valign="middle" align="left"> </td>
|
---|
534 | <td valign="middle" align="left">[<a href="#SEC1" title="Cover (top) of document">Top</a>]</td>
|
---|
535 | <td valign="middle" align="left">[Contents]</td>
|
---|
536 | <td valign="middle" align="left">[Index]</td>
|
---|
537 | <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
|
---|
538 | </tr></table>
|
---|
539 | <h2 class="section"> 3.2 Options </h2>
|
---|
540 | <dl compact="compact">
|
---|
541 | <dt> <samp>`-L'</samp></dt>
|
---|
542 | <dd><p>Print the license.
|
---|
543 | </p></dd>
|
---|
544 | <dt> <samp>`-h'</samp></dt>
|
---|
545 | <dd><p>Print the help.
|
---|
546 | </p></dd>
|
---|
547 | <dt> <samp>`-f configfile'</samp></dt>
|
---|
548 | <dd><p>Use <tt>`configfile'</tt> instead of <tt>`/etc/ffserver.conf'</tt>.
|
---|
549 | </p></dd>
|
---|
550 | </dl>
|
---|
551 |
|
---|
552 |
|
---|
553 | <hr size="6">
|
---|
554 | <a name="SEC_About"></a>
|
---|
555 | <table cellpadding="1" cellspacing="1" border="0">
|
---|
556 | <tr><td valign="middle" align="left">[<a href="#SEC1" title="Cover (top) of document">Top</a>]</td>
|
---|
557 | <td valign="middle" align="left">[Contents]</td>
|
---|
558 | <td valign="middle" align="left">[Index]</td>
|
---|
559 | <td valign="middle" align="left">[<a href="#SEC_About" title="About (help)"> ? </a>]</td>
|
---|
560 | </tr></table>
|
---|
561 | <h1>About This Document</h1>
|
---|
562 | <p>
|
---|
563 | This document was generated on <i>June, 30 2006</i> using <a href="http://texi2html.cvshome.org/"><i>texi2html 1.76</i></a>.
|
---|
564 | </p>
|
---|
565 | <p>
|
---|
566 | The buttons in the navigation panels have the following meaning:
|
---|
567 | </p>
|
---|
568 | <table border="1">
|
---|
569 | <tr>
|
---|
570 | <th> Button </th>
|
---|
571 | <th> Name </th>
|
---|
572 | <th> Go to </th>
|
---|
573 | <th> From 1.2.3 go to</th>
|
---|
574 | </tr>
|
---|
575 | <tr>
|
---|
576 | <td align="center"> [ < ] </td>
|
---|
577 | <td align="center">Back</td>
|
---|
578 | <td>previous section in reading order</td>
|
---|
579 | <td>1.2.2</td>
|
---|
580 | </tr>
|
---|
581 | <tr>
|
---|
582 | <td align="center"> [ > ] </td>
|
---|
583 | <td align="center">Forward</td>
|
---|
584 | <td>next section in reading order</td>
|
---|
585 | <td>1.2.4</td>
|
---|
586 | </tr>
|
---|
587 | <tr>
|
---|
588 | <td align="center"> [ << ] </td>
|
---|
589 | <td align="center">FastBack</td>
|
---|
590 | <td>beginning of this chapter or previous chapter</td>
|
---|
591 | <td>1</td>
|
---|
592 | </tr>
|
---|
593 | <tr>
|
---|
594 | <td align="center"> [ Up ] </td>
|
---|
595 | <td align="center">Up</td>
|
---|
596 | <td>up section</td>
|
---|
597 | <td>1.2</td>
|
---|
598 | </tr>
|
---|
599 | <tr>
|
---|
600 | <td align="center"> [ >> ] </td>
|
---|
601 | <td align="center">FastForward</td>
|
---|
602 | <td>next chapter</td>
|
---|
603 | <td>2</td>
|
---|
604 | </tr>
|
---|
605 | <tr>
|
---|
606 | <td align="center"> [Top] </td>
|
---|
607 | <td align="center">Top</td>
|
---|
608 | <td>cover (top) of document</td>
|
---|
609 | <td> </td>
|
---|
610 | </tr>
|
---|
611 | <tr>
|
---|
612 | <td align="center"> [Contents] </td>
|
---|
613 | <td align="center">Contents</td>
|
---|
614 | <td>table of contents</td>
|
---|
615 | <td> </td>
|
---|
616 | </tr>
|
---|
617 | <tr>
|
---|
618 | <td align="center"> [Index] </td>
|
---|
619 | <td align="center">Index</td>
|
---|
620 | <td>index</td>
|
---|
621 | <td> </td>
|
---|
622 | </tr>
|
---|
623 | <tr>
|
---|
624 | <td align="center"> [ ? ] </td>
|
---|
625 | <td align="center">About</td>
|
---|
626 | <td>about (help)</td>
|
---|
627 | <td> </td>
|
---|
628 | </tr>
|
---|
629 | </table>
|
---|
630 |
|
---|
631 | <p>
|
---|
632 | where the <strong> Example </strong> assumes that the current position is at <strong> Subsubsection One-Two-Three </strong> of a document of the following structure:
|
---|
633 | </p>
|
---|
634 |
|
---|
635 | <ul>
|
---|
636 | <li> 1. Section One
|
---|
637 | <ul>
|
---|
638 | <li>1.1 Subsection One-One
|
---|
639 | <ul>
|
---|
640 | <li>...</li>
|
---|
641 | </ul>
|
---|
642 | </li>
|
---|
643 | <li>1.2 Subsection One-Two
|
---|
644 | <ul>
|
---|
645 | <li>1.2.1 Subsubsection One-Two-One</li>
|
---|
646 | <li>1.2.2 Subsubsection One-Two-Two</li>
|
---|
647 | <li>1.2.3 Subsubsection One-Two-Three
|
---|
648 | <strong><== Current Position </strong></li>
|
---|
649 | <li>1.2.4 Subsubsection One-Two-Four</li>
|
---|
650 | </ul>
|
---|
651 | </li>
|
---|
652 | <li>1.3 Subsection One-Three
|
---|
653 | <ul>
|
---|
654 | <li>...</li>
|
---|
655 | </ul>
|
---|
656 | </li>
|
---|
657 | <li>1.4 Subsection One-Four</li>
|
---|
658 | </ul>
|
---|
659 | </li>
|
---|
660 | </ul>
|
---|
661 |
|
---|
662 | <hr size="1">
|
---|
663 | <p>
|
---|
664 | <font size="-1">
|
---|
665 | This document was generated on <i>June, 30 2006</i> using <a href="http://texi2html.cvshome.org/"><i>texi2html 1.76</i></a>.
|
---|
666 | </font>
|
---|
667 | <br>
|
---|
668 |
|
---|
669 | </p>
|
---|
670 | </body>
|
---|
671 | </html>
|
---|