SkeyeExPlayer 次要基于 ffmpeg 进行开发,在 SkeyeExPlayer 开发过程中,曾遇到一个绝对比拟辣手的问题,该问题个别在播放不是很规范的流或者网络状况较差,容易呈现丢帧的状况特地容易呈现;
根本表象在,播放一段时间程序会弹出谬误或者解体,查代码逻辑根本无法查起,且不易重现(比方,我当初就想重现,也未能重现进去 –!前面补上),不过在播放没有音频的 rtsp 流的时候比拟容易呈现,报错定位 output.c 源文件中,应该是字符串格式化输入的时候出错,通过排查,定位到 ffmpeg 的日志输入,为了便于查看谬误,我在 avformat_open_input() 关上流函数前加了日志输入打印函数调用:
av_log_set_level(AV_LOG_WARNING);
av_log_set_callback(callback);
在 callback 回调函数中输入的日志打印,从而能看到 FFMPEG 的外部报错信息,而屏蔽这两句,尽管在丢帧的状况下视频卡帧了,然而上文提到的报错的问题却不再呈现了,所以,咱们猜想在 ffpeg 外部应该存在一个中央的日志打印呈现谬误的中央,当然也有可能是我的调用办法不合理导致的(谁晓得呢),总之,问题是临时失去了解决,后续找到真正报错的问题在补上。