首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何用libavcodec / x264编码h.264?

如何用libavcodec / x264编码h.264?
EN

Stack Overflow用户
提问于 2018-01-26 04:17:47
回答 2查看 0关注 0票数 0

我正在尝试使用libavcodec / libavformat编码视频。音频效果很好,但是当我尝试对视频进行编码时,出现以下错误:

代码语言:javascript
复制
[libx264 @ 0x10182a000]broken ffmpeg default settings detected  
[libx264 @ 0x10182a000]use an encoding preset (vpre)  

使用命令行ffmpeg很容易修复,但我这样做

代码语言:javascript
复制
AVStream *pVideoOutStream = av_new_stream(pOutFormatCtx, 0);  
AVCodecContext *pVideoOutCodecCtx  = pVideoOutStream->codec;  

pVideoOutCodecCtx->codec_id        = CODEC_ID_H264;    
pVideoOutCodecCtx->codec_type      = CODEC_TYPE_VIDEO;  
pVideoOutCodecCtx->bit_rate        = pVideoInCodecCtx->bit_rate;  
pVideoOutCodecCtx->width           = pVideoInCodecCtx->width;    
pVideoOutCodecCtx->height          = pVideoInCodecCtx->height;  
pVideoOutCodecCtx->pix_fmt         = pVideoInCodecCtx->pix_fmt;    
pVideoOutCodecCtx->sample_rate     = pVideoInCodecCtx->sample_rate;    
pVideoOutCodecCtx->gop_size        = 30;  

但是avcodec_open()失败。

我还需要设置其他什么值才能让x264执行?

EN

回答 2

Stack Overflow用户

发布于 2018-01-26 12:18:22

可以尝试下这个代码:

代码语言:txt
复制
ctx->bit_rate = 500*1000;
ctx->bit_rate_tolerance = 0;
ctx->rc_max_rate = 0;
ctx->rc_buffer_size = 0;
ctx->gop_size = 40;
ctx->max_b_frames = 3;
ctx->b_frame_strategy = 1;
ctx->coder_type = 1;
ctx->me_cmp = 1;
ctx->me_range = 16;
ctx->qmin = 10;
ctx->qmax = 51;
ctx->scenechange_threshold = 40;
ctx->flags |= CODEC_FLAG_LOOP_FILTER;
ctx->me_method = ME_HEX;
ctx->me_subpel_quality = 5;
ctx->i_quant_factor = 0.71;
ctx->qcompress = 0.6;
ctx->max_qdiff = 4;
ctx->directpred = 1;
ctx->flags2 |= CODEC_FLAG2_FASTPSKIP;
票数 0
EN

Stack Overflow用户

发布于 2018-01-26 13:45:26

或者可以始终设置配置文件:

代码语言:txt
复制
av_dict_set(&This->opts, "vprofile", "baseline", 0)

或者设置最低的编码延迟:

代码语言:txt
复制
av_dict_set(&This->opts, "tune", "zerolatency", 0);

或选择预置:

代码语言:txt
复制
av_dict_set(&This->opts, "preset","ultrafast",0);
代码语言:txt
复制
avcodec_open2(This->context, This->codec, &This->opts)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100003434

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档