执行avcodec_send_frame函数出现段错误
来源:8-8 AAC编码器编码2

发如雪jay
2021-11-26
老师,您好,我用的ubuntu18.04系统。
执行到avcodec_send_frame函数的时候,发生了如下错误:
段错误 (核心已转储)
确定代码没有错误(按照你课程中的),也没有数组越界和栈溢出。
但是莫名奇妙的出现了这个错误,在网上也找不到相应的解决办法,花费了几个小时的时间也没有解决,还请老师指点一下。
我的代码有和您不一样的地方。如下:
(1)我之前遇到了一个错误是avcodec_open2打开失败,avcodec_open2函数返回值是-22.在网上找了写办法:在创建编码器(avcodec_find_encoder_by_name / avcodec_find_encoder)之前先注册封装格式等信息和注册编码器。具体如下:
av_register_all(); //注册封装格式等信息
avcodec_register_all(); //注册编解码器
而且只能使用avcodec_find_encoder这个函数创建编码器,使用另一个也会出现avcodec_open2函数返回值是-22。
还有一个:我的采样大小必须是AV_SAMPLE_FMT_FLTP才可以,不支持AV_SAMPLE_FMT_S16.
//给编码器设置参数
codec_ctx->sample_fmt = AV_SAMPLE_FMT_FLTP;
上面的三行代码是我与您不一样的地方。
还请老师帮助解决一下。
写回答
1回答
-
李超
2021-11-26
Ctx 你初始化了吗?
042022-03-15
相似问题
段错误
回答 1
mingw编译ffmpeg
回答 2