首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何打开AVCodec?

如何打开AVCodec?
EN

Stack Overflow用户
提问于 2014-11-28 16:51:30
回答 1查看 677关注 0票数 1

我厌倦了寻找关于这个主题的解决方案。有人能帮忙吗?

类型:

代码语言:javascript
复制
AVOutputFormat* m_outFormat;
AVFormatContext* m_formatContext;
AVCodecContext* m_videoCodecContext;
AVCodec* m_videoCodec;

代码:

代码语言:javascript
复制
avcodec_register_all();
av_register_all();
m_outFormat = av_guess_format(NULL,filePath().toUtf8().constData(),NULL);
//filePath ended like ".mp4"
if (!m_outFormat)
    return; //all is fine
avformat_alloc_output_context2(&m_formatContext,NULL,NULL,filePath().toUtf8().constData());
m_formatContext->oformat->video_id = CODEC_ID_H264;
m_outFormat=m_formatContext->oformat;
////////////////////////////////////////////////////////////////////
m_videoCodec=avcodec_find_encoder(CODEC_ID_H264);
m_videoStream = avformat_new_stream(m_formatContext,m_videoCodec);
if (m_videoStream)
    return; //all is fine
m_videoCodecContext = avcodec_alloc_context3(m_videoCodec);
m_videoCodecContext->codec_id = CODEC_ID_H264;
m_videoCodecContext->width = 1280;
m_videoCodecContext->height = 720;
m_videoCodecContext->codec_type = AVMEDIA_TYPE_VIDEO;
m_videoCodecContext->pix_fmt = PIX_FMT_YUV420P;
av_codec_open2(M_videoCodecContext,m_videoCodec,NULL);

我收到一个错误:

libx264 @……编解码器类型或标识错误。

Av_codec_open2(.)返回(-22错误)。我在哪里搞错了?

更多信息:

  • 最后一次
  • Mac Os x 10.10
  • 安装libx264
  • av_guess_format(...)之后,我得到了m_outFormat中的audio_codec = CODEC_ID_H264,video_codec = CODEC_ID_NONE,long_name MP4(MPEG-4 Part 14)。
  • avformat_alloc_context3(...)之后,audio_codec_id = video_codec_id = CODEC_ID_NONE在m_formatContext中。
  • avcodec_find_encoder(CODEC_ID_H264)之后,我得到了名字= "libx264",id = CODEC_ID_MPEG1VIDEO,在m_videoCodec中。我可以分享更多的信息,如果你可以说,你到底需要什么。
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-28 20:52:22

我找到了答案..。太蠢了..。

我有旧的标题,从旧的来源,但从新的来源的lib。所以我更换了新的标题,所有的错误都消失了!我不改变上面的代码。

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

https://stackoverflow.com/questions/27193048

复制
相关文章

相似问题

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