Skip to content

Instantly share code, notes, and snippets.

@nico-lab
Last active August 4, 2024 15:50
Show Gist options
  • Save nico-lab/597edc466ec54d0b6ce9dbf263da766a to your computer and use it in GitHub Desktop.
Save nico-lab/597edc466ec54d0b6ce9dbf263da766a to your computer and use it in GitHub Desktop.
ffmpeg -h encoder=h264_qsv
Encoder h264_qsv [H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (Intel Quick Sync Video acceleration)]:
General capabilities: delay hybrid
Threading capabilities: none
Supported hardware devices: qsv qsv qsv
Supported pixel formats: nv12 qsv
h264_qsv encoder AVOptions:
-async_depth <int> E..V....... Maximum processing parallelism (from 1 to INT_MAX) (default 4)
-preset <int> E..V....... (from 0 to 7) (default 0)
veryfast 7 E..V.......
faster 6 E..V.......
fast 5 E..V.......
medium 4 E..V.......
slow 3 E..V.......
slower 2 E..V.......
veryslow 1 E..V.......
-forced_idr <boolean> E..V....... Forcing I frames as IDR frames (default false)
-low_power <boolean> E..V....... enable low power mode(experimental: many limitations by mfx version, BRC modes, etc.) (default auto)
-qsv_params <dictionary> E..V....... Set QSV encoder parameters as key1=value1:key2=value2:...
-rdo <int> E..V....... Enable rate distortion optimization (from -1 to 1) (default -1)
-max_frame_size <int> E..V....... Maximum encoded frame size in bytes (from -1 to INT_MAX) (default -1)
-max_frame_size_i <int> E..V....... Maximum encoded I frame size in bytes (from -1 to INT_MAX) (default -1)
-max_frame_size_p <int> E..V....... Maximum encoded P frame size in bytes (from -1 to INT_MAX) (default -1)
-max_slice_size <int> E..V....... Maximum encoded slice size in bytes (from -1 to INT_MAX) (default -1)
-bitrate_limit <int> E..V....... Toggle bitrate limitations (from -1 to 1) (default -1)
-mbbrc <int> E..V....... MB level bitrate control (from -1 to 1) (default -1)
-extbrc <int> E..V....... Extended bitrate control (from -1 to 1) (default -1)
-adaptive_i <int> E..V....... Adaptive I-frame placement (from -1 to 1) (default -1)
-adaptive_b <int> E..V....... Adaptive B-frame placement (from -1 to 1) (default -1)
-p_strategy <int> E..V....... Enable P-pyramid: 0-default 1-simple 2-pyramid(bf need to be set to 0). (from 0 to 2) (default 0)
-b_strategy <int> E..V....... Strategy to choose between I/P/B-frames (from -1 to 1) (default -1)
-dblk_idc <int> E..V....... This option disable deblocking. It has value in range 0~2. (from 0 to 2) (default 0)
-low_delay_brc <boolean> E..V....... Allow to strictly obey avg frame size (default auto)
-max_qp_i <int> E..V....... Maximum video quantizer scale for I frame (from -1 to 51) (default -1)
-min_qp_i <int> E..V....... Minimum video quantizer scale for I frame (from -1 to 51) (default -1)
-max_qp_p <int> E..V....... Maximum video quantizer scale for P frame (from -1 to 51) (default -1)
-min_qp_p <int> E..V....... Minimum video quantizer scale for P frame (from -1 to 51) (default -1)
-max_qp_b <int> E..V....... Maximum video quantizer scale for B frame (from -1 to 51) (default -1)
-min_qp_b <int> E..V....... Minimum video quantizer scale for B frame (from -1 to 51) (default -1)
-scenario <int> E..V....... A hint to encoder about the scenario for the encoding session (from 0 to 8) (default unknown)
unknown 0 E..V.......
displayremoting 1 E..V.......
videoconference 2 E..V.......
archive 3 E..V.......
livestreaming 4 E..V.......
cameracapture 5 E..V.......
videosurveillance 6 E..V.......
gamestreaming 7 E..V.......
remotegaming 8 E..V.......
-avbr_accuracy <int> E..V....... Accuracy of the AVBR ratecontrol (unit of tenth of percent) (from 0 to 65535) (default 0)
-avbr_convergence <int> E..V....... Convergence of the AVBR ratecontrol (unit of 100 frames) (from 0 to 65535) (default 0)
-skip_frame <int> E..V....... Allow frame skipping (from 0 to 3) (default no_skip)
no_skip 0 E..V....... Frame skipping is disabled
insert_dummy 1 E..V....... Encoder inserts into bitstream frame where all macroblocks are encoded as skipped
insert_nothing 2 E..V....... Encoder inserts nothing into bitstream
brc_only 3 E..V....... skip_frame metadata indicates the number of missed frames before the current frame
-dual_gfx <int> E..V....... Prefer processing on both iGfx and dGfx simultaneously (from 0 to 2) (default off)
off 0 E..V....... Disable HyperEncode mode
on 1 E..V....... Enable HyperEncode mode and return error if incompatible parameters during initialization
adaptive 2 E..V....... Enable HyperEncode mode or fallback to single GPU if incompatible parameters during initialization
-cavlc <boolean> E..V....... Enable CAVLC (default false)
-vcm <boolean> E..V....... Use the video conferencing mode ratecontrol (default false)
-idr_interval <int> E..V....... Distance (in I-frames) between IDR frames (from 0 to INT_MAX) (default 0)
-pic_timing_sei <boolean> E..V....... Insert picture timing SEI with pic_struct_syntax element (default true)
-single_sei_nal_unit <int> E..V....... Put all the SEI messages into one NALU (from -1 to 1) (default -1)
-max_dec_frame_buffering <int> E..V....... Maximum number of frames buffered in the DPB (from 0 to 65535) (default 0)
-look_ahead <boolean> E..V....... Use VBR algorithm with look ahead (default false)
-look_ahead_depth <int> E..V....... Depth of look ahead in number frames (from 0 to 100) (default 0)
-look_ahead_downsampling <int> E..V....... Downscaling factor for the frames saved for the lookahead analysis (from 0 to 3) (default unknown)
unknown 0 E..V.......
auto 0 E..V.......
off 1 E..V.......
2x 2 E..V.......
4x 3 E..V.......
-int_ref_type <int> E..V....... Intra refresh type. B frames should be set to 0. (from -1 to 65535) (default -1)
none 0 E..V.......
vertical 1 E..V.......
horizontal 2 E..V.......
slice 3 E..V.......
-int_ref_cycle_size <int> E..V....... Number of frames in the intra refresh cycle (from -1 to 65535) (default -1)
-int_ref_qp_delta <int> E..V....... QP difference for the refresh MBs (from -32768 to 32767) (default -32768)
-recovery_point_sei <int> E..V....... Insert recovery point SEI messages (from -1 to 1) (default -1)
-int_ref_cycle_dist <int> E..V....... Distance between the beginnings of the intra-refresh cycles in frames (from -1 to 32767) (default -1)
-profile <int> E..V....... (from 0 to INT_MAX) (default unknown)
unknown 0 E..V.......
baseline 66 E..V.......
main 77 E..V.......
high 100 E..V.......
-a53cc <boolean> E..V....... Use A53 Closed Captions (if available) (default true)
-aud <boolean> E..V....... Insert the Access Unit Delimiter NAL (default false)
-repeat_pps <boolean> E..V....... repeat pps for every frame (default false)
@woshishabii
Copy link

thx! I've been looking for this for a long time!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment