安卓平台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

猜你喜欢

转载自blog.csdn.net/email_jade/article/details/82424289