关于android中ffmpeg的问题

lucherr 2014-03-05 03:15:49
在android中使用ffmpeg解码库的时候遇到如下问题,主要针对udp协议的视频流媒体:
当播放一个不存在的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,不太了解,还希望大神给予指导,谢谢!!
...全文
233 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
lucherr 2014-03-06
  • 打赏
  • 举报
回复
已经解决!思路是找到ffmpeg中循环重试的地方,修改重试判断的次数和时间,需要修改几个地方

80,471

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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