Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
F
ffmpeg
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
ffmpeg
Commits
889509d2
Commit
889509d2
authored
Nov 29, 2013
by
Stefano Sabatini
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
doc/ffserver: add "Detailed description" chapter
Also move FFM section up in the file, and rename it.
parent
0bacc320
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
108 additions
and
13 deletions
+108
-13
ffserver.texi
doc/ffserver.texi
+108
-13
No files found.
doc/ffserver.texi
View file @
889509d2
...
@@ -42,6 +42,114 @@ For each feed you can have different output streams in various
...
@@ -42,6 +42,114 @@ For each feed you can have different output streams in various
formats, each one specified by a @code
{
<Stream>
}
section in the
formats, each one specified by a @code
{
<Stream>
}
section in the
configuration file.
configuration file.
@chapter Detailed description
@command
{
ffserver
}
works by forwarding streams encoded by
@command
{
ffmpeg
}
, or pre-recorded streams which are read from disk.
Precisely, @command
{
ffserver
}
acts as an HTTP server, accepting POST
requests from @command
{
ffmpeg
}
to acquire the stream to publish, and
serving HTTP clients GET requests with the stream media content.
A feed is an @ref
{
FFM
}
stream created by @command
{
ffmpeg
}
, and sent to
a port where @command
{
ffserver
}
is listening.
Each feed is identified by a unique name, corresponding to the name
of the resource published on @command
{
ffserver
}
, and is configured by
a dedicated @code
{
Feed
}
section in the configuration file.
The feed publish URL is given by:
@example
http://@var
{
ffserver
_
ip
_
address
}
:@var
{
http
_
port
}
/@var
{
feed
_
name
}
@end example
where @var
{
ffserver
_
ip
_
address
}
is the IP address of the machine where
@command
{
ffserver
}
is installed, @var
{
http
_
port
}
is the port number of
the HTTP server (configured through the @option
{
Port
}
option), and
@var
{
feed
_
name
}
is the name of the corresponding feed defined in the
configuration file.
Each feed is associated to a file which is stored on disk. This stored
file is used to allow to send pre-recorded data to a player as fast as
possible when new content is added in real-time to the stream.
A "live-stream" or "stream" is a resource published by
@command
{
ffserver
}
, and made accessible through the HTTP protocol to
clients.
A stream can be connected to a feed, or to a file. In the first case,
the published stream is forwarded from the corresponding feed
generated by a running instance of @command
{
ffmpeg
}
, in the second
case the stream is read from a pre-recorded file.
Each stream is identified by a unique name, corresponding to the name
of the resource served by @command
{
ffserver
}
, and is configured by
a dedicated @code
{
Stream
}
section in the configuration file.
The stream access URL is given by:
@example
http://@var
{
ffserver
_
ip
_
address
}
:@var
{
http
_
port
}
/@var
{
stream
_
name
}
[@var
{
options
}
]
@end example
@var
{
stream
_
name
}
is the name of the corresponding stream defined in
the configuration file. @var
{
options
}
is a list of options specified
after the URL which affects how the stream is served by
@command
{
ffserver
}
.
In case the stream is associated to a feed, the encoding parameters
must be configured in the stream configuration. They are sent to
@command
{
ffmpeg
}
when setting up the encoding. This allows
@command
{
ffserver
}
to define the encoding parameters used by
the @command
{
ffmpeg
}
encoders.
The @command
{
ffmpeg
}
@option
{
override
_
ffserver
}
commandline option
allows to override the encoding parameters set by the server.
Multiple streams can be connected to the same feed.
For example, you can have a situation described by the following
graph:
@example
_________
__________
| | | |
ffmpeg 1 -----| feed 1 |-----| stream 1 |
\
|
_________
|
\
|
__________
|
\ \
\ \
__________
\ \
| |
\ \|
stream 2 |
\
|
__________
|
\
\
_________
__________
\
| | | |
\|
feed 2 |-----| stream 3 |
|
_________
| |
__________
|
_________
__________
| | | |
ffmpeg 2 -----| feed 3 |-----| stream 4 |
|
_________
| |
__________
|
_________
__________
| | | |
| file 1 |-----| stream 5 |
|
_________
| |
__________
|
@end example
@anchor
{
FFM
}
@section FFM, FFM2 formats
FFM and FFM2 are formats used by ffserver. They allow storing a wide variety of
video and audio streams and encoding options, and can store a moving time segment
of an infinite movie or a whole movie.
FFM is version specific, and there is limited compatibility of FFM files
generated by one version of ffmpeg/ffserver and another version of
ffmpeg/ffserver. It may work but it is not guaranteed to work.
FFM2 is extensible while maintaining compatibility and should work between
differing versions of tools. FFM2 is the default.
@section Status stream
@section Status stream
@command
{
ffserver
}
supports an HTTP interface which exposes the
@command
{
ffserver
}
supports an HTTP interface which exposes the
...
@@ -165,19 +273,6 @@ You use this by adding the ?date= to the end of the URL for the stream.
...
@@ -165,19 +273,6 @@ You use this by adding the ?date= to the end of the URL for the stream.
For example: @samp
{
http://localhost:8080/test.asf?date=2002-07-26T23:05:00
}
.
For example: @samp
{
http://localhost:8080/test.asf?date=2002-07-26T23:05:00
}
.
@c man end
@c man end
@section What is FFM, FFM2
FFM and FFM2 are formats used by ffserver. They allow storing a wide variety of
video and audio streams and encoding options, and can store a moving time segment
of an infinite movie or a whole movie.
FFM is version specific, and there is limited compatibility of FFM files
generated by one version of ffmpeg/ffserver and another version of
ffmpeg/ffserver. It may work but it is not guaranteed to work.
FFM2 is extensible while maintaining compatibility and should work between
differing versions of tools. FFM2 is the default.
@chapter Options
@chapter Options
@c man begin OPTIONS
@c man begin OPTIONS
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment