Rename ffserver to avserver.

pull/2/head
Anton Khirnov 14 years ago
parent 9e12f0bf5f
commit 4d58e4cb4c
  1. 2
      .gitignore
  2. 2
      Changelog
  3. 6
      Makefile
  4. 64
      avserver.c
  5. 20
      configure
  6. 2
      doc/avplay.texi
  7. 2
      doc/avprobe.texi
  8. 14
      doc/avserver.conf
  9. 60
      doc/avserver.texi
  10. 6
      doc/ffmpeg.texi
  11. 2
      doc/general.texi
  12. 8
      ffmpeg.c
  13. 2
      libavformat/ffm.h
  14. 8
      libavformat/ffmdec.c
  15. 4
      libavformat/ffmenc.c
  16. 2
      libavformat/mpjpeg.c

2
.gitignore vendored

@ -14,7 +14,7 @@ doxy
ffmpeg
avplay
avprobe
ffserver
avserver
libavcodec/*_tablegen
libavcodec/*_tables.c
libavcodec/*_tables.h

@ -5,7 +5,7 @@ releases are sorted from youngest to oldest.
version <next>:
- BWF muxer
- Flash Screen Video 2 decoder
- ffplay/ffprobe renamed to avplay/avprobe
- ffplay/ffprobe/ffserver renamed to avplay/avprobe/avserver
version 0.7:

@ -55,7 +55,7 @@ COMPILE_S = $(call COMPILE,AS)
PROGS-$(CONFIG_FFMPEG) += ffmpeg
PROGS-$(CONFIG_AVPLAY) += avplay
PROGS-$(CONFIG_AVPROBE) += avprobe
PROGS-$(CONFIG_FFSERVER) += ffserver
PROGS-$(CONFIG_AVSERVER) += avserver
PROGS := $(PROGS-yes:%=%$(EXESUF))
OBJS = $(PROGS-yes:%=%.o) cmdutils.o
@ -64,7 +64,7 @@ HOSTPROGS := $(TESTTOOLS:%=tests/%)
TOOLS = qt-faststart trasher
TOOLS-$(CONFIG_ZLIB) += cws2fws
BASENAMES = ffmpeg avplay avprobe ffserver
BASENAMES = ffmpeg avplay avprobe avserver
ALLPROGS = $(BASENAMES:%=%$(EXESUF))
ALLMANPAGES = $(BASENAMES:%=%.1)
@ -118,7 +118,7 @@ $(foreach D,$(FFLIBS),$(eval $(call DOSUBDIR,lib$(D))))
avplay.o: CFLAGS += $(SDL_CFLAGS)
avplay$(EXESUF): FF_EXTRALIBS += $(SDL_LIBS)
ffserver$(EXESUF): LDFLAGS += $(FFSERVERLDFLAGS)
avserver$(EXESUF): LDFLAGS += $(AVSERVERLDFLAGS)
$(PROGS): %$(EXESUF): %.o cmdutils.o $(FF_DEP_LIBS)
$(LD) $(LDFLAGS) -o $@ $< cmdutils.o $(FF_EXTRALIBS)

@ -59,7 +59,7 @@
#include "cmdutils.h"
const char program_name[] = "ffserver";
const char program_name[] = "avserver";
const int program_birth_year = 2000;
static const OptionDef options[];
@ -200,7 +200,7 @@ typedef struct IPAddressACL {
struct in_addr last;
} IPAddressACL;
/* description of each stream of the ffserver.conf file */
/* description of each stream of the avserver.conf file */
typedef struct FFStream {
enum StreamType stream_type;
char filename[1024]; /* stream filename */
@ -299,10 +299,10 @@ static int rtp_new_av_stream(HTTPContext *c,
static const char *my_program_name;
static const char *my_program_dir;
static const char *config_filename = "/etc/ffserver.conf";
static const char *config_filename = "/etc/avserver.conf";
static int ffserver_debug;
static int ffserver_daemon;
static int avserver_debug;
static int avserver_daemon;
static int no_launch;
static int need_to_start_children;
@ -320,7 +320,7 @@ static AVLFG random_state;
static FILE *logfile = NULL;
/* FIXME: make ffserver work with IPv6 */
/* FIXME: make avserver work with IPv6 */
/* resolve host with also IP address parsing */
static int resolve_host(struct in_addr *sin_addr, const char *hostname)
{
@ -480,7 +480,7 @@ static void start_children(FFStream *feed)
for (i = 3; i < 256; i++)
close(i);
if (!ffserver_debug) {
if (!avserver_debug) {
i = open("/dev/null", O_RDWR);
if (i != -1) {
dup2(i, 0);
@ -620,7 +620,7 @@ static int http_server(void)
return -1;
}
http_log("FFserver started.\n");
http_log("AVserver started.\n");
start_children(first_feed);
@ -664,7 +664,7 @@ static int http_server(void)
poll_entry->events = POLLOUT;
poll_entry++;
} else {
/* when ffserver is doing the timing, we work by
/* when avserver is doing the timing, we work by
looking at which packet need to be sent every
10 ms */
delay1 = 10; /* one tick wait XXX: 10 ms assumed */
@ -1480,7 +1480,7 @@ static int http_parse_request(HTTPContext *c)
av_strlcpy(c->protocol, protocol, sizeof(c->protocol));
if (ffserver_debug)
if (avserver_debug)
http_log("%s - - New connection: %s %s\n", inet_ntoa(c->from_addr.sin_addr), cmd, url);
/* find the filename and the optional info string in the request */
@ -1643,7 +1643,7 @@ static int http_parse_request(HTTPContext *c)
"Content-type: video/x-ms-asf\r\n"
"\r\n"
"<ASX Version=\"3\">\r\n"
//"<!-- Autogenerated by ffserver -->\r\n"
//"<!-- Autogenerated by avserver -->\r\n"
"<ENTRY><REF HREF=\"http://%s/%s%s\"/></ENTRY>\r\n"
"</ASX>\r\n", hostbuf, filename, info);
break;
@ -1652,7 +1652,7 @@ static int http_parse_request(HTTPContext *c)
"HTTP/1.0 200 RAM Follows\r\n"
"Content-type: audio/x-pn-realaudio\r\n"
"\r\n"
"# Autogenerated by ffserver\r\n"
"# Autogenerated by avserver\r\n"
"http://%s/%s%s\r\n", hostbuf, filename, info);
break;
case REDIR_ASF:
@ -3458,7 +3458,7 @@ static int rtp_new_av_stream(HTTPContext *c,
}
/********************************************************************/
/* ffserver initialization */
/* avserver initialization */
static AVStream *add_av_stream1(FFStream *stream, AVCodecContext *codec, int copy)
{
@ -3914,10 +3914,10 @@ static void load_module(const char *filename)
return;
}
init_func = dlsym(dll, "ffserver_module_init");
init_func = dlsym(dll, "avserver_module_init");
if (!init_func) {
fprintf(stderr,
"%s: init function 'ffserver_module_init()' not found\n",
"%s: init function 'avserver_module_init()' not found\n",
filename);
dlclose(dll);
}
@ -3926,7 +3926,7 @@ static void load_module(const char *filename)
}
#endif
static int ffserver_opt_default(const char *opt, const char *arg,
static int avserver_opt_default(const char *opt, const char *arg,
AVCodecContext *avctx, int type)
{
int ret = 0;
@ -3936,7 +3936,7 @@ static int ffserver_opt_default(const char *opt, const char *arg,
return ret;
}
static int ffserver_opt_preset(const char *arg,
static int avserver_opt_preset(const char *arg,
AVCodecContext *avctx, int type,
enum CodecID *audio_id, enum CodecID *video_id)
{
@ -3967,7 +3967,7 @@ static int ffserver_opt_preset(const char *arg,
*video_id = opt_video_codec(tmp2);
}else if(!strcmp(tmp, "scodec")){
/* opt_subtitle_codec(tmp2); */
}else if(ffserver_opt_default(tmp, tmp2, avctx, type) < 0){
}else if(avserver_opt_default(tmp, tmp2, avctx, type) < 0){
fprintf(stderr, "%s: Invalid option or argument: '%s', parsed as '%s' = '%s'\n", filename, line, tmp, tmp2);
ret = 1;
break;
@ -3979,7 +3979,7 @@ static int ffserver_opt_preset(const char *arg,
return ret;
}
static AVOutputFormat *ffserver_guess_format(const char *short_name, const char *filename,
static AVOutputFormat *avserver_guess_format(const char *short_name, const char *filename,
const char *mime_type)
{
AVOutputFormat *fmt = av_guess_format(short_name, filename, mime_type);
@ -4066,7 +4066,7 @@ static int parse_ffconfig(const char *filename)
ERROR("%s:%d: Invalid host/IP address: %s\n", arg);
}
} else if (!strcasecmp(cmd, "NoDaemon")) {
ffserver_daemon = 0;
avserver_daemon = 0;
} else if (!strcasecmp(cmd, "RTSPPort")) {
get_arg(arg, sizeof(arg), &p);
val = atoi(arg);
@ -4103,7 +4103,7 @@ static int parse_ffconfig(const char *filename)
} else
max_bandwidth = llval;
} else if (!strcasecmp(cmd, "CustomLog")) {
if (!ffserver_debug)
if (!avserver_debug)
get_arg(logfilename, sizeof(logfilename), &p);
} else if (!strcasecmp(cmd, "<Feed")) {
/*********************************************/
@ -4227,7 +4227,7 @@ static int parse_ffconfig(const char *filename)
}
}
stream->fmt = ffserver_guess_format(NULL, stream->filename, NULL);
stream->fmt = avserver_guess_format(NULL, stream->filename, NULL);
avcodec_get_context_defaults2(&video_enc, AVMEDIA_TYPE_VIDEO);
avcodec_get_context_defaults2(&audio_enc, AVMEDIA_TYPE_AUDIO);
audio_id = CODEC_ID_NONE;
@ -4267,7 +4267,7 @@ static int parse_ffconfig(const char *filename)
/* jpeg cannot be used here, so use single frame jpeg */
if (!strcmp(arg, "jpeg"))
strcpy(arg, "mjpeg");
stream->fmt = ffserver_guess_format(arg, NULL, NULL);
stream->fmt = avserver_guess_format(arg, NULL, NULL);
if (!stream->fmt) {
ERROR("Unknown Format: %s\n", arg);
}
@ -4430,7 +4430,7 @@ static int parse_ffconfig(const char *filename)
avctx = &audio_enc;
type = AV_OPT_FLAG_AUDIO_PARAM;
}
if (ffserver_opt_default(arg, arg2, avctx, type|AV_OPT_FLAG_ENCODING_PARAM)) {
if (avserver_opt_default(arg, arg2, avctx, type|AV_OPT_FLAG_ENCODING_PARAM)) {
ERROR("AVOption error: %s %s\n", arg, arg2);
}
} else if (!strcasecmp(cmd, "AVPresetVideo") ||
@ -4447,7 +4447,7 @@ static int parse_ffconfig(const char *filename)
audio_enc.codec_id = audio_id;
type = AV_OPT_FLAG_AUDIO_PARAM;
}
if (ffserver_opt_preset(arg, avctx, type|AV_OPT_FLAG_ENCODING_PARAM, &audio_id, &video_id)) {
if (avserver_opt_preset(arg, avctx, type|AV_OPT_FLAG_ENCODING_PARAM, &audio_id, &video_id)) {
ERROR("AVPreset error: %s\n", arg);
}
} else if (!strcasecmp(cmd, "VideoTag")) {
@ -4638,14 +4638,14 @@ static void handle_child_exit(int sig)
static void opt_debug(void)
{
ffserver_debug = 1;
ffserver_daemon = 0;
avserver_debug = 1;
avserver_daemon = 0;
logfilename[0] = '-';
}
static void show_help(void)
{
printf("usage: ffserver [options]\n"
printf("usage: avserver [options]\n"
"Hyper fast multi format Audio/Video streaming server\n");
printf("\n");
show_help_options(options, "Main options:\n", 0, 0);
@ -4655,7 +4655,7 @@ static const OptionDef options[] = {
#include "cmdutils_common_opts.h"
{ "n", OPT_BOOL, {(void *)&no_launch }, "enable no-launch mode" },
{ "d", 0, {(void*)opt_debug}, "enable debug mode" },
{ "f", HAS_ARG | OPT_STRING, {(void*)&config_filename }, "use configfile instead of /etc/ffserver.conf", "configfile" },
{ "f", HAS_ARG | OPT_STRING, {(void*)&config_filename }, "use configfile instead of /etc/avserver.conf", "configfile" },
{ NULL },
};
@ -4669,7 +4669,7 @@ int main(int argc, char **argv)
my_program_name = argv[0];
my_program_dir = getcwd(0, 0);
ffserver_daemon = 1;
avserver_daemon = 1;
parse_options(argc, argv, options, NULL);
@ -4703,7 +4703,7 @@ int main(int argc, char **argv)
compute_bandwidth();
/* put the process in background and detach it from its TTY */
if (ffserver_daemon) {
if (avserver_daemon) {
int pid;
pid = fork();
@ -4730,7 +4730,7 @@ int main(int argc, char **argv)
/* signal init */
signal(SIGPIPE, SIG_IGN);
if (ffserver_daemon)
if (avserver_daemon)
chdir("/");
if (http_server() < 0) {

20
configure vendored

@ -83,7 +83,7 @@ Configuration options:
--disable-ffmpeg disable ffmpeg build
--disable-avplay disable avplay build
--disable-avprobe disable avprobe build
--disable-ffserver disable ffserver build
--disable-avserver disable avserver build
--disable-avdevice disable libavdevice build
--disable-avcodec disable libavcodec build
--disable-avformat disable libavformat build
@ -915,7 +915,7 @@ CONFIG_LIST="
ffmpeg
avplay
avprobe
ffserver
avserver
fft
frei0r
golomb
@ -1492,8 +1492,8 @@ ffmpeg_select="buffer_filter"
avplay_deps="avcodec avformat swscale sdl"
avplay_select="rdft"
avprobe_deps="avcodec avformat"
ffserver_deps="avformat ffm_muxer fork rtp_protocol rtsp_demuxer"
ffserver_extralibs='$ldl'
avserver_deps="avformat ffm_muxer fork rtp_protocol rtsp_demuxer"
avserver_extralibs='$ldl'
doc_deps="texi2html"
@ -1637,7 +1637,7 @@ enable fastdiv
enable ffmpeg
enable avplay
enable avprobe
enable ffserver
enable avserver
enable network
enable optimizations
enable postproc
@ -1648,7 +1648,7 @@ enable swscale_alpha
# build settings
SHFLAGS='-shared -Wl,-soname,$$(@F)'
FFSERVERLDFLAGS=-Wl,-E
AVSERVERLDFLAGS=-Wl,-E
LIBPREF="lib"
LIBSUF=".a"
FULLNAME='$(NAME)$(BUILDSUF)'
@ -2355,7 +2355,7 @@ case $target_os in
host_libs=
;;
sunos)
FFSERVERLDFLAGS=""
AVSERVERLDFLAGS=""
SHFLAGS='-shared -Wl,-h,$$(@F)'
enabled x86 && SHFLAGS="-mimpure-text $SHFLAGS"
network_extralibs="-lsocket -lnsl"
@ -2400,7 +2400,7 @@ case $target_os in
SLIBSUF=".dylib"
SLIBNAME_WITH_VERSION='$(SLIBPREF)$(FULLNAME).$(LIBVERSION)$(SLIBSUF)'
SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME).$(LIBMAJOR)$(SLIBSUF)'
FFSERVERLDFLAGS=-Wl,-bind_at_load
AVSERVERLDFLAGS=-Wl,-bind_at_load
objformat="macho"
enabled x86_64 && objformat="macho64"
enabled_any pic shared ||
@ -2472,7 +2472,7 @@ case $target_os in
add_cppflags -D_GNU_SOURCE
add_ldflags -Zomf -Zbin-files -Zargs-wild -Zmap
SHFLAGS='$(SUBDIR)$(NAME).def -Zdll -Zomf'
FFSERVERLDFLAGS=""
AVSERVERLDFLAGS=""
LIBSUF="_s.a"
SLIBPREF=""
SLIBSUF=".dll"
@ -3218,7 +3218,7 @@ AS_O=$CC_O
CC_O=$CC_O
DLLTOOL=$dlltool
LDFLAGS=$LDFLAGS
FFSERVERLDFLAGS=$FFSERVERLDFLAGS
AVSERVERLDFLAGS=$AVSERVERLDFLAGS
SHFLAGS=$SHFLAGS
YASMFLAGS=$YASMFLAGS
BUILDSUF=$build_suffix

@ -170,7 +170,7 @@ Seek to percentage in file corresponding to fraction of width.
@settitle AVplay media player
@c man begin SEEALSO
ffmpeg(1), avprobe(1), ffserver(1) and the Libav HTML documentation
ffmpeg(1), avprobe(1), avserver(1) and the Libav HTML documentation
@c man end
@c man begin AUTHORS

@ -122,7 +122,7 @@ with name "STREAM".
@settitle avprobe media prober
@c man begin SEEALSO
ffmpeg(1), avplay(1), ffserver(1) and the Libav HTML documentation
ffmpeg(1), avplay(1), avserver(1) and the Libav HTML documentation
@c man end
@c man begin AUTHORS

@ -12,7 +12,7 @@ BindAddress 0.0.0.0
# MaxClients maximum limit.
MaxHTTPConnections 2000
# Number of simultaneous requests that can be handled. Since FFServer
# Number of simultaneous requests that can be handled. Since AVServer
# is very fast, it is more likely that you will want to leave this high
# and use MaxBandwidth, below.
MaxClients 1000
@ -25,24 +25,24 @@ MaxBandwidth 1000
# '-' is the standard output.
CustomLog -
# Suppress that if you want to launch ffserver as a daemon.
# Suppress that if you want to launch avserver as a daemon.
NoDaemon
##################################################################
# Definition of the live feeds. Each live feed contains one video
# and/or audio sequence coming from an ffmpeg encoder or another
# ffserver. This sequence may be encoded simultaneously with several
# avserver. This sequence may be encoded simultaneously with several
# codecs at several resolutions.
<Feed feed1.ffm>
# You must use 'ffmpeg' to send a live feed to ffserver. In this
# You must use 'ffmpeg' to send a live feed to avserver. In this
# example, you can type:
#
# ffmpeg http://localhost:8090/feed1.ffm
# ffserver can also do time shifting. It means that it can stream any
# avserver can also do time shifting. It means that it can stream any
# previously recorded live stream. The request should contain:
# "http://xxxx?date=[YYYY-MM-DDT][[HH:]MM:]SS[.m...]".You must specify
# a path where the feed is stored on disk. You also specify the
@ -69,7 +69,7 @@ ACL allow 127.0.0.1
##################################################################
# Now you can define each stream which will be generated from the
# original audio and video stream. Each format has a filename (here
# 'test1.mpg'). FFServer will send this stream when answering a
# 'test1.mpg'). AVServer will send this stream when answering a
# request containing this filename.
<Stream test1.mpg>
@ -334,7 +334,7 @@ StartSendOnKey
# multicast address with MulticastAddress. The port and the TTL can
# also be set.
#
# An SDP file is automatically generated by ffserver by adding the
# An SDP file is automatically generated by avserver by adding the
# 'sdp' extension to the stream name (here
# http://localhost:8090/test1-sdp.sdp). You should usually give this
# file to your player to play the stream.

@ -1,8 +1,8 @@
\input texinfo @c -*- texinfo -*-
@settitle ffserver Documentation
@settitle avserver Documentation
@titlepage
@center @titlefont{ffserver Documentation}
@center @titlefont{avserver Documentation}
@end titlepage
@top
@ -15,37 +15,37 @@ The generic syntax is:
@example
@c man begin SYNOPSIS
ffserver [options]
avserver [options]
@c man end
@end example
@chapter Description
@c man begin DESCRIPTION
ffserver is a streaming server for both audio and video. It supports
avserver is a streaming server for both audio and video. It supports
several live feeds, streaming from files and time shifting on live feeds
(you can seek to positions in the past on each live feed, provided you
specify a big enough feed storage in ffserver.conf).
specify a big enough feed storage in avserver.conf).
ffserver runs in daemon mode by default; that is, it puts itself in
avserver runs in daemon mode by default; that is, it puts itself in
the background and detaches from its TTY, unless it is launched in
debug mode or a NoDaemon option is specified in the configuration
file.
This documentation covers only the streaming aspects of ffserver /
This documentation covers only the streaming aspects of avserver /
ffmpeg. All questions about parameters for ffmpeg, codec questions,
etc. are not covered here. Read @file{ffmpeg-doc.html} for more
information.
@section How does it work?
ffserver receives prerecorded files or FFM streams from some ffmpeg
avserver receives prerecorded files or FFM streams from some ffmpeg
instance as input, then streams them over RTP/RTSP/HTTP.
An ffserver instance will listen on some port as specified in the
An avserver instance will listen on some port as specified in the
configuration file. You can launch one or more instances of ffmpeg and
send one or more FFM streams to the port where ffserver is expecting
to receive them. Alternately, you can make ffserver launch such ffmpeg
send one or more FFM streams to the port where avserver is expecting
to receive them. Alternately, you can make avserver launch such ffmpeg
instances at startup.
Input streams are called feeds, and each one is specified by a <Feed>
@ -57,7 +57,7 @@ file.
@section Status stream
ffserver supports an HTTP interface which exposes the current status
avserver supports an HTTP interface which exposes the current status
of the server.
Simply point your browser to the address of the special status stream
@ -100,7 +100,7 @@ I understand that FreeBSD systems work just fine as well.
@section How do I make it work?
First, build the kit. It *really* helps to have installed LAME first. Then when
you run the ffserver ./configure, make sure that you have the
you run the avserver ./configure, make sure that you have the
@code{--enable-libmp3lame} flag turned on.
LAME is important as it allows for streaming audio to Windows Media Player.
@ -110,7 +110,7 @@ As a simple test, just run the following two command lines where INPUTFILE
is some file which you can decode with ffmpeg:
@example
./ffserver -f doc/ffserver.conf &
./avserver -f doc/avserver.conf &
./ffmpeg -i INPUTFILE http://localhost:8090/feed1.ffm
@end example
@ -129,8 +129,8 @@ The same is true of AVI files.
@section What happens next?
You should edit the ffserver.conf file to suit your needs (in terms of
frame rates etc). Then install ffserver and ffmpeg, write a script to start
You should edit the avserver.conf file to suit your needs (in terms of
frame rates etc). Then install avserver and ffmpeg, write a script to start
them up, and off you go.
@section Troubleshooting
@ -166,14 +166,14 @@ I suspect that the new one is not available unless you have installed WMP 7].
You can replay video from .ffm files that was recorded earlier.
However, there are a number of caveats, including the fact that the
ffserver parameters must match the original parameters used to record the
file. If they do not, then ffserver deletes the file before recording into it.
avserver parameters must match the original parameters used to record the
file. If they do not, then avserver deletes the file before recording into it.
(Now that I write this, it seems broken).
You can fiddle with many of the codec choices and encoding parameters, and
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
ffserver.conf for a list of the currently available controls.
avserver.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
@ -187,7 +187,7 @@ finishes.]
* When you connect to a live stream, most players (WMP, RA, etc) want to
buffer a certain number of seconds of material so that they can display the
signal continuously. However, ffserver (by default) starts sending data
signal continuously. However, avserver (by default) starts sending data
in realtime. This means that there is a pause of a few seconds while the
buffering is being done by the player. The good news is that this can be
cured by adding a '?buffer=5' to the end of the URL. This means that the
@ -195,13 +195,13 @@ stream should start 5 seconds in the past -- and so the first 5 seconds
of the stream are 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
You can also add a 'Preroll 15' statement into the avserver.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
specify a time. In addition, avserver 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
* You may want to adjust the MaxBandwidth in the avserver.conf to limit
the amount of bandwidth consumed by live streams.
@section Why does the ?buffer / Preroll stop working after a time?
@ -218,7 +218,7 @@ handled.
@section Does the @code{?date=} stuff work.
Yes (subject to the limitation outlined above). Also note that whenever you
start ffserver, it deletes the ffm file (if any parameters have changed),
start avserver, it deletes the ffm file (if any parameters have changed),
thus wiping out what you had recorded before.
The format of the @code{?date=xxxxxx} is fairly flexible. You should use one
@ -246,26 +246,26 @@ For example: @samp{http://localhost:8080/test.asf?date=2002-07-26T23:05:00}.
@table @option
@item -f @var{configfile}
Use @file{configfile} instead of @file{/etc/ffserver.conf}.
Use @file{configfile} instead of @file{/etc/avserver.conf}.
@item -n
Enable no-launch mode. This option disables all the Launch directives
within the various <Stream> sections. Since ffserver will not launch
within the various <Stream> sections. Since avserver will not launch
any ffmpeg instances, you will have to launch them manually.
@item -d
Enable debug mode. This option increases log verbosity, directs log
messages to stdout and causes ffserver to run in the foreground
messages to stdout and causes avserver to run in the foreground
rather than as a daemon.
@end table
@c man end
@ignore
@setfilename ffserver
@settitle ffserver video server
@setfilename avserver
@settitle avserver video server
@c man begin SEEALSO
ffmpeg(1), avplay(1), avprobe(1), the @file{ffmpeg/doc/ffserver.conf}
ffmpeg(1), avplay(1), avprobe(1), the @file{ffmpeg/doc/avserver.conf}
example and the Libav HTML documentation
@c man end

@ -164,7 +164,7 @@ Set the number of video frames to record.
@item -r @var{fps}
Set frame rate (Hz value, fraction or abbreviation), (default = 25).
@item -s @var{size}
Set frame size. The format is @samp{wxh} (ffserver default = 160x128, ffmpeg default = same as source).
Set frame size. The format is @samp{wxh} (avserver default = 160x128, ffmpeg default = same as source).
The following abbreviations are recognized:
@table @samp
@item sqcif
@ -726,7 +726,7 @@ Set RTP payload size in bytes.
Read input at native frame rate. Mainly used to simulate a grab device.
@item -loop_input
Loop over the input stream. Currently it works only for image
streams. This option is used for automatic FFserver testing.
streams. This option is used for automatic AVserver testing.
This option is deprecated, use -loop.
@item -loop_output @var{number_of_times}
Repeatedly loop output for formats that support looping such as animated GIF
@ -1079,7 +1079,7 @@ file to which you want to add them.
@settitle ffmpeg video converter
@c man begin SEEALSO
avplay(1), avprobe(1), ffserver(1) and the Libav HTML documentation
avplay(1), avprobe(1), avserver(1) and the Libav HTML documentation
@c man end
@c man begin AUTHORS

@ -91,7 +91,7 @@ library:
@item Electronic Arts cdata @tab @tab X
@item Electronic Arts Multimedia @tab @tab X
@tab Used in various EA games; files have extensions like WVE and UV2.
@item FFM (FFserver live feed) @tab X @tab X
@item FFM (AVserver live feed) @tab X @tab X
@item Flash (SWF) @tab X @tab X
@item Flash 9 (AVM2) @tab X @tab X
@tab Only embedded audio is decoded.

@ -691,7 +691,7 @@ static OutputStream *new_output_stream(AVFormatContext *oc, int file_idx, AVCode
return ost;
}
static int read_ffserver_streams(AVFormatContext *s, const char *filename)
static int read_avserver_streams(AVFormatContext *s, const char *filename)
{
int i, err;
AVFormatContext *ic = NULL;
@ -3766,9 +3766,9 @@ static void opt_output_file(const char *filename)
if (!strcmp(file_oformat->name, "ffm") &&
av_strstart(filename, "http:", NULL)) {
/* special case for files sent to ffserver: we get the stream
parameters from ffserver */
int err = read_ffserver_streams(oc, filename);
/* special case for files sent to avserver: we get the stream
parameters from avserver */
int err = read_avserver_streams(oc, filename);
if (err < 0) {
print_error(filename, err);
ffmpeg_exit(1);

@ -1,5 +1,5 @@
/*
* FFM (ffserver live feed) common header
* FFM (avserver live feed) common header
* Copyright (c) 2001 Fabrice Bellard
*
* This file is part of Libav.

@ -1,5 +1,5 @@
/*
* FFM (ffserver live feed) demuxer
* FFM (avserver live feed) demuxer
* Copyright (c) 2001 Fabrice Bellard
*
* This file is part of Libav.
@ -23,7 +23,7 @@
#include "libavutil/intfloat_readwrite.h"
#include "avformat.h"
#include "ffm.h"
#if CONFIG_FFSERVER
#if CONFIG_AVSERVER
#include <unistd.h>
int64_t ffm_read_write_index(int fd)
@ -55,7 +55,7 @@ void ffm_set_write_index(AVFormatContext *s, int64_t pos, int64_t file_size)
ffm->write_index = pos;
ffm->file_size = file_size;
}
#endif // CONFIG_FFSERVER
#endif // CONFIG_AVSERVER
static int ffm_is_avail_data(AVFormatContext *s, int size)
{
@ -510,7 +510,7 @@ static int ffm_probe(AVProbeData *p)
AVInputFormat ff_ffm_demuxer = {
.name = "ffm",
.long_name = NULL_IF_CONFIG_SMALL("FFM (FFserver live feed) format"),
.long_name = NULL_IF_CONFIG_SMALL("FFM (AVserver live feed) format"),
.priv_data_size = sizeof(FFMContext),
.read_probe = ffm_probe,
.read_header = ffm_read_header,

@ -1,5 +1,5 @@
/*
* FFM (ffserver live feed) muxer
* FFM (avserver live feed) muxer
* Copyright (c) 2001 Fabrice Bellard
*
* This file is part of Libav.
@ -242,7 +242,7 @@ static int ffm_write_trailer(AVFormatContext *s)
AVOutputFormat ff_ffm_muxer = {
.name = "ffm",
.long_name = NULL_IF_CONFIG_SMALL("FFM (FFserver live feed) format"),
.long_name = NULL_IF_CONFIG_SMALL("FFM (AVserver live feed) format"),
.mime_type = "",
.extensions = "ffm",
.priv_data_size = sizeof(FFMContext),

@ -22,7 +22,7 @@
/* Multipart JPEG */
#define BOUNDARY_TAG "ffserver"
#define BOUNDARY_TAG "avserver"
static int mpjpeg_write_header(AVFormatContext *s)
{

Loading…
Cancel
Save