]> git.sesse.net Git - ffmpeg/blobdiff - doc/protocols.texi
Merge remote-tracking branch 'qatar/master'
[ffmpeg] / doc / protocols.texi
index e00c1e11b25f11b84fb89321678f22d2eca13cea..782e2b069b47dc29612f8e1eda7941b8f1d0b537 100644 (file)
@@ -1,10 +1,10 @@
 @chapter Protocols
 @c man begin PROTOCOLS
 
-Protocols are configured elements in Libav which allow to access
+Protocols are configured elements in FFmpeg which allow to access
 resources which require the use of a particular protocol.
 
-When you configure your Libav build, all the supported protocols are
+When you configure your FFmpeg build, all the supported protocols are
 enabled by default. You can list all available ones using the
 configure option "--list-protocols".
 
@@ -19,19 +19,34 @@ supported protocols.
 
 A description of the currently available protocols follows.
 
-@section hls
+@section bluray
 
-Read Apple HTTP Live Streaming compliant segmented stream as
-a uniform one. The M3U8 playlists describing the segments can be
-remote HTTP resources or local files, accessed using the standard
-file protocol.
-The nested protocol is declared by specifying
-"+@var{proto}" after the hls URI scheme name, where @var{proto}
-is either "file" or "http".
+Read BluRay playlist.
+
+The accepted options are:
+@table @option
 
+@item angle
+BluRay angle
+
+@item chapter
+Start chapter (1...N)
+
+@item playlist
+Playlist to read (BDMV/PLAYLIST/?????.mpls)
+
+@end table
+
+Examples:
+
+Read longest playlist from BluRay mounted to /mnt/bluray:
 @example
-hls+http://host/path/to/remote/resource.m3u8
-hls+file://path/to/local/resource.m3u8
+bluray:/mnt/bluray
+@end example
+
+Read angle 2 of playlist 4 from BluRay mounted to /mnt/bluray, start from chapter 2:
+@example
+-playlist 4 -angle 2 -chapter 2 bluray:/mnt/bluray
 @end example
 
 @section concat
@@ -51,10 +66,10 @@ resource to be concatenated, each one possibly specifying a distinct
 protocol.
 
 For example to read a sequence of files @file{split1.mpeg},
-@file{split2.mpeg}, @file{split3.mpeg} with @file{avplay} use the
+@file{split2.mpeg}, @file{split3.mpeg} with @command{ffplay} use the
 command:
 @example
-avplay concat:split1.mpeg\|split2.mpeg\|split3.mpeg
+ffplay concat:split1.mpeg\|split2.mpeg\|split3.mpeg
 @end example
 
 Note that you may need to escape the character "|" which is special for
@@ -66,10 +81,10 @@ File access protocol.
 
 Allow to read from or read to a file.
 
-For example to read from a file @file{input.mpeg} with @command{avconv}
+For example to read from a file @file{input.mpeg} with @command{ffmpeg}
 use the command:
 @example
-avconv -i file:input.mpeg output.mpeg
+ffmpeg -i file:input.mpeg output.mpeg
 @end example
 
 The ff* tools default to the file protocol, that is a resource
@@ -80,6 +95,26 @@ specified with the name "FILE.mpeg" is interpreted as the URL
 
 Gopher protocol.
 
+@section hls
+
+Read Apple HTTP Live Streaming compliant segmented stream as
+a uniform one. The M3U8 playlists describing the segments can be
+remote HTTP resources or local files, accessed using the standard
+file protocol.
+The nested protocol is declared by specifying
+"+@var{proto}" after the hls URI scheme name, where @var{proto}
+is either "file" or "http".
+
+@example
+hls+http://host/path/to/remote/resource.m3u8
+hls+file://path/to/local/resource.m3u8
+@end example
+
+Using this protocol is discouraged - the hls demuxer should work
+just as well (if not, please report the issues) and is more complete.
+To use the hls demuxer instead, simply use the direct URLs to the
+m3u8 files.
+
 @section http
 
 HTTP (Hyper Text Transfer Protocol).
@@ -108,10 +143,10 @@ be used to test muxers without writing an actual file.
 Some examples follow.
 @example
 # Write the MD5 hash of the encoded AVI file to the file output.avi.md5.
-avconv -i input.flv -f avi -y md5:output.avi.md5
+ffmpeg -i input.flv -f avi -y md5:output.avi.md5
 
 # Write the MD5 hash of the encoded AVI file to stdout.
-avconv -i input.flv -f avi -y md5:
+ffmpeg -i input.flv -f avi -y md5:
 @end example
 
 Note that some formats (typically MOV) require the output protocol to
@@ -133,18 +168,18 @@ pipe (e.g. 0 for stdin, 1 for stdout, 2 for stderr).  If @var{number}
 is not specified, by default the stdout file descriptor will be used
 for writing, stdin for reading.
 
-For example to read from stdin with @command{avconv}:
+For example to read from stdin with @command{ffmpeg}:
 @example
-cat test.wav | avconv -i pipe:0
+cat test.wav | ffmpeg -i pipe:0
 # ...this is the same as...
-cat test.wav | avconv -i pipe:
+cat test.wav | ffmpeg -i pipe:
 @end example
 
-For writing to stdout with @command{avconv}:
+For writing to stdout with @command{ffmpeg}:
 @example
-avconv -i test.wav -f avi pipe:1 | cat > test.avi
+ffmpeg -i test.wav -f avi pipe:1 | cat > test.avi
 # ...this is the same as...
-avconv -i test.wav -f avi pipe: | cat > test.avi
+ffmpeg -i test.wav -f avi pipe: | cat > test.avi
 @end example
 
 Note that some formats (typically MOV), require the output protocol to
@@ -182,10 +217,10 @@ application specified in @var{app}, may be prefixed by "mp4:".
 
 @end table
 
-For example to read with @file{avplay} a multimedia resource named
+For example to read with @command{ffplay} a multimedia resource named
 "sample" from the application "vod" from an RTMP server "myserver":
 @example
-avplay rtmp://myserver/vod/sample
+ffplay rtmp://myserver/vod/sample
 @end example
 
 @section rtmp, rtmpe, rtmps, rtmpt, rtmpte
@@ -218,14 +253,14 @@ meaning as specified for the RTMP native protocol.
 See the librtmp manual page (man 3 librtmp) for more information.
 
 For example, to stream a file in real-time to an RTMP server using
-@command{avconv}:
+@command{ffmpeg}:
 @example
-avconv -re -i myfile -f flv rtmp://myserver/live/mystream
+ffmpeg -re -i myfile -f flv rtmp://myserver/live/mystream
 @end example
 
-To play the same stream using @file{avplay}:
+To play the same stream using @command{ffplay}:
 @example
-avplay "rtmp://myserver/live/mystream live=1"
+ffplay "rtmp://myserver/live/mystream live=1"
 @end example
 
 @section rtp
@@ -248,7 +283,7 @@ The required syntax for a RTSP url is:
 rtsp://@var{hostname}[:@var{port}]/@var{path}
 @end example
 
-The following options (set on the @command{avconv}/@file{avplay} command
+The following options (set on the @command{ffmpeg}/@command{ffplay} command
 line, or set in code via @code{AVOption}s or in @code{avformat_open_input}),
 are supported:
 
@@ -287,7 +322,7 @@ When receiving data over UDP, the demuxer tries to reorder received packets
 order for this to be enabled, a maximum delay must be specified in the
 @code{max_delay} field of AVFormatContext.
 
-When watching multi-bitrate Real-RTSP streams with @file{avplay}, the
+When watching multi-bitrate Real-RTSP streams with @command{ffplay}, the
 streams to display can be chosen with @code{-vst} @var{n} and
 @code{-ast} @var{n} for video and audio respectively, and can be switched
 on the fly by pressing @code{v} and @code{a}.
@@ -297,19 +332,19 @@ Example command lines:
 To watch a stream over UDP, with a max reordering delay of 0.5 seconds:
 
 @example
-avplay -max_delay 500000 -rtsp_transport udp rtsp://server/video.mp4
+ffplay -max_delay 500000 -rtsp_transport udp rtsp://server/video.mp4
 @end example
 
 To watch a stream tunneled over HTTP:
 
 @example
-avplay -rtsp_transport http rtsp://server/video.mp4
+ffplay -rtsp_transport http rtsp://server/video.mp4
 @end example
 
 To send a stream in realtime to a RTSP server, for others to watch:
 
 @example
-avconv -re -i @var{input} -f rtsp -muxdelay 0.1 rtsp://server/live.sdp
+ffmpeg -re -i @var{input} -f rtsp -muxdelay 0.1 rtsp://server/live.sdp
 @end example
 
 @section sap
@@ -361,19 +396,19 @@ Example command lines follow.
 To broadcast a stream on the local subnet, for watching in VLC:
 
 @example
-avconv -re -i @var{input} -f sap sap://224.0.0.255?same_port=1
+ffmpeg -re -i @var{input} -f sap sap://224.0.0.255?same_port=1
 @end example
 
-Similarly, for watching in avplay:
+Similarly, for watching in @command{ffplay}:
 
 @example
-avconv -re -i @var{input} -f sap sap://224.0.0.255
+ffmpeg -re -i @var{input} -f sap sap://224.0.0.255
 @end example
 
-And for watching in avplay, over IPv6:
+And for watching in @command{ffplay}, over IPv6:
 
 @example
-avconv -re -i @var{input} -f sap sap://[ff0e::1:2:3:4]
+ffmpeg -re -i @var{input} -f sap sap://[ff0e::1:2:3:4]
 @end example
 
 @subsection Demuxer
@@ -395,13 +430,13 @@ Example command lines follow.
 To play back the first stream announced on the normal SAP multicast address:
 
 @example
-avplay sap://
+ffplay sap://
 @end example
 
 To play back the first stream announced on one the default IPv6 SAP multicast address:
 
 @example
-avplay sap://[ff0e::2:7ffe]
+ffplay sap://[ff0e::2:7ffe]
 @end example
 
 @section tcp
@@ -419,8 +454,8 @@ tcp://@var{hostname}:@var{port}[?@var{options}]
 Listen for an incoming connection
 
 @example
-avconv -i @var{input} -f @var{format} tcp://@var{hostname}:@var{port}?listen
-avplay tcp://@var{hostname}:@var{port}
+ffmpeg -i @var{input} -f @var{format} tcp://@var{hostname}:@var{port}?listen
+ffplay tcp://@var{hostname}:@var{port}
 @end example
 
 @end table
@@ -471,21 +506,21 @@ For receiving, this gives the benefit of only receiving packets from
 the specified peer address/port.
 @end table
 
-Some usage examples of the udp protocol with @command{avconv} follow.
+Some usage examples of the udp protocol with @command{ffmpeg} follow.
 
 To stream over UDP to a remote endpoint:
 @example
-avconv -i @var{input} -f @var{format} udp://@var{hostname}:@var{port}
+ffmpeg -i @var{input} -f @var{format} udp://@var{hostname}:@var{port}
 @end example
 
 To stream in mpegts format over UDP using 188 sized UDP packets, using a large input buffer:
 @example
-avconv -i @var{input} -f mpegts udp://@var{hostname}:@var{port}?pkt_size=188&buffer_size=65535
+ffmpeg -i @var{input} -f mpegts udp://@var{hostname}:@var{port}?pkt_size=188&buffer_size=65535
 @end example
 
 To receive over UDP from a remote endpoint:
 @example
-avconv -i udp://[@var{multicast-address}]:@var{port}
+ffmpeg -i udp://[@var{multicast-address}]:@var{port}
 @end example
 
 @c man end PROTOCOLS