Originally committed as revision 24724 to svn://svn.ffmpeg.org/ffmpeg/trunk
Unified · Split
| @@ -5,8 +5,8 @@ Input devices are configured elements in FFmpeg which allow to access · 4 unmodified lines | |||
| 5 | the data coming from a multimedia device attached to your system. | 5 | the data coming from a multimedia device attached to your system. |
| 6 | 6 | ||
| 7 | When you configure your FFmpeg build, all the supported input devices | 7 | When you configure your FFmpeg build, all the supported input devices |
| 8 | are enabled by default. You can list them using the configure option | 8 | are enabled by default. You can list all available ones using the |
| 9 | "--list-indevs". | 9 | configure option "--list-indevs". |
| 10 | 10 | ||
| 11 | You can disable all the input devices using the configure option | 11 | You can disable all the input devices using the configure option |
| 12 | "--disable-indevs", and selectively enable an input device using the | 12 | "--disable-indevs", and selectively enable an input device using the |
| @@ -25,7 +25,7 @@ ALSA (Advanced Linux Sound Architecture) input device. · 12 unmodified lines | |||
| 25 | To enable this input device during configuration you need libasound | 25 | To enable this input device during configuration you need libasound |
| 26 | installed on your system. | 26 | installed on your system. |
| 27 | 27 | ||
| 28 | This device allows to capture from an ALSA device. The name of the | 28 | This device allows capturing from an ALSA device. The name of the |
| 29 | device to capture has to be an ALSA card identifier. | 29 | device to capture has to be an ALSA card identifier. |
| 30 | 30 | ||
| 31 | An ALSA identifier has the syntax: | 31 | An ALSA identifier has the syntax: |
| @@ -42,7 +42,7 @@ specify card number or identifier, device number and subdevice number · 10 unmodified lines | |||
| 42 | To see the list of cards currently recognized by your system check the | 42 | To see the list of cards currently recognized by your system check the |
| 43 | files @file{/proc/asound/cards} and @file{/proc/asound/devices}. | 43 | files @file{/proc/asound/cards} and @file{/proc/asound/devices}. |
| 44 | 44 | ||
| 45 | For example to capture with @file{ffmpeg} from an alsa device with | 45 | For example to capture with @file{ffmpeg} from an ALSA device with |
| 46 | card id 0, you may run the command: | 46 | card id 0, you may run the command: |
| 47 | @example | 47 | @example |
| 48 | ffmpeg -f alsa -i hw:0 alsaout.wav | 48 | ffmpeg -f alsa -i hw:0 alsaout.wav |
| @@ -65,38 +65,38 @@ Linux DV 1394 input device. · 16 unmodified lines | |||
| 65 | 65 | ||
| 66 | @section jack | 66 | @section jack |
| 67 | 67 | ||
| 68 | Jack input device. | 68 | JACK input device. |
| 69 | 69 | ||
| 70 | To enable this input device during configuration you need libjack | 70 | To enable this input device during configuration you need libjack |
| 71 | installed on your system. | 71 | installed on your system. |
| 72 | 72 | ||
| 73 | A jack input device creates one or more jack writable clients, one for | 73 | A JACK input device creates one or more JACK writable clients, one for |
| 74 | each audio channel, with name @var{client_name}:input_@var{N}, where | 74 | each audio channel, with name @var{client_name}:input_@var{N}, where |
| 75 | @var{client_name} is the name provided by the application, and @var{N} | 75 | @var{client_name} is the name provided by the application, and @var{N} |
| 76 | is a number which identifies the channel. | 76 | is a number which identifies the channel. |
| 77 | Each writable client will send the acquired data to the FFmpeg input | 77 | Each writable client will send the acquired data to the FFmpeg input |
| 78 | device. | 78 | device. |
| 79 | 79 | ||
| 80 | Once you have created one or more jack readable clients, you need to | 80 | Once you have created one or more JACK readable clients, you need to |
| 81 | connect them to one or more jack writable clients. | 81 | connect them to one or more JACK writable clients. |
| 82 | 82 | ||
| 83 | To connect or disconnect jack clients you can use the | 83 | To connect or disconnect JACK clients you can use the |
| 84 | @file{jack_connect} and @file{jack_disconnect} programs, or do it | 84 | @file{jack_connect} and @file{jack_disconnect} programs, or do it |
| 85 | through a graphical interface, for example with @file{qjackctl}. | 85 | through a graphical interface, for example with @file{qjackctl}. |
| 86 | 86 | ||
| 87 | To list the jack clients and their properties you can invoke the command | 87 | To list the JACK clients and their properties you can invoke the command |
| 88 | @file{jack_lsp}. | 88 | @file{jack_lsp}. |
| 89 | 89 | ||
| 90 | Follows an example which shows how to capture a jack readable client | 90 | Follows an example which shows how to capture a JACK readable client |
| 91 | with @file{ffmpeg}. | 91 | with @file{ffmpeg}. |
| 92 | @example | 92 | @example |
| 93 | # create a jack writable client with name "ffmpeg" | 93 | # Create a JACK writable client with name "ffmpeg". |
| 94 | $ ffmpeg -f jack -i ffmpeg -y out.wav | 94 | $ ffmpeg -f jack -i ffmpeg -y out.wav |
| 95 | 95 | ||
| 96 | # start the sample jack_metro readable client | 96 | # Start the sample jack_metro readable client. |
| 97 | $ jack_metro -b 120 -d 0.2 -f 4000 | 97 | $ jack_metro -b 120 -d 0.2 -f 4000 |
| 98 | 98 | ||
| 99 | # list the current jack clients | 99 | # List the current JACK clients. |
| 100 | $ jack_lsp -c | 100 | $ jack_lsp -c |
| 101 | system:capture_1 | 101 | system:capture_1 |
| 102 | system:capture_2 | 102 | system:capture_2 |
| @@ -105,7 +105,7 @@ system:playback_2 · 2 unmodified lines | |||
| 105 | ffmpeg:input_1 | 105 | ffmpeg:input_1 |
| 106 | metro:120_bpm | 106 | metro:120_bpm |
| 107 | 107 | ||
| 108 | # connect metro to the ffmpeg writable client | 108 | # Connect metro to the ffmpeg writable client. |
| 109 | $ jack_connect metro:120_bpm ffmpeg:input_1 | 109 | $ jack_connect metro:120_bpm ffmpeg:input_1 |
| 110 | @end example | 110 | @end example |
| 111 | 111 | ||
| @@ -122,9 +122,9 @@ Open Sound System input device. · 10 unmodified lines | |||
| 122 | 122 | ||
| 123 | The filename to provide to the input device is the device node | 123 | The filename to provide to the input device is the device node |
| 124 | representing the OSS input device, and is usually set to | 124 | representing the OSS input device, and is usually set to |
| 125 | @file{/dev/dsp/}. | 125 | @file{/dev/dsp}. |
| 126 | 126 | ||
| 127 | For example to grab from @file{/dev/dsp/} using @file{ffmpeg} use the | 127 | For example to grab from @file{/dev/dsp} using @file{ffmpeg} use the |
| 128 | command: | 128 | command: |
| 129 | @example | 129 | @example |
| 130 | ffmpeg -f oss -i /dev/dsp /tmp/oss.wav | 130 | ffmpeg -f oss -i /dev/dsp /tmp/oss.wav |
| @@ -139,14 +139,14 @@ Video4Linux and Video4Linux2 input video devices. · 8 unmodified lines | |||
| 139 | 139 | ||
| 140 | The name of the device to grab is a file device node, usually Linux | 140 | The name of the device to grab is a file device node, usually Linux |
| 141 | systems tend to automatically create such nodes when the device | 141 | systems tend to automatically create such nodes when the device |
| 142 | (e.g. an USB webcam) is plugged to the system, and has a name of the | 142 | (e.g. an USB webcam) is plugged into the system, and has a name of the |
| 143 | kind @file{/dev/video@var{N}}, where @var{N} is a number associated to | 143 | kind @file{/dev/video@var{N}}, where @var{N} is a number associated to |
| 144 | the device. | 144 | the device. |
| 145 | 145 | ||
| 146 | Video4Linux and Video4Linux2 devices only support a limited set of | 146 | Video4Linux and Video4Linux2 devices only support a limited set of |
| 147 | @var{width}x@var{height} sizes and framerates. You can check which are | 147 | @var{width}x@var{height} sizes and framerates. You can check which are |
| 148 | supported for example using the command @file{dov4l} for Video4Linux | 148 | supported for example with the command @file{dov4l} for Video4Linux |
| 149 | devices, and the command @file{v4l-info} for Video4Linux2 devices. | 149 | devices and the command @file{v4l-info} for Video4Linux2 devices. |
| 150 | 150 | ||
| 151 | If the size for the device is set to 0x0, the input device will | 151 | If the size for the device is set to 0x0, the input device will |
| 152 | try to autodetect the size to use. | 152 | try to autodetect the size to use. |
| @@ -157,19 +157,19 @@ dropped in later versions. · 4 unmodified lines | |||
| 157 | Follow some usage examples of the video4linux devices with the ff* | 157 | Follow some usage examples of the video4linux devices with the ff* |
| 158 | tools. | 158 | tools. |
| 159 | @example | 159 | @example |
| 160 | # grab and show the input of a video4linux device | 160 | # Grab and show the input of a video4linux device. |
| 161 | ffplay -s 320x240 -f video4linux /dev/video0 | 161 | ffplay -s 320x240 -f video4linux /dev/video0 |
| 162 | 162 | ||
| 163 | # grab and show the input of a video4linux2 device, autoadjust size | 163 | # Grab and show the input of a video4linux2 device, autoadjust size. |
| 164 | ffplay -f video4linux2 /dev/video0 | 164 | ffplay -f video4linux2 /dev/video0 |
| 165 | 165 | ||
| 166 | # grab and record the input of a video4linux2 device, autoadjust size | 166 | # Grab and record the input of a video4linux2 device, autoadjust size. |
| 167 | ffmpeg -f video4linux2 -i /dev/video0 out.mpeg | 167 | ffmpeg -f video4linux2 -i /dev/video0 out.mpeg |
| 168 | @end example | 168 | @end example |
| 169 | 169 | ||
| 170 | @section vfwcap | 170 | @section vfwcap |
| 171 | 171 | ||
| 172 | VFW (Video For Window) catpure input device. | 172 | VFW (Video For Windows) capture input device. |
| 173 | 173 | ||
| 174 | @section x11grab | 174 | @section x11grab |
| 175 | 175 | ||
| @@ -177,31 +177,30 @@ X11 video input device. · 1 unmodified line | |||
| 177 | 177 | ||
| 178 | This device allows to capture a region of an X11 display. | 178 | This device allows to capture a region of an X11 display. |
| 179 | 179 | ||
| 180 | The filename passed in input has the syntax: | 180 | The filename passed as input has the syntax: |
| 181 | @example | 181 | @example |
| 182 | [@var{hostname}]:@var{display_number}.@var{screen_number}[+@var{x_offset},@var{y_offset}] | 182 | [@var{hostname}]:@var{display_number}.@var{screen_number}[+@var{x_offset},@var{y_offset}] |
| 183 | @end example | 183 | @end example |
| 184 | 184 | ||
| 185 | @var{hostname}:@var{display_number}.@var{screen_number} specifies the | 185 | @var{hostname}:@var{display_number}.@var{screen_number} specifies the |
| 186 | X11 display name of the screen to grab from. @var{hostname} can be not | 186 | X11 display name of the screen to grab from. @var{hostname} can be |
| 187 | specified, and defaults to "localhost". The environment variable | 187 | ommitted, and defaults to "localhost". The environment variable |
| 188 | @env{DISPLAY} contains the default display name. | 188 | @env{DISPLAY} contains the default display name. |
| 189 | 189 | ||
| 190 | @var{x_offset} and @var{y_offset} specify the offsets of the grabbed | 190 | @var{x_offset} and @var{y_offset} specify the offsets of the grabbed |
| 191 | area with respect to the top/left border of the X11 screen image. They | 191 | area with respect to the top-left border of the X11 screen. They |
| 192 | default to 0. | 192 | default to 0. |
| 193 | 193 | ||
| 194 | Check the X11 documentation (e.g. man X) for more detailed information. | 194 | Check the X11 documentation (e.g. man X) for more detailed information. |
| 195 | 195 | ||
| 196 | Use the @file{dpyinfo} program for getting basic information about the | 196 | Use the @file{dpyinfo} program for getting basic information about the |
| 197 | properties of your X11 display screen (e.g. grep for "name" or | 197 | properties of your X11 display (e.g. grep for "name" or "dimensions"). |
| 198 | "dimensions"). | ||
| 199 | 198 | ||
| 200 | For example to grab from @file{:0.0} using @file{ffmpeg}: | 199 | For example to grab from @file{:0.0} using @file{ffmpeg}: |
| 201 | @example | 200 | @example |
| 202 | ffmpeg -f x11grab -r 25 -s cif -i :0.0 out.mpg | 201 | ffmpeg -f x11grab -r 25 -s cif -i :0.0 out.mpg |
| 203 | 202 | ||
| 204 | # grab at position 10,20 | 203 | # Grab at position 10,20. |
| 205 | ffmpeg -f x11grab -25 -s cif -i :0.0+10,20 out.mpg | 204 | ffmpeg -f x11grab -25 -s cif -i :0.0+10,20 out.mpg |
| 206 | @end example | 205 | @end example |
| 207 | 206 | ||
| @@ -5,8 +5,8 @@ Output devices are configured elements in FFmpeg which allow to write · 4 unmodified lines | |||
| 5 | multimedia data to an output device attached to your system. | 5 | multimedia data to an output device attached to your system. |
| 6 | 6 | ||
| 7 | When you configure your FFmpeg build, all the supported output devices | 7 | When you configure your FFmpeg build, all the supported output devices |
| 8 | are enabled by default. You can list them using the configure option | 8 | are enabled by default. You can list all available ones using the |
| 9 | "--list-outdevs". | 9 | configure option "--list-outdevs". |
| 10 | 10 | ||
| 11 | You can disable all the output devices using the configure option | 11 | You can disable all the output devices using the configure option |
| 12 | "--disable-outdevs", and selectively enable an output device using the | 12 | "--disable-outdevs", and selectively enable an output device using the |