安卓平台FFmpeg播放mp4文件出现stream 1, offset 0x28: partial file的解决办法

     项目中用到了bilibili的开源播放器ijkplayer,从http服务器上播放一段手机录制的mp4视频时候出现了如下的播放错误:

08-30 08:41:38.507 27887-28085/ E/IJKMEDIA: Option max-buffer-size not found.
08-30 08:41:38.507 27887-28083/ D/IJKMEDIA: FFP_MSG_OPEN_INPUT:
08-30 08:41:38.507 27887-28085/ E/IJKMEDIA: stream 1, offset 0x28: partial file
08-30 08:41:38.508 27887-28085/ W/IJKMEDIA: Could not find codec parameters for stream 0 (Video: h264 (avc1 / 0x31637661), none(tv, bt709), 1920x1080, 16152 kb/s): unspecified pixel format
    Consider increasing the value for the 'analyzeduration' and 'probesize' options

      看日志需要增加analyzeduration和probesize的大小,但是无论如何增加都不起作用。

    尝试在网上找原因,大部分都是说这是FFmpeg的一个bug,因为同样的流在vlc或者web页面能够直接播放,但是在stackoverflow发现了如下答案。

            

    抓包分析播放器与服务器的交互过程,发现服务器不支持range请求。

           

    后台采用的是spring搭建的,在网上搜索了一下,发现有很多大神已经在spring框架上实现了range请求,直接copy代码,再次调用安卓的播放,此时,视频已经一切正常了。

    支持range

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值