-
-
Save Brainiarc7/26f15a7f6f316e4ecae2c008b99880e1 to your computer and use it in GitHub Desktop.
ffmpeg -h encoder=h264_nvenc
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Encoder h264_nvenc [NVIDIA NVENC H.264 encoder]: | |
General capabilities: delay hardware | |
Threading capabilities: none | |
Supported pixel formats: yuv420p nv12 p010le yuv444p p016le yuv444p16le bgr0 rgb0 cuda d3d11 | |
h264_nvenc AVOptions: | |
-preset <int> E..V..... Set the encoding preset (from 0 to 11) (default medium) | |
default E..V..... | |
slow E..V..... hq 2 passes | |
medium E..V..... hq 1 pass | |
fast E..V..... hp 1 pass | |
hp E..V..... | |
hq E..V..... | |
bd E..V..... | |
ll E..V..... low latency | |
llhq E..V..... low latency hq | |
llhp E..V..... low latency hp | |
lossless E..V..... | |
losslesshp E..V..... | |
-profile <int> E..V..... Set the encoding profile (from 0 to 3) (default main) | |
baseline E..V..... | |
main E..V..... | |
high E..V..... | |
high444p E..V..... | |
-level <int> E..V..... Set the encoding level restriction (from 0 to 51) (default auto) | |
auto E..V..... | |
1 E..V..... | |
1.0 E..V..... | |
1b E..V..... | |
1.0b E..V..... | |
1.1 E..V..... | |
1.2 E..V..... | |
1.3 E..V..... | |
2 E..V..... | |
2.0 E..V..... | |
2.1 E..V..... | |
2.2 E..V..... | |
3 E..V..... | |
3.0 E..V..... | |
3.1 E..V..... | |
3.2 E..V..... | |
4 E..V..... | |
4.0 E..V..... | |
4.1 E..V..... | |
4.2 E..V..... | |
5 E..V..... | |
5.0 E..V..... | |
5.1 E..V..... | |
-rc <int> E..V..... Override the preset rate-control (from -1 to INT_MAX) (default -1) | |
constqp E..V..... Constant QP mode | |
vbr E..V..... Variable bitrate mode | |
cbr E..V..... Constant bitrate mode | |
vbr_minqp E..V..... Variable bitrate mode with MinQP (deprecated) | |
ll_2pass_quality E..V..... Multi-pass optimized for image quality (deprecated) | |
ll_2pass_size E..V..... Multi-pass optimized for constant frame size (deprecated) | |
vbr_2pass E..V..... Multi-pass variable bitrate mode (deprecated) | |
cbr_ld_hq E..V..... Constant bitrate low delay high quality mode | |
cbr_hq E..V..... Constant bitrate high quality mode | |
vbr_hq E..V..... Variable bitrate high quality mode | |
-rc-lookahead <int> E..V..... Number of frames to look ahead for rate-control (from 0 to INT_MAX) (default 0) | |
-surfaces <int> E..V..... Number of concurrent surfaces (from 0 to 64) (default 0) | |
-cbr <boolean> E..V..... Use cbr encoding mode (default false) | |
-2pass <boolean> E..V..... Use 2pass encoding mode (default auto) | |
-gpu <int> E..V..... Selects which NVENC capable GPU to use. First GPU is 0, second is 1, and so on. (from -2 to INT_MAX) (default any) | |
any E..V..... Pick the first device available | |
list E..V..... List the available devices | |
-delay <int> E..V..... Delay frame output by the given amount of frames (from 0 to INT_MAX) (default INT_MAX) | |
-no-scenecut <boolean> E..V..... When lookahead is enabled, set this to 1 to disable adaptive I-frame insertion at scene cuts (default false) | |
-forced-idr <boolean> E..V..... If forcing keyframes, force them as IDR frames. (default false) | |
-b_adapt <boolean> E..V..... When lookahead is enabled, set this to 0 to disable adaptive B-frame decision (default true) | |
-spatial-aq <boolean> E..V..... set to 1 to enable Spatial AQ (default false) | |
-temporal-aq <boolean> E..V..... set to 1 to enable Temporal AQ (default false) | |
-zerolatency <boolean> E..V..... Set 1 to indicate zero latency operation (no reordering delay) (default false) | |
-nonref_p <boolean> E..V..... Set this to 1 to enable automatic insertion of non-reference P-frames (default false) | |
-strict_gop <boolean> E..V..... Set 1 to minimize GOP-to-GOP rate fluctuations (default false) | |
-aq-strength <int> E..V..... When Spatial AQ is enabled, this field is used to specify AQ strength. AQ strength scale is from 1 (low) - 15 (aggressive) (from 1 to 15) (default 8) | |
-cq <float> E..V..... Set target quality level (0 to 51, 0 means automatic) for constant quality mode in VBR rate control (from 0 to 51) (default 0) | |
-aud <boolean> E..V..... Use access unit delimiters (default false) | |
-bluray-compat <boolean> E..V..... Bluray compatibility workarounds (default false) | |
-init_qpP <int> E..V..... Initial QP value for P frame (from -1 to 51) (default -1) | |
-init_qpB <int> E..V..... Initial QP value for B frame (from -1 to 51) (default -1) | |
-init_qpI <int> E..V..... Initial QP value for I frame (from -1 to 51) (default -1) | |
-qp <int> E..V..... Constant quantization parameter rate control method (from -1 to 51) (default -1) | |
-weighted_pred <int> E..V..... Set 1 to enable weighted prediction (from 0 to 1) (default 0) | |
-coder <int> E..V..... Coder type (from -1 to 2) (default default) | |
default E..V..... | |
auto E..V..... | |
cabac E..V..... | |
cavlc E..V..... | |
ac E..V..... | |
vlc E..V..... | |
-b_ref_mode <int> E..V..... Use B frames as references (from 0 to 2) (default disabled) | |
disabled E..V..... B frames will not be used for reference | |
each E..V..... Each B frame will be used for reference | |
middle E..V..... Only (number of B frames)/2 will be used for reference | |
-a53cc <boolean> E..V..... Use A53 Closed Captions (if available) (default true) |
For absolute zero latency, you must also set a bitrate and set the buffer
size (-bufsize:v ) parameter to bitrate/fps.
Secondly, ensure you’re using an infinite GOP.
Try that and report back.
…On Thu, 12 Dec 2019 at 16:39, Jack-256 ***@***.***> wrote:
Hi, I just set the low latency parameters for the nvidia encoder on
ffmpeg, but it always delay with 2 frames, the parameters i set is
:av_opt_set(sys->codecEncoderContext, "preset", "llhq", 0);
av_opt_set(sys->codecEncoderContext, "rc", "cbr_ld_hq", 0);
av_opt_set(sys->codecEncoderContext, "tune", "zerolatency", 1);
is there any thing wrong ,
thanks a lot :)
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<https://gist.github.com/26f15a7f6f316e4ecae2c008b99880e1?email_source=notifications&email_token=AAR7NB3LSBHNSSS2UHKUMDTQYI5JHA5CNFSM4JZ6VKS2YY3PNVWWK3TUL52HS4DFVNDWS43UINXW23LFNZ2KUY3PNVWWK3TUL5UWJTQAF5ZHC#gistcomment-3109489>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAR7NB62UYQ5LERESE2IRLDQYI5JHANCNFSM4JZ6VKSQ>
.
@Brainiarc7 Thanks for your response ! Should I set a constant bitrate, and how to set GOP to be infinite?
@Brainiarc7 It didn't work when I had set ""codecEncoderContext->gop_size = -1"" ""codecEncoderContext->rc_buffer_size = 40k/30"" I set the bitrate 40k, and framerate 30
@Brainiarc7 I try to set the rc_buffer_size 0, but after calling the avcodec_open2(), the rc_buffer_size was reset to 80k, the bitrate is 40k
@Brainiarc7 Maybe I should read source code of ffmpeg to figure out what is going on
On this: codecEncoderContext->rc_buffer_size = 40k/30
That should be a numeric, in float. The value should be 1333.33, not a fraction.
@Brainiarc7 , yeah, actual value is a numeric
@Jack-256 for zero latency, try:
:av_opt_set(sys->codecEncoderContext->delay = 0);
Then retest and report back.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Hi, I just set the low latency parameters for the nvidia encoder on ffmpeg, but it always delay with 2 frames, the parameters i set is :av_opt_set(sys->codecEncoderContext, "preset", "llhq", 0);
av_opt_set(sys->codecEncoderContext, "rc", "cbr_ld_hq", 0);
av_opt_set(sys->codecEncoderContext, "tune", "zerolatency", 1);
is there any thing wrong ,
thanks a lot :)