| | 66 | == Use with the FFmpeg Utility == |
| | 67 | |
| | 68 | Internal hwaccel decoders are enabled via the `-hwaccel` option. The software decoder starts normally, but if it detects a stream which is decodable in hardware then it will attempt to delegate all significant processing to that hardware. If the stream is not decodable in hardware (for example, it is an unsupported codec or profile) then it will still be decoded in software automatically. If the hardware requires a particular device to function (or needs to distinguish between multiple devices, say if several graphics cards are available) then one can be selected using `-hwaccel_device`. |
| | 69 | |
| | 70 | External wrapper decoders are used by setting a specific decoder with the `-codec:v` option. Typically they are named `codec_api` (for example: `h264_cuvid`). These decoders require the codec to be known in advance, and do not support any fallback to software if the stream is not supported. |
| | 71 | |
| | 72 | Encoder wrappers are selected by `-codec:v`. Encoders generally have lots of options - look at the documentation for the particular encoder for details. |
| | 73 | |
| | 74 | Hardware filters can be used in a filter graph like any other filter. Note, however, that they may not support any formats in common with software filters - in such cases it may be necessary to make use of `hwupload` and `hwdownload` filter instances to move frame data between hardware surfaces and normal memory. |
| | 75 | |
| | 76 | |