Originally committed as revision 24726 to svn://svn.ffmpeg.org/ffmpeg/trunk
Unified · Split
| @@ -4,9 +4,9 @@ · 3 unmodified lines | |||
| 4 | Protocols are configured elements in FFmpeg which allow to access | 4 | Protocols are configured elements in FFmpeg which allow to access |
| 5 | resources which require the use of a particular protocol. | 5 | resources which require the use of a particular protocol. |
| 6 | 6 | ||
| 7 | When you configure your FFmpeg build, all the supported protocols | 7 | When you configure your FFmpeg build, all the supported protocols are |
| 8 | are enabled by default. You can list them using the configure option | 8 | enabled by default. You can list all available ones using the |
| 9 | "--list-protocols". | 9 | configure option "--list-protocols". |
| 10 | 10 | ||
| 11 | You can disable all the protocols using the configure option | 11 | You can disable all the protocols using the configure option |
| 12 | "--disable-protocols", and selectively enable a protocol using the | 12 | "--disable-protocols", and selectively enable a protocol using the |
| @@ -15,7 +15,7 @@ particular protocol using the option · 2 unmodified lines | |||
| 15 | "--disable-protocol=@var{PROTOCOL}". | 15 | "--disable-protocol=@var{PROTOCOL}". |
| 16 | 16 | ||
| 17 | The option "-protocols" of the ff* tools will display the list of | 17 | The option "-protocols" of the ff* tools will display the list of |
| 18 | the supported protocols. | 18 | supported protocols. |
| 19 | 19 | ||
| 20 | A description of the currently available protocols follows. | 20 | A description of the currently available protocols follows. |
| 21 | 21 | ||
| @@ -23,10 +23,10 @@ A description of the currently available protocols follows. · 1 unmodified line | |||
| 23 | 23 | ||
| 24 | Physical concatenation protocol. | 24 | Physical concatenation protocol. |
| 25 | 25 | ||
| 26 | Allow to read and seek from many resource in sequence as they were an | 26 | Allow to read and seek from many resource in sequence as if they were |
| 27 | unique resource. | 27 | a unique resource. |
| 28 | 28 | ||
| 29 | An url accepted by this protocol has the syntax: | 29 | An URL accepted by this protocol has the syntax: |
| 30 | @example | 30 | @example |
| 31 | concat:@var{URL1}|@var{URL2}|...|@var{URLN} | 31 | concat:@var{URL1}|@var{URL2}|...|@var{URLN} |
| 32 | @end example | 32 | @end example |
| @@ -57,9 +57,9 @@ use the command: · 24 unmodified lines | |||
| 57 | ffmpeg -i file:input.mpeg output.mpeg | 57 | ffmpeg -i file:input.mpeg output.mpeg |
| 58 | @end example | 58 | @end example |
| 59 | 59 | ||
| 60 | Note that if not specified otherwise, the ff* tools will use the file | 60 | The ff* tools default to the file protocol, that is a resource |
| 61 | protocol by default, that is a resource specified with the name | 61 | specified with the name "FILE.mpeg" is interpreted as the URL |
| 62 | "FILE.mpeg" is interpreted as it were the url "file:FILE.mpeg". | 62 | "file:FILE.mpeg". |
| 63 | 63 | ||
| 64 | @section gopher | 64 | @section gopher |
| 65 | 65 | ||
| @@ -67,7 +67,7 @@ Gopher protocol. · 1 unmodified line | |||
| 67 | 67 | ||
| 68 | @section http | 68 | @section http |
| 69 | 69 | ||
| 70 | HTTP (Hyper Text Trasfer Protocol). | 70 | HTTP (Hyper Text Transfer Protocol). |
| 71 | 71 | ||
| 72 | @section mmst | 72 | @section mmst |
| 73 | 73 | ||
| @@ -77,20 +77,20 @@ MMS (Microsoft Media Server) protocol over TCP. · 3 unmodified lines | |||
| 77 | 77 | ||
| 78 | MD5 output protocol. | 78 | MD5 output protocol. |
| 79 | 79 | ||
| 80 | Computes the MD5 hash of data written, and on close writes this to the | 80 | Computes the MD5 hash of the data to be written, and on close writes |
| 81 | designated output or stdout if none is specified. It can be used to | 81 | this to the designated output or stdout if none is specified. It can |
| 82 | test muxers without writing an actual file. | 82 | be used to test muxers without writing an actual file. |
| 83 | 83 | ||
| 84 | Some examples follow. | 84 | Some examples follow. |
| 85 | @example | 85 | @example |
| 86 | # write the MD5 hash of the encoded AVI file in the file output.avi.md5 | 86 | # Write the MD5 hash of the encoded AVI file in the file output.avi.md5. |
| 87 | ffmpeg -i input.flv -f avi -y md5:output.avi.md5 | 87 | ffmpeg -i input.flv -f avi -y md5:output.avi.md5 |
| 88 | 88 | ||
| 89 | # write the MD5 hash of the encoded AVI file to stdout | 89 | # Write the MD5 hash of the encoded AVI file to stdout. |
| 90 | ffmpeg -i input.flv -f avi -y md5: | 90 | ffmpeg -i input.flv -f avi -y md5: |
| 91 | @end example | 91 | @end example |
| 92 | 92 | ||
| 93 | Note that some formats (typically mov) require the output protocol to | 93 | Note that some formats (typically MOV) require the output protocol to |
| 94 | be seekable, so they will fail with the MD5 output protocol. | 94 | be seekable, so they will fail with the MD5 output protocol. |
| 95 | 95 | ||
| 96 | @section pipe | 96 | @section pipe |
| @@ -105,26 +105,25 @@ pipe:[@var{number}] · 8 unmodified lines | |||
| 105 | @end example | 105 | @end example |
| 106 | 106 | ||
| 107 | @var{number} is the number corresponding to the file descriptor of the | 107 | @var{number} is the number corresponding to the file descriptor of the |
| 108 | pipe (e.g. 0 for stdin, 1 for stdout, 2 for stderr). | 108 | pipe (e.g. 0 for stdin, 1 for stdout, 2 for stderr). If @var{number} |
| 109 | If @var{number} is not specified will use by default stdout if the | 109 | is not specified, by default the stdout file descriptor will be used |
| 110 | protocol is used for writing, stdin if the protocol is used for | 110 | for writing, stdin for reading. |
| 111 | reading. | ||
| 112 | 111 | ||
| 113 | For example to read from stdin with @file{ffmpeg}: | 112 | For example to read from stdin with @file{ffmpeg}: |
| 114 | @example | 113 | @example |
| 115 | cat test.wav | ffmpeg -i pipe:0 | 114 | cat test.wav | ffmpeg -i pipe:0 |
| 116 | # this is the same as | 115 | # ...this is the same as... |
| 117 | cat test.wav | ffmpeg -i pipe: | 116 | cat test.wav | ffmpeg -i pipe: |
| 118 | @end example | 117 | @end example |
| 119 | 118 | ||
| 120 | For writing to stdout with @file{ffmpeg}: | 119 | For writing to stdout with @file{ffmpeg}: |
| 121 | @example | 120 | @example |
| 122 | ffmpeg -i test.wav -f avi pipe:1 | cat > test.avi | 121 | ffmpeg -i test.wav -f avi pipe:1 | cat > test.avi |
| 123 | # this is the same as | 122 | # ...this is the same as... |
| 124 | ffmpeg -i test.wav -f avi pipe: | cat > test.avi | 123 | ffmpeg -i test.wav -f avi pipe: | cat > test.avi |
| 125 | @end example | 124 | @end example |
| 126 | 125 | ||
| 127 | Note that some formats (typically mov), require the output protocol to | 126 | Note that some formats (typically MOV), require the output protocol to |
| 128 | be seekable, so they will fail with the pipe output protocol. | 127 | be seekable, so they will fail with the pipe output protocol. |
| 129 | 128 | ||
| 130 | @section rtmp | 129 | @section rtmp |
| @@ -139,18 +138,18 @@ The required syntax is: · 8 unmodified lines | |||
| 139 | rtmp://@var{server}[:@var{port}][/@var{app}][/@var{playpath}] | 138 | rtmp://@var{server}[:@var{port}][/@var{app}][/@var{playpath}] |
| 140 | @end example | 139 | @end example |
| 141 | 140 | ||
| 142 | Follows the description of the accepted parameters. | 141 | The accepted parameters are: |
| 143 | @table @option | 142 | @table @option |
| 144 | 143 | ||
| 145 | @item server | 144 | @item server |
| 146 | It is the address of the RTMP server. | 145 | The address of the RTMP server. |
| 147 | 146 | ||
| 148 | @item port | 147 | @item port |
| 149 | It is the number of the TCP port to use (by default is 1935). | 148 | The number of the TCP port to use (by default is 1935). |
| 150 | 149 | ||
| 151 | @item app | 150 | @item app |
| 152 | It is the name of the application to acces. It usually corresponds to | 151 | It is the name of the application to access. It usually corresponds to |
| 153 | the the path where the application is installed on the RTMP server | 152 | the path where the application is installed on the RTMP server |
| 154 | (e.g. @file{/ondemand/}, @file{/flash/live/}, etc.). | 153 | (e.g. @file{/ondemand/}, @file{/flash/live/}, etc.). |
| 155 | 154 | ||
| 156 | @item playpath | 155 | @item playpath |
| @@ -170,7 +169,7 @@ ffplay rtmp://myserver/vod/sample · 13 unmodified lines | |||
| 170 | Real-Time Messaging Protocol and its variants supported through | 169 | Real-Time Messaging Protocol and its variants supported through |
| 171 | librtmp. | 170 | librtmp. |
| 172 | 171 | ||
| 173 | Require the presence of the headers and library of librtmp during | 172 | Requires the presence of the librtmp headers and library during |
| 174 | configuration. You need to explicitely configure the build with | 173 | configuration. You need to explicitely configure the build with |
| 175 | "--enable-librtmp". If enabled this will replace the native RTMP | 174 | "--enable-librtmp". If enabled this will replace the native RTMP |
| 176 | protocol. | 175 | protocol. |
| @@ -188,11 +187,11 @@ The required syntax is: · 11 unmodified lines | |||
| 188 | where @var{rtmp_proto} is one of the strings "rtmp", "rtmpt", "rtmpe", | 187 | where @var{rtmp_proto} is one of the strings "rtmp", "rtmpt", "rtmpe", |
| 189 | "rtmps", "rtmpte", "rtmpts" corresponding to each RTMP variant, and | 188 | "rtmps", "rtmpte", "rtmpts" corresponding to each RTMP variant, and |
| 190 | @var{server}, @var{port}, @var{app} and @var{playpath} have the same | 189 | @var{server}, @var{port}, @var{app} and @var{playpath} have the same |
| 191 | meaning has specified for the RTMP native protocol. | 190 | meaning as specified for the RTMP native protocol. |
| 192 | @var{options} contains a list of space-separated options of the form | 191 | @var{options} contains a list of space-separated options of the form |
| 193 | @var{key}=@var{val}. | 192 | @var{key}=@var{val}. |
| 194 | 193 | ||
| 195 | See the manual page of librtmp (man 3 librtmp) for more information. | 194 | See the librtmp manual page (man 3 librtmp) for more information. |
| 196 | 195 | ||
| 197 | For example, to stream a file in real-time to an RTMP server using | 196 | For example, to stream a file in real-time to an RTMP server using |
| 198 | @file{ffmpeg}: | 197 | @file{ffmpeg}: |