在确定代码逻辑和流程没有问题过后返回这个问题,通过多方验证确定是avfilter_graph_parse_ptr第二个参数导致的,此处我的输入参数是
const char *strFilter="movie=/storage/emulated/0/logo.png[wm];[in][wm]overlay=0:0,scale=400:400[out]"
,通过android studio 后台日志打印出现
然后我一直以为这里是logo_text1.png图片的问题,然后确定了路径文件有效,然后确定当前目录有权限,当然文件无效的话会返回其它错误。后面卡了好久开始怀疑是库不支持png格式解析。
后面我突然想到直接用
const char* = "/storage/emulated/0/logo_text1.png";
int ret = avformat_open_input(&m_pFormatContext, pUrl, NULL,NULL);
if (0 != ret)
{
char errbuf[128];
av_strerror(ret, errbuf, sizeof(errbuf));
return 0;
}
去打开这个地址,用过ffmpeg开发的人都清楚这个接口不仅可以打开rtmp,rtsp,本地文件等音视频流也可以打开,png,gif,jpeg等格式的图片,果然用这个接口打开时发现也是返回的同样的错误-1094995529 "Invalid data found when processing input" 这进一步的确定了问题所在,应该是编译ffmpeg时缺少了 png相关格式的配置选