ffmpeg初始化AVCodecContext avcodec_open()函数问题

beijie1015 2017-07-27 08:40:11
avcodec_init();
av_register_all();
avcodec_register_all();
output_body.outputcodec = avcodec_find_encoder(CODEC_ID_H264); //函数用于查找一个与codec ID相匹配的已注册的编码器。
if (!output_body.outputcodec)
{
printf("codec not found\n");
return 0;
}
output_body.outputcodecctx = avcodec_alloc_context(); //函数用于分配一个AVCodecContext并设置默认值,如果失败返回NULL,并可用av_free()进行释放。
if (output_body.outputcodecctx == NULL)
{
printf("context could not found\n");
return 0;
}

output_body.outputcodecctx->bit_rate = 400000; //设置采样参数,即比特率
/* resolution must be a multiple of two */// 设置分辨率,必须是2的倍数
output_body.outputcodecctx->width = width;
output_body.outputcodecctx->height = height;
/* frames per second *///设置帧率//该帧率为25,其实timebase = 1/framerate,分别为分子和分母。
output_body.outputcodecctx->time_base.den = 25; //设置速度的
output_body.outputcodecctx->time_base.num = 1;
output_body.outputcodecctx->gop_size = 10; /* emit one intra frame every ten frames *///设置GOP大小,该值表示每10帧会插入一个I帧(intra frame)。
output_body.outputcodecctx->max_b_frames = 1;//设置B帧最大数, c->max_b_frames = 1; 该值表示在两个非B帧之间,所允许插入的B帧的最大帧数。
output_body.outputcodecctx->pix_fmt = PIX_FMT_YUV420P; //设置像素格式,该值将像素格式设置为YUV420P。
output_body.outputcodecctx->me_range = 0;
output_body.outputcodecctx->max_qdiff = 3;
output_body.outputcodecctx->qmin = 2;
output_body.outputcodecctx->qmax = 31;
output_body.outputcodecctx->qcompress = 0.5;
if (avcodec_open(output_body.outputcodecctx, output_body.outputcodec) < 0) //函数用给定的AVCodec来初始化AVCodecContext
{
printf("could not open codec\n");
return 0;
}
执行avcodec_open()后,出现了Segmentation fault,不知道是什么原因。
开发环境为在开发板上。
...全文
771 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
CyberLogix 2017-07-28
  • 打赏
  • 举报
回复
传入的参数有问题,单步调试avcodec_open函数看挂在那里了
小猪_sun 2017-07-28
  • 打赏
  • 举报
回复
怀疑是传入的参数有问题,还有就是查看前面的初始化是否正常,看你代码没有进行异常判断
beijie1015 2017-07-27
  • 打赏
  • 举报
回复
求大神指点!
源码链接: https://pan.quark.cn/s/a4b39357ea24 在本研究中,我们将详细研究如何借助Python执行数据可视化,旨在剖析2018年期间中国四个主要城市——北京、上海、广州以及深圳的空气质量状况。通过绘制反映空气质量指数(AQI)与细颗粒物(PM2.5)变化趋势的图表,我们能够深入理解这些大都市全年的空气环境质量,并明确评估其优良天气所占的比重。 我们必须首先进行数据准备工作。在当前提供的压缩文件内,名为"2018天气"的文件极有可能是数据来源,其中可能收录了涉及四个城市每日空气质量监测的详细信息。这些数据通常涵盖日期、城市名称、AQI数值、PM2.5含量等核心参数。在Python编程环境中,我们惯常运用pandas库来对这类结构化数据进行高效的处理和分析。 1. **数据导入与初步处理**: - 利用`pandas.read_csv()`方法来导入存储为CSV格式的数据资料。 - 数据整理:对数据中的空白项、非正常数值进行修正,保证数据的精确性。 - 调整日期字段的格式,确保其能够适用于时间序列分析的需求。 2. **数据深度分析**: - 针对每个城市的AQI和PM2.5数据执行统计性描述,例如计算平均值、中位数、标准偏差等指标。 - 确定空气质量良好天气的天数,即那些AQI值低于75(依据中国的空气质量评估标准)的日数。 3. **数据呈现**: - 运用matplotlib或seaborn工具绘制折线图,直观展示四个城市在2018年全年的AQI和PM2.5变化动态。 - 可通过采用不同的颜色方案和线条类型来区分不同城市的数据系列。 - 添加必要的图示元素,如日期坐标轴、城市名称标注、图表标题及图例说明,以提升图表的可读...

2,554

社区成员

发帖
与我相关
我的任务
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
  • 多媒体/流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧