关于android中ffmpeg的问题
当播放一个不存在的url地址的时候,会导致卡死现象,最终播放器被ANR机制强制杀死,对ffmpeg进行了下跟踪,发现是在/amffmpeg/libavformat/utils.c的try_get_mached_new_prot方法里,该方法在执行的时候会调用同目录下file_list2.c的url_is_file_list方法,这个方法又调用了probe_demux方法,这个方法在执行demux = probe_demux(lio, filename)的时候出现卡死现象
在调用上面代码之前,调用了udp.c里的udp_open方法,按照该方法的注释所言/* put it in UDP context, return non zero if error */,在open一个不存在的url地址的时候,应该返回一个非0的数,这样客户端就可以catch到错误进行处理了,但是实际上在调用该方法的时候返回了0,所以才执行了上面所说的代码出现了卡死的问题,我现在的想法是能不能在udp_open方法里调用ffmpeg的其他方法来判断该地址是否可以播放,由于刚接触ffmpeg,不太了解,还希望大神给予指导,谢谢!!
相关推荐
快速解决Android平台移植ffmpeg的一些问题
IT行业是一个踩在巨人肩膀上前进的行业,否则做的事情不一定有意义,所以我也是基于havlenapetr移植的ffmpeg基础上做了些改进,他做的主要贡献有: 1. 移植了ffmpeg并将与媒体相关的结构体在java层重新进行了封装,方便应用程序在java层直接操作ffmpeg API,如各种媒体格式转码及播放,如图1所示 2. 模仿Android的MediaPlayer类实现了ffmpeg的播放接口,如setDataSource(),setDisplay(),start(), stop(),pause()等,缺点是没有实现seek功能。 3. 实现了一个简单播放器功能,抛弃掉ffmpeg自带的
安卓平台ffmpeg库
ffmpeg 2.0.1 安卓平台的静态库,论坛有人求,顺手编译之 对应的代码见: http://ffmpeg.org/releases/ffmpeg-2.0.1.tar.bz2
安卓手机使用的ffmpeg库,支持android-api-21
为安卓平台编译的 ffmpeg库,支持anroid-api-21,有功能开发需求者也可以联系本人, 有其他平台编译库需求者可联系我
ARMV7A 安卓 FFMPEG so库
ffmpeg 7.0 安卓so库
ffmpeg for android编译全过程与遇到的问题
编译前准备编译环境:Ubuntu16,可自行下载最新版并百度永久许可证或在服务器上安装Ubuntu有条件的最好还是在Liunx平台下编译吧,Windows平台下编译坑更多,文章末尾有Github源码可自取开始编译1.解压NDK,执行如果提示没有unzip,执行此命令安装2.解压ffmepg,3.进入ffmpeg4.2.2目录,修改根目录下的 configure 文件搜索替换为此步骤主要是将so命名为Android通用的so名称。


