From dc81f1a2cef11538401ee1ca13b76e61838283e6 Mon Sep 17 00:00:00 2001 From: Mark Thompson Date: Sun, 19 Mar 2017 17:30:52 +0000 Subject: [PATCH] doc: Add VAAPI encoders (cherry picked from commit 41dda860870fb1566b17f6b0b61922f0ef89be47) --- doc/encoders.texi | 96 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) diff --git a/doc/encoders.texi b/doc/encoders.texi index 3645b490f9..a8bee092cf 100644 --- a/doc/encoders.texi +++ b/doc/encoders.texi @@ -2527,6 +2527,102 @@ encoder use CAVLC instead of CABAC. dia size for the iterative motion estimation @end table +@section VAAPI encoders + +Wrappers for hardware encoders accessible via VAAPI. + +These encoders only accept input in VAAPI hardware surfaces. If you have input +in software frames, use the @option{hwupload} filter to upload them to the GPU. + +The following standard libavcodec options are used: +@itemize +@item +@option{g} / @option{gop_size} +@item +@option{bf} / @option{max_b_frames} +@item +@option{profile} +@item +@option{level} +@item +@option{b} / @option{bit_rate} +@item +@option{maxrate} / @option{rc_max_rate} +@item +@option{bufsize} / @option{rc_buffer_size} +@item +@option{rc_init_occupancy} / @option{rc_initial_buffer_occupancy} +@item +@option{q} / @option{global_quality} +@item +@option{qmin} +(only: @option{qmax} is not supported) +@item +@option{i_qfactor} / @option{i_quant_factor} +@item +@option{i_qoffset} / @option{i_quant_offset} +@item +@option{b_qfactor} / @option{b_quant_factor} +@item +@option{b_qoffset} / @option{b_quant_offset} +@end itemize + +@table @option + +@item vaapi_h264 +@option{profile} sets the value of @emph{profile_idc} and the @emph{constraint_set*_flag}s. +@option{level} sets the value of @emph{level_idc}. + +@table @option +@item quality +Set the local encoding quality/speed tradeoff (range 1-8, higher values are faster; not all +systems implement all levels). +@item low_power +Use low-power encoding mode. +@end table + +@item vaapi_hevc +@option{profile} and @option{level} set the values of +@emph{general_profile_idc} and @emph{general_level_idc} respectively. + +@item vaapi_mjpeg +Always encodes using the standard quantisation and huffman tables - +@option{global_quality} scales the standard quantisation table (range 1-100). + +@item vaapi_mpeg2 +@option{profile} and @option{level} set the value of @emph{profile_and_level_indication}. + +No rate control is supported. + +@item vaapi_vp8 +B-frames are not supported. + +@option{global_quality} sets the @emph{q_idx} used for non-key frames (range 0-127). + +@table @option +@item loop_filter_level +@item loop_filter_sharpness +Manually set the loop filter parameters. +@end table + +@item vaapi_vp9 +@option{global_quality} sets the @emph{q_idx} used for P-frames (range 0-255). + +@table @option +@item loop_filter_level +@item loop_filter_sharpness +Manually set the loop filter parameters. +@end table + +B-frames are supported, but the output stream is always in encode order rather than display +order. If B-frames are enabled, it may be necessary to use the @option{vp9_raw_reorder} +bitstream filter to modify the output stream to display frames in the correct order. + +Only normal frames are produced - the @option{vp9_superframe} bitstream filter may be +required to produce a stream usable with all decoders. + +@end table + @section vc2 SMPTE VC-2 (previously BBC Dirac Pro). This codec was primarily aimed at -- GitLab