We limit the datarate to twice the average datarate (however the first
few seconds are sent flat out to help with prebuffering).
* Add the initialization of the rc_eq fields and the like for VIDEO codecs.
* Add the missing get_arg calls for VideoQxxxx
Originally committed as revision 920 to svn://svn.ffmpeg.org/ffmpeg/trunk
This adds functions to send and receive doubles and also null terminated strings.
Originally committed as revision 919 to svn://svn.ffmpeg.org/ffmpeg/trunk
parameters as the currently desired codec settings. Thus it is
important not to fiddle with the streams if you want to keep the
old data.
* Fix it so that the ?buffer= paramter can be larger than 40 minutes or
so. Why is this good? So I can use ?buffer=43200 and get video from
12 hours ago (i.e. when it is daylight outside)
Originally committed as revision 829 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Fix the sense of the test for "-" with customlog and not closing stdout in daemon mode
Originally committed as revision 828 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Add ip address based acls for streams. I recommend adding ACL entries
for all feeds to control who can submit stuff. You might also want to
consider who can get to your status page.
* Make logging work again if customlog == "-"
Originally committed as revision 821 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Add real parse_date code. This is much more robust and can handle localtime and UTC
Originally committed as revision 817 to svn://svn.ffmpeg.org/ffmpeg/trunk
in local time rather than GMT. Note that you are advised to use the date as well as the time
as the time is relative to the current day (which is not much use if the time is in the
future). The date format parsing is pretty strict still:
YYYY-MM-DDTHH:MM:SS is a format that works. The T is a literal non-digit character. I wouldn't
use a space. The :SS can be omitted. The number of digits *must* be four in the Year.
Originally committed as revision 691 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Add code to monitor the actual datarates on the http connections
* Fix problem when ffmpeg uses more than 24 hours of CPU (display only problem)
Originally committed as revision 680 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Add parameters to set author/comment/copyright/title to streamed asf
* Format the stats output a little bit better.
Originally committed as revision 663 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Change to dynamically allocated buffers. Should reduce memory footprint significantly
as well as eliminate a call to av_abort!
* Better version of WMP rate switching infrastructure. Currently turned off till
the PTS fixes are in.
* Added a Redirect type feature. This allows URLs served by ffserver to just
redirect to somewhere else. You might want to do this. Really this needs to
be enhanced -- say to handle all 404 pages.
* Add mechanism to automatically fire up ffmpeg on ffserver start. This is turned
on by adding the Launch keyword to the <feed> definition.
* Add logic to take care of non-wmp user agents requesting .asf files. They now get
a [reference] file with an appropriate mime type. This fixes the mplayer problem.
* Make sure that we have a large buffer for the stats page.
* Add a FaviconURL keyword to the status stream definition. If set, then it
generates the appropriate HTML so that IE and Mozilla will display the favicon
as appropriate. OK -- this is a pretty random feature.
* If the ffmpeg is running as a child of ffserver, then report it's CPU usage
on the status page. [This is linux only -- maybe somebody could do the work for
another OS. The tricky thing is getting the 'ps' command right.]
Originally committed as revision 630 to svn://svn.ffmpeg.org/ffmpeg/trunk
returns EOF -- e.g. it is connected to /dev/null
* Make the 1MB video buffer only allocated once rather than on each frame.
The allocation and deallocation causes significant performance loss as the
kernel remaps the address space each time.
Originally committed as revision 629 to svn://svn.ffmpeg.org/ffmpeg/trunk
at different frame rates).
* Do the av_abort() change that is not otherwise worth checking in.
Originally committed as revision 620 to svn://svn.ffmpeg.org/ffmpeg/trunk
requests. The current state is that at startup, WMP will get the
best stream that it can handle. However, subsequent rate switching
only puts a message in the log saying what the new stream ought to
be. Solving this will be tricky. I guess that we would have to wait for
key frames to appear in the new stream, and then switch over to it.
Some care would be needed to deal with the PTS of the new stream
versus the old stream.
Originally committed as revision 602 to svn://svn.ffmpeg.org/ffmpeg/trunk
a higher priority than extensions. This gives FFM a chance of working. Note
that some of the other probe functions are bit optimistic, and can be
confused by binary data (such as 0x00 0x00 0x01 0xzz) for some values of zz.
This set of changes makes ffserver work again, and fixes the cannot open
video grab device message.
Originally committed as revision 581 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Make sure that the read buffer for the ffm file is allocated in the priv_data.
Originally committed as revision 578 to svn://svn.ffmpeg.org/ffmpeg/trunk
my pondcam streams for 24 hours! I'll bet he wasn't watching.
* Add code to allocate the priv_data so that the ffm header can be
parsed again. [Fix crash]
Originally committed as revision 577 to svn://svn.ffmpeg.org/ffmpeg/trunk
will clear out the stream. I think that this is really a linux bug in
the handling of poll, but I did a workaround anyway.
* Improve the statistics output and prevent a buffer overrun when lots
of clients are connected.
* Process ffm input when it is received and don't always be one ffm
packet behind.
* Try to avoid going through the poll loop when not required.
Originally committed as revision 514 to svn://svn.ffmpeg.org/ffmpeg/trunk
file and seek to an FFM packet, then it is important that the packet
found has a frame header within it. If not, then terrible things happen.
This fixes the problem.
Originally committed as revision 513 to svn://svn.ffmpeg.org/ffmpeg/trunk
no waiting for key frames).
* Provide StartSendOnKey paramter for a stream to wait until we get key frames
before sending.
* Add the codec names into the status page. May help debugging problems.
Originally committed as revision 507 to svn://svn.ffmpeg.org/ffmpeg/trunk
* prebuffering/preroll a live stream -- this improves startup time
* videoqmin/videoqmax/videoqdiff -- codec parameters
* maximum bandwidth for live streams
* Add support for .ram and .rpm extensions mapping onto .rm
* Make the status page show bandwidth. Also make the .asf and .rm
links go to .asx and .ram files.
* Make a stream only start streaming when it gets a keyframe on each
stream. This is arguable, and it maybe ought to be restricted to
live streams. However, since I don't think that file streams work,
this is a step in the right direction. It improves the startup delay.
* Log an error if we are unable to delete the temp feed file.
Originally committed as revision 501 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Print out the logging information that comes from WMP (you'd be suprised what
it sends!
* Fix a remotely exploitable buffer overflow (argh!)
* Add support for automatically serving up .asx files. It generates an automatic
redirect to the associated .asf file (with the same parameters). I guess that
someone who understands the realaudio equivalent could hack that it as well.
Originally committed as revision 482 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Note that this code needs to be fixed -- the rate conversion from 48000->44100
sounds horrible!
Originally committed as revision 471 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Copy the duration over as well, though I'm not 100% certain that that is
still needed.
Originally committed as revision 462 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Add a kludge to allow the left channel to be inverted -- my tv card/sound card
ends up with the left channel = minus right channel. Converting to mono by
adding the channels doesn't work well.
Originally committed as revision 458 to svn://svn.ffmpeg.org/ffmpeg/trunk
staring at headers of real ASF files. ASFRecorder and avifile were
other useful sources.
Originally committed as revision 457 to svn://svn.ffmpeg.org/ffmpeg/trunk
buffers. In fact, the code was pretty much shot.
* Try to fool WMP into thinking that we are a microsoft server.
* When we establish a stream to a user, copy the codec information from
that saved as part of the stream. This gives us the real frame_size and
other important parameters.
* ASF needs to know about key frames, so add some logic to copy this information
around.
* When we get the data from ffmpeg as part of a feed, make sure that we save
the actual codec parameters.
* Allow configuration of AudioCodec and VideoCodec
* Make sure that we delete the feed file before starting. This is not ideal
but it makes things work a whole lot better!
Originally committed as revision 454 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Add default entries to switch statements to catch programming errors
* Fix problem with high CPU usage when capturing live (the audio grabber
is non-blocking for some reason). This is the stream_no_data stuff.
* Handle the video grabber getting behind in its work -- PKT_FLAG_DROPPED_FRAME
Originally committed as revision 453 to svn://svn.ffmpeg.org/ffmpeg/trunk