Commit 41dda860 authored by Mark Thompson's avatar Mark Thompson

doc: Add VAAPI encoders

parent 0fd91e4b
...@@ -922,4 +922,100 @@ encoder use CAVLC instead of CABAC. ...@@ -922,4 +922,100 @@ encoder use CAVLC instead of CABAC.
@end itemize @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 @c man end VIDEO ENCODERS
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment