作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
使用 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};
[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
最佳答案
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/
使用 libavcodec 57.107.100,我有一些代码将帧编码为 H.264,我正在调整设置以准备使用 DASH 流式传输的结果视频,这需要一致的关键帧计时。所以我将 GOP 设置为帧速率的
我是一名优秀的程序员,十分优秀!