![]() ![]() Hardware filters can be used in a filter graph like any other filter. Encoders generally have lots of options – look at the documentation for the particular encoder for details. These decoders require the codec to be known in advance, and do not support any fallback to software or other HW decoder if the stream is not supported.Įncoder wrappers are also selected by -codec:v. Typically they are named codec_api (for example: h264_cuvid). 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.Įxternal wrapper decoders are used by setting a specific decoder with the -codec:v (-c:v) option. 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. 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. Internal hwaccel decoders are enabled via the -hwaccel option (not supported in ffplay). F Not yet integrated, but work is being done in this area.P Partial support (some devices / some features).FFmpeg offers access to many of these, with varying support. There are a lot of different APIs of varying standardisation status available. Where hardware surfaces are usable, these filters will generally act on them rather than on normal frames in system memory. Things like scaling and deinterlacing are common, other postprocessing may be available depending on the system. Systems with decode and/or encode capability may also offer access to other related filtering features. (That is, they require a higher bitrate to make output with the same perceptual quality, or they make output with a lower perceptual quality at the same bitrate.) Hardware encoders typically generate output of significantly lower quality than good software encoders like x264, but are generally faster and do not use much CPU resource. A common feature of many hardware decoders to be able to generate output in hardware surfaces suitable for use by other components (with discrete graphics cards, this means surfaces in the memory on the card rather than in system memory) – this is often useful for playback, as no further copying is required before rendering the output, and in some cases it can also be used with encoders supporting hardware surface input to avoid any copying at all in transcode cases. Feature support varies – for more complex codecs with many different profiles, hardware decoders rarely implement all of them (for example, hardware decoders tend not to implement anything beyond YUV 4:2:0 at 8-bit depth for H.264). ![]() Hardware decoders will generate equivalent output to software decoders, but may use less power and CPU to do so. On PC-like platforms, video hardware is typically integrated into a GPU (from AMD, Intel or NVIDIA), while on mobile SoC-type platforms it is generally an independent IP core (many different vendors). ![]() Using such hardware allows some operations like decoding, encoding or filtering to be completed faster or using less of other resources (particularly CPU), but may give different or inferior results, or impose additional restrictions which are not present when using software only. Many platforms offer access to dedicated hardware to perform a range of video-related tasks. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |