ffmpeg python批处理视频文件 增加关键帧 解决seekTo不准确问题
2016-08-04 11:25
459 查看
最近在做视频播放功能,用到了ijkplayer,发现在视频未缓冲,拖动进度条会出现进度条倒退,甚至从起点开始的情况(好像跟之前的B站一样),而且当Activity onstop时保存进度,在onRestart时seekTo到上一次位置,会一直从0开始播放。 在网上查阅一些资料后,发现是由于视频中没有关键帧,而seekTo会从目标position最近关键帧的位置开始播放视频,如果没有关键帧,则从头开始播放。。。 于是乎,我们打算使用ffmpeg处理视频,每秒加一个关键帧。
以MAC为例
首先你需要从ffmpeg官网下载该程序,比如ffmpeg-X.Y.Z.7z 是发布版本,不用编译,直接解压缩即可使用。
然后把在ffmpeg存储目录下创建python脚本,以及input文件夹,用于存放输入视频文件(文件可以有很复杂的目录),以及output文件夹,用于存放输出视频文件(输出文件跟输入文件的目录结构一样)。
python 代码(2.7):
以MAC为例
首先你需要从ffmpeg官网下载该程序,比如ffmpeg-X.Y.Z.7z 是发布版本,不用编译,直接解压缩即可使用。
然后把在ffmpeg存储目录下创建python脚本,以及input文件夹,用于存放输入视频文件(文件可以有很复杂的目录),以及output文件夹,用于存放输出视频文件(输出文件跟输入文件的目录结构一样)。
python 代码(2.7):
# coding=utf-8 import string import os import time import re import sys #你的根目录 ffmpeg_path = '/Users/sanjieke1/Downloads/videofactory' ffmpeg_name = ffmpeg_path + '/ffmpeg' ff_input = ffmpeg_path + '/input' ff_output = ffmpeg_path + '/putput' print '开始查找视频内容' for parent,dirnames,filenames in os.walk(ff_input): #三个参数:分别返回1.父目录 2.所有文件夹名字(不含路径) 3.所有文件名字 for filename in filenames: #输出文件信息 # print 'here is file \n==========\n' # print "parent is : " + parent # print "filename is : " + filename # print "the full name of the file is : " + os.path.join(parent,filename) #输出文件路径信息 if filename.endswith('.mp4'): print '\n==================================\n处理新输入文件:' outfolder = parent.replace('/input','/output') print '输出父文件夹 :' + outfolder if not os.path.exists(outfolder): os.makedirs(outfolder) print "输入文件路径 : " + os.path.join(parent,filename) #输出文件路径信息 outpath = os.path.join(parent,filename).replace('/input','/output') print "输出文件路径 : " + outpath print '...' print '开始处理文件,请稍后' print '...' # 调用系统命令,每25帧加一个关键帧 os.system(ffmpeg_name + ' -i ' + os.path.join(parent,filename) + ' -g 25 ' + outpath)
相关文章推荐
- 利用FFmpeg将视频文件生成bmp图像帧(解决反转问题)
- 一个使用FFmpeg库读取3gp视频的例子-Android中使用FFmpeg媒体库(三).so文件编译过程问题的解决
- 利用FFmpeg将视频文件生成bmp图像帧(解决反转问题)
- Ubuntu7.04使用totem-xine,安装libxine1-ffmpeg后,rm文件播放无声问题的解决办法
- Ubuntu7.04使用totem-xine,安装libxine1-ffmpeg后,rm文件播放无声问题的解决办法
- 用FFMPEG SDK进行视频转码压缩时解决音视频不同步问题的方法(转) PTS DTS
- 解决暴风影音2012无法播放rmvb视频文件的问题
- Ubuntu7.04使用totem-xine,安装libxine1-ffmpeg后,rm文件播放无声问题的解决办法
- ubuntu下播放视频文件并且解决无声(杂声问题)
- Ant 执行 YUICompressor 任务压缩 JavaScript 和 CSS 文件,解决中文乱码问题,增加源文件字符编码集设定
- 用FFMPEG SDK进行视频转码压缩时解决音视频不同步问题的方法(转) PTS DTS
- 有关android中加载MP4,3gp等视频文件,无法播放问题的解决
- Ubuntu7.04使用totem-xine,安装libxine1-ffmpeg后,rm文件播放无声问题的解决办法
- 解决视频文件播放不能快进问题
- Ubuntu7.04使用totem-xine,安装libxine1-ffmpeg后,rm文件播放无声问题的解决办法
- Ubuntu7.04使用totem-xine,安装libxine1-ffmpeg后,rm文件播放无声问题的解决办法
- 怎么用asp解决上传音频视频文件问题
- Ubuntu7.04使用totem-xine,安装libxine1-ffmpeg后,rm文件播放无声问题的解决办法
- 用FFMPEG SDK进行视频转码压缩时解决音视频不同步问题的方法(转) PTS DTS
- 解决FLV视频文件在IIS6.0上无法播放的问题