added faq.html
[ffmpeg.git] / doc / HOWTO-STREAM
index 1a666fd..d260a04 100644 (file)
@@ -2,7 +2,7 @@ The FFserver streaming HOWTO
 ----------------------------
 
 Philip Gladstone <philip-ffserver@gladstonefamily.net>
-Last updated: May 8, 2002
+Last updated: July 26, 2002
 
 0. What is this HOWTO about?
 
@@ -50,6 +50,9 @@ Windows Media Player (WMP). Go to Open URL and enter
 
 You should see (after a short delay) video and hear audio. 
 
+WARNING: trying to stream test1.mpg doesn't work with WMP as it tries to
+transfer the entire file before starting to play.
+
 4. What happens next?
 
 You should edit the ffserver.conf file to suit your needs (in terms of 
@@ -77,6 +80,14 @@ Yes, they do.
 
 Yes, it does. Who knows why?
 
+* WMP 6.4 behaves differently to WMP 7.
+
+Yes, it does. Any thoughts on this would be gratefully received. These
+differences extend to embedding WMP into a web page. [There are two
+different object ids that you can use, one of them -- the old one -- cannot
+play very well, and the new one works well (both on the same system). However, 
+I suspect that the new one is not available unless you have installed WMP 7].
+
 6. What else can it do?
 
 There seems to be a bunch of code that allows you to replay previous
@@ -89,6 +100,14 @@ there are a bunch more parameters that you cannot control. Post a message
 to the mailing list if there are some 'must have' parameters. Look in the
 ffserver.conf for a list of the currently available controls.
 
+It will automatically generate the .ASX or .RAM files that are often used
+in browsers. These files are actually redirections to the underlying .ASF
+or .RM file. The reason for this is that the browser often fetches the
+entire file before starting up the external viewer. The redirection files
+are very small and can be transferred quickly. [The stream itself is
+often 'infinite' and thus the browser tries to download it and never 
+finishes.]
+
 7. Tips
 
 * When you connect to a live stream, most players (WMP, RA etc) want to
@@ -100,3 +119,43 @@ cured by adding a '?buffer=5' to the end of the URL. This says that the
 stream should start 5 seconds in the past -- and so the first 5 seconds 
 of the stream is sent as fast as the network will allow. It will then
 slow down to real time. This noticeably improves the startup experience.
+
+You can also add a 'Preroll 15' statement into the ffserver.conf that will
+add the 15 second prebuffering on all requests that do not otherwise
+specify a time. In addition, ffserver will skip frames until a key_frame
+is found. This further reduces the startup delay by not transferring data
+that will be discarded.
+
+* You may want to adjust the MaxBandwidth in the ffserver.conf to limit
+the amount of bandwidth consumed by live streams.
+
+8. Why does the ?buffer / Preroll stop working after a time?
+
+It turns out that (on my machine at least) the number of frames successfully
+grabbed is marginally less than the number that ought to be grabbed. This
+means that the timestamp in the encoded data stream gets behind real time.
+This means that if you say 'preroll 10', then when the stream gets 10
+or more seconds behind, there is no preroll left.
+
+Fixing this requires a require in the internals in how timestampts are 
+handled.
+
+9. Does the ?date= stuff work.
+
+Yes (subject to the caution above). Also note that whenever you start
+ffserver, it deletes the ffm file, thus wiping out what you had recorded
+before. This behaviour is a temporary fix to various crashes. The aim is
+to fix it so that the old data is saved if possible.
+
+The format of the ?date=xxxxxx is fairly flexible. You should use one
+of the following formats (the 'T' is literal):
+
+* YYYY-MM-DDTHH:MM:SS     (localtime)
+* YYYY-MM-DDTHH:MM:SSZ    (UTC)
+
+You can omit the YYYY-MM-DD, and then it refers to the current day. However 
+note that ?date=16:00:00  refers to 4PM on the current day -- this may be
+in the future and so unlikely to useful.
+
+You use this by adding the ?date= to the end of the URL for the stream.
+For example:   http://localhost:8080/test.asf?date=2002-07-26T23:05:00