【Bug记录 2018-08-16】Android MediaPlayer #seekTo 位置不准确

现象:

拖动seekbar 视频页面会变化,但seekbar 进度会回退几秒-几十秒不等

原因:

部分视频播放时,调用seekTo的时候,会跳回到最开始的位置,这是因为视频的关键帧的问题(GOP导致的),视频压缩比较高,而seek只支持关键帧,出现这个情况就是原始的视频文件中i帧比较少.

视频是自制视频,并且通过格式工厂压缩,导致关键帧缺少.

解决方式

重新给视频源添加keyframe
可用使用FFMPEG进行操作
https://ffmpeg.zeranoe.com/builds/

相关命令

ffmpeg -i %1 -c:v libx264 -preset veryslow -crf 22 -x264opts   keyint=123:min-keyint=20 -c:a copy %1_new.mp4
pause

windows下新建文本,后缀改为bat,copy代码保存后, 最后直接拖视频文件到bat 文件上就可以添加关键帧.

你可能感兴趣的:(android,bug)