最近在做视频播放功能,用到了ijkplayer,发现在视频未缓冲,拖动进度条会出现进度条倒退,甚至从起点开始的情况(好像跟之前的B站一样),而且当Activity onstop时保存进度,在onRestart时seekTo到上一次位置,会一直从0开始播放。 在网上查阅一些资料后,发现是由于视频中没有关键帧,而seekTo会从目标position最近关键帧的位置开始播放视频,如果没有关键帧,则从头开始播放。。。 于是乎,我们打算使用ffmpeg处理视频,每秒加一个关键帧。
以MAC为例
首先你需要从ffmpeg官网下载该程序,比如ffmpeg-X.Y.Z.7z 是发布版本,不用编译,直接解压缩即可使用。
然后把在ffmpeg存储目录下创建python脚本,以及input文件夹,用于存放输入视频文件(文件可以有很复杂的目录),以及output文件夹,用于存放输出视频文件(输出文件跟输入文件的目录结构一样)。
python 代码(2.7):
# coding=utf-8
import string
import os