aboutsummaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authorMark Thompson <sw@jkqxz.net>2017-03-19 17:30:52 +0000
committerMark Thompson <sw@jkqxz.net>2017-04-02 19:06:33 +0100
commit41dda860870fb1566b17f6b0b61922f0ef89be47 (patch)
tree07afb55c25cfbf104c64abe9185296f8cdad35e4 /doc
parent0fd91e4bfc00a6609b59d1ce3a9f152184e62601 (diff)
downloadffmpeg-41dda860870fb1566b17f6b0b61922f0ef89be47.tar.gz
doc: Add VAAPI encoders
Diffstat (limited to 'doc')
-rw-r--r--doc/encoders.texi96
1 files changed, 96 insertions, 0 deletions
diff --git a/doc/encoders.texi b/doc/encoders.texi
index 41b8398127..7cebe39c18 100644
--- a/doc/encoders.texi
+++ b/doc/encoders.texi
@@ -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