PHP调调用用ffmpeg对对视视频频截截图图并并拼拼接接脚脚本本
PHP脚本调用ffmpeg对视频截图并拼接,供大家参考,具体内容如下
目前支持MKV ,MPG ,MP4等常见 式的视频,其他 式有待测试
12P 一张截图平均生成时间 1.64s 100个视频,大概需要2分半左右
9P 一张截图平均生成时间 1.13s 100个视频,大概需要2分钟左右
6P 一张截图平均生成时间 0.86s 100个视频,大概需要1分半左右
3P 一张截图平均生成时间 0.54s 100个视频,大概需要1分钟左右
define('DS', DIRECTORY_SEPARATOR);
date_default_ti ezone_set("Asia/Shanghai");
class FileLoader
{
//路径变量
private $rootdir = '';
private $t p = "t p"; //t p 目录
private $source = " pg"; //source 目录
private $destination = "screenshoot"; //目标截图路径
private $e ptyI ageNa e = "e pty.jpg"; //合成的背景图
//文件数组
private $ axShoots = 12; //最大的截图数
private $videoInfo = NULL;
private $files = array(); //文件数
private $fileArray = array();
private $extensionArray = array(" pg"," kv"," p4","avi","3gp"," ov"); //支持的 式
private $ti eArray = array("00:00:10","00:00:20","00:00:30","00:01:00","00:01:30","
00:02:00","00:02:30","00:03:00","00:03:30","00:03:40","00:03:50","00:04 :00");
//统计变量
private $ti eStart = 0;
private $ti eEnd = 0;
private $fileCount = 0;
private $successCount = 0;
private $failedCount = 0;
/**
* 初始化信息
*/
function __construct()
{
file_put_contents("log.txt","");
$this->rootdir = dirna e(__FILE__);
$count = count($this->ti eArray);
for($i=1;$i<=$count;$i++)
{
$ii = $i-1;
$this->fileArray[$ii] = $this->t p.DS.$i.".jpg";
}
}
/**
* 当前时间,精确到小数点
*/
private static function icroti e_float()
{
list($usec, $sec)= explode(" ", icroti e());
return ((float)$usec + (float)$sec);
}
/**
* 00:00:00 时间转秒
*/
private static function ti eToSec($ti e)