如何用libavcodec / x264编码h.264?
我试图使用libavcodec / libavformat编码视频。音频效果很好,但当我尝试编码视频时,我收到以下错误:
[libx264 @ 0x10182a000]broken ffmpeg default settings detected
[libx264 @ 0x10182a000]use an encoding preset (vpre)
使用命令行ffmpeg很容易修复,但我试图在C中执行此操作
我的选择是
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满意?
没有找到相关结果
已邀请:
5 个回复
提孺局缎
如果太多设置是默认的ffmpeg设置(例如
),则将错误消息
显示在x264 / encoder / encoder.c中的x264库中,将这三个值更改为其他值,例如:
,解决了错误。
漂汀拦
或者设置最低的编码延迟:
或者选择一个预设:
在打开编解码器之前
呈辖玫割善
如果要自动解析这些预设,则必须查看ffmpeg源代码。 我希望我刚给出的信息可以帮助你多一点:)
念炯
此设置必须适用于大多数编解码器,但我遇到了fps问题:并非所有编解码器都支持任何fps值(以及其他一些参数)。
漂截嘘