| @@ -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) { | |||
| @@ -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) | |||
| { | |||