VideoView seekTo 查找关键帧

作者: 土肥圆的诺诺 | 来源:发表于2018-12-20 18:18 被阅读89次

    在新公司项目赶进度,有个模块需要播放视频,使用了VideoView,结果需要来回传递播放进度,需要使用VideoView的seekTo方法,因为上传的视频比较小,也就十几秒,结果发现一个问题,就是视频会跳,明明拖拽到8秒的地方,结果点击播放从头开始了。



    其实 ,在VideoView里面seekTo,会就近查找关键帧,这个和视频源是有关系的,当然这里不讲怎么搞关键帧,毕竟我也不是专业做视频的,我们只要告诉测试小姐姐,关键帧在第几秒。然后一句系统的问题,我也搞不了就可以回家休息啦。



    我是用mac的,下载ffmpeg,在iTerm2里输入ffprobe -show_frames(显示帧信息) xxx(视频文件路径)
    比如我是放在桌面文件夹

    输入回车
    下面就是视频帧信息,一般来说一个屏幕是放不下的,我们可以将日志输出


    命令 :ffprobe -show_frames /Users/leo/Desktop/key/dd.mp4 >video_log.txt



    找到我们的文件打开



    什么才是关键帧 呢 可以搜索下
    key_frame=1 表示是关键帧,其实我这个视频只有两个关键帧,为啥查出来200多个呢?

    有个参数叫pict_type 当type为I的时候,才是我们viedeView能seek的



    搜索pict_type=i 发现只有两处



    pkt_pts_time 就是关键帧的时间节点

    终于我可以拿着数据告诉测试小姐姐,你看就俩关键帧,只能跳来跳去的了


    相关文章

      网友评论

        本文标题:VideoView seekTo 查找关键帧

        本文链接:https://www.haomeiwen.com/subject/jopjkqtx.html