首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >x264编码的FFMPEG

x264编码的FFMPEG
EN

Stack Overflow用户
提问于 2013-01-31 10:31:17
回答 1查看 3.5K关注 0票数 1

我正在尝试用ffmpeg + x264将视频从一组jpeg图像编码到x264。我以这样的方式插入AVCodecContext:

代码语言:javascript
复制
_outputCodec = avcodec_find_encoder(AV_CODEC_ID_H264);
_outputCodecContext = avcodec_alloc_context3(_outputCodec);
avcodec_get_context_defaults3(_outputCodecContext, _outputCodec);
_outputCodecContext->width                 = _currentWidth;
_outputCodecContext->height                = _currentHeight;
_outputCodecContext->pix_fmt               = AV_PIX_FMT_YUV420P;
_outputCodecContext->time_base.num         = 1;
_outputCodecContext->time_base.den         = 25;
_outputCodecContext->profile =FF_PROFILE_H264_BASELINE;
_outputCodecContext->level = 50;

avcodec_open不返回错误,一切正常,但是当我调用avcodec_encode_video2()时,我得到这样的消息(我认为它来自x264):

代码语言:javascript
复制
using mv_range_thread = %d

%s

profile %s, level %s

然后应用程序崩溃。当使用x264 &&时,My有更多必要的编解码上下文设置。

EN

回答 1

Stack Overflow用户

发布于 2014-02-21 01:58:08

如果没有完整版本的代码,就很难看出实际问题是什么。

首先,这里有一个将RGB帧编码为H264视频的FFMPEG库的工作示例:

http://www.imc-store.com.au/Articles.asp?ID=276

您可以通过使用CImage在JPG中加载RGB数据并将RGB数据传递给FFMPEG类来对H264视频进行编码,从而扩展此示例。

不过,在你的例子中有几点想法:

  • 你打电话给登记员了吗? avcodec_register_all();av_register_all();
  • 另外,我会重新编写您的代码,如下所示: AVStream * st;m_video_codec = avcodec_find_encoder(AV_CODEC_ID_H264);st= avformat_new_stream(_outputCodec,m_video_codec);_outputCodecContext = st->codec;_outputCodecContext->codec_id =m_fmt->视频_codec;_outputCodecContext->位速率= m_AVIMOV_BPS;//位每秒_outputCodecContext->宽度= m_AVIMOV_WIDTH;//Note分辨率必须是2!_outputCodecContext->身高=m_AVIMOV_HEIGHT的倍数;//Note分辨率必须是2!_outputCodecContext->time_base.den =m_AVIMOV_FPS的倍数;//帧每秒必须是_outputCodecContext->time_base.num = 1;_outputCodecContext->gop_size = m_AVIMOV_GOB;//帧内帧每x P帧_outputCodecContext->pix= AV_PIX_FMT_YUV420P;//不要改变这一点,H264需要YUV格式而不是RGB
  • 然后,您需要将RGB图片转换为YUV格式,就像pogorskiy所说的那样,使用swscale。

看一下链接的示例,我在VC++2010上测试了它,它运行得很好,您可以向它发送一个RGB数组。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14623614

复制
相关文章

相似问题

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