| @@ -922,4 +922,100 @@ encoder use CAVLC instead of CABAC. | |||
| @end itemize | |||
| @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 | |||
| @c man end VIDEO ENCODERS | |||