gpt4 book ai didi

c - libavcodec/libx264 不尊重 keyint_min

转载 作者:行者123 更新时间:2023-12-04 22:55:02 24 4
gpt4 key购买 nike

使用 libavcodec 57.107.100,我有一些代码将帧编码为 H.264,我正在调整设置以准备使用 DASH 流式传输的结果视频,这需要一致的关键帧计时。所以我将 GOP 设置为帧速率的 4 倍,并将 keyint_min 设置为与 GOP 相同,这样我就可以保证关键帧间隔与 4 秒段边界一致。

我正在使用以下代码来构建 AVCodec 和 AVCodecContext:

AVCodec* codec = NULL;
codec = avcodec_find_encoder_by_name("libx264");
AVCodecContext* avcodec_context = avcodec_alloc_context3(codec);
context->bit_rate = 200000;
context->height = 640;
context->width = 480;
context->keyint_min = 100;
context->gop_size = 100;
context->qmax = 31;
context->qmin = 2;
context->pix_fmt = AV_PIX_FMT_YUV420P;
context->time_base = (AVRational) {1, 25};

显然,这里的 keyint_min 是 100,但是当我执行我的程序时,libavcodec 的 stderr 输出在编码开始时会这样说:
[libx264 @ 0x5577bde61f20] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 
AVX2
[libx264 @ 0x5577bde61f20] profile High, level 3.0
[libx264 @ 0x5577bde61f20] 264 - core 152 r2854 e9a5903 - H.264/MPEG-4 AVC codec - Copyleft 2003-2017 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=12 lookahead_threads=2 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=100 keyint_min=51 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=abr mbtree=1 bitrate=200 ratetol=1.0 qcomp=0.60 qpmin=2 qpmax=31 qpstep=4 ip_ratio=1.40 aq=1:1.00

为了强调,在该简介的第三行,编码器说 keyint=100 keyint_min=51 .所以很明显我的 GOP 被正确设置为 100,但 keyint_min 没有得到尊重。由于 FFMPEG 文档很难接近,我无法找到答案。有谁知道我错过了什么?

最佳答案

x264 编码器会将 keyint_min 钳制为 keyint/2+1
将选项直接传递给 x264 以避免过早的 IDR 帧

例如

av_opt_set(context->priv_data, "x264opts", "no-scenecut", 0);

或者
context->scenechange_threshold = 0;

关于c - libavcodec/libx264 不尊重 keyint_min,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59617091/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com