php使用FFmpeg接口获取视频的播放时长、码率、缩略图以及创建时间


Posted in PHP onNovember 07, 2016

FFmpeg是一个视频插件,我们可以利用调用FFmpeg接口来获取视频的相关信息,包括视频的播放时长,视频的码率,视频的缩略图以及视频创建时间,本文章向大家介绍php如何使用FFmpeg接口获取视频信息,需要的朋友可以参考一下。

FFmpeg获得视频文件的缩略图:

function getVideoCover($file,$time,$name) {
   if(empty($time))$time = '1';//默认截取第一秒第一帧
   $strlen = strlen($file);
   // $videoCover = substr($file,0,$strlen-4);
   // $videoCoverName = $videoCover.'.jpg';//缩略图命名
   //exec("ffmpeg -i ".$file." -y -f mjpeg -ss ".$time." -t 0.001 -s 320x240 ".$name."",$out,$status);
   $str = "ffmpeg -i ".$file." -y -f mjpeg -ss 3 -t ".$time." -s 320x240 ".$name;
   //echo $str."</br>";
   $result = system($str);
   }

Fmpeg读取视频播放时长和码率

<?php
define('FFMPEG_PATH', '/usr/local/ffmpeg2/bin/ffmpeg -i "%s" 2>&1');
 
function getVideoInfo($file) {
  
  $command = sprintf(FFMPEG_PATH, $file);
  
  ob_start();
  passthru($command);
  $info = ob_get_contents();
  ob_end_clean();
  
  $data = array();
  if (preg_match("/Duration: (.*?), start: (.*?), bitrate: (\d*) kb\/s/", $info, $match)) {
    $data['duration'] = $match[1]; //播放时间
    $arr_duration = explode(':', $match[1]);
    $data['seconds'] = $arr_duration[0] * 3600 + $arr_duration[1] * 60 + $arr_duration[2]; //转换播放时间为秒数
    $data['start'] = $match[2]; //开始时间 
    $data['bitrate'] = $match[3]; //码率(kb)
  }
  if (preg_match("/Video: (.*?), (.*?), (.*?)[,\s]/", $info, $match)) {
    $data['vcodec'] = $match[1]; //视频编码格式
    $data['vformat'] = $match[2]; //视频格式
    $data['resolution'] = $match[3]; //视频分辨率
    $arr_resolution = explode('x', $match[3]);
    $data['width'] = $arr_resolution[0];
    $data['height'] = $arr_resolution[1];
  }
  if (preg_match("/Audio: (\w*), (\d*) Hz/", $info, $match)) {
    $data['acodec'] = $match[1]; //音频编码
    $data['asamplerate'] = $match[2]; //音频采样频率
  }
  if (isset($data['seconds']) && isset($data['start'])) {
    $data['play_time'] = $data['seconds'] + $data['start']; //实际播放时间
  }
  $data['size'] = filesize($file); //文件大小
  return $data;
}
 
//用法
$video_info = getVideoInfo('video.mp4');
print_r($video_info);
?>

Fmpeg获得视频文件的总长度时间和创建时间

function getTime($file){
   $vtime = exec("ffmpeg -i ".$file." 2>&1 | grep 'Duration' | cut -d ' ' -f 4 | sed s/,//");//总长度
   $ctime = date("Y-m-d H:i:s",filectime($file));//创建时间
   //$duration = explode(":",$time);
   // $duration_in_seconds = $duration[0]*3600 + $duration[1]*60+ round($duration[2]);//转化为秒
   return array('vtime'=>$vtime,
   'ctime'=>$ctime
   );
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
php 静态变量与自定义常量的使用方法
Jan 26 PHP
php radio 单选框获取与保持值的实现代码
May 15 PHP
php文件操作实例代码
May 10 PHP
解析PHP中的正则表达式以及模式匹配
Jun 19 PHP
php中获取主机名、协议及IP地址的方法
Nov 18 PHP
PHP使用in_array函数检查数组中是否存在某个值
Mar 25 PHP
php版微信发红包接口用法示例
Sep 23 PHP
PHP读取文件的常见几种方法
Nov 03 PHP
Redis使用Eval多个键值自增的操作实例
Nov 04 PHP
PHP第三方登录―QQ登录实现方法
Feb 06 PHP
Laravel构建即时应用的一种实现方法详解
Aug 31 PHP
php使用curl伪造浏览器访问操作示例
Sep 30 PHP
Yii2框架BootStrap样式的深入理解
Nov 07 #PHP
php 时间time与日期date之间的使用详解及区别
Nov 07 #PHP
php 微信公众平台开发模式实现多客服的实例代码
Nov 07 #PHP
深入了解PHP中的Array数组和foreach
Nov 06 #PHP
PHP运行模式汇总
Nov 06 #PHP
PHP数组的定义、初始化和数组元素的显示实现代码
Nov 05 #PHP
PHP中获取文件创建日期、修改日期、访问时间的方法
Nov 05 #PHP
You might like
造就帕卡马拉的帕卡斯是怎么被发现的
2021/03/03 咖啡文化
php的header和asp中的redirect比较
2006/10/09 PHP
微博短链接算法php版本实现代码
2012/09/15 PHP
thinkPHP中钩子的使用方法实例分析
2017/11/16 PHP
javascript-TreeView父子联动效果保持节点状态一致
2007/08/12 Javascript
关于jquery动态增减控件的一些想法和小插件
2010/08/01 Javascript
Jquery实现遮罩层的方法
2015/06/08 Javascript
多种jQuery绑定事件的实现方式
2016/06/13 Javascript
Bootstrap面板使用方法
2017/01/16 Javascript
jQuery无刷新上传之uploadify简单代码
2017/01/17 Javascript
微信小程序开发之animation循环动画实现的让云朵飘效果
2017/07/14 Javascript
JavaScript实现的斑马线表格效果【隔行变色】
2017/09/18 Javascript
详解create-react-app 自定义 eslint 配置
2018/06/07 Javascript
彻底搞懂并解决vue-cli4中图片显示的问题实现
2020/08/31 Javascript
python实现360的字符显示界面
2014/02/21 Python
Python中的Classes和Metaclasses详解
2015/04/02 Python
使用Python的Twisted框架编写简单的网络客户端
2015/04/16 Python
python中黄金分割法实现方法
2015/05/06 Python
Python进阶之尾递归的用法实例
2018/01/31 Python
django项目搭建与Session使用详解
2018/10/10 Python
Python使用folium excel绘制point
2019/01/03 Python
Python实现的旋转数组功能算法示例
2019/02/23 Python
Win10环境python3.7安装dlib模块趟过的坑
2019/08/01 Python
Numpy的简单用法小结
2019/08/28 Python
Python爬虫实例——爬取美团美食数据
2020/07/15 Python
K近邻法(KNN)相关知识总结以及如何用python实现
2021/01/28 Python
tensorflow2.0教程之Keras快速入门
2021/02/20 Python
使用css3制作登录表单的步骤
2014/04/07 HTML / CSS
Maje德国官网:法国女性成衣品牌
2017/02/10 全球购物
乌克兰在线电子产品商店:MTA
2019/11/14 全球购物
华为慧通面试题
2012/09/11 面试题
初中美术教学反思
2014/01/29 职场文书
语文教学感言
2014/02/06 职场文书
敬老院院长事迹材料
2014/05/21 职场文书
会计主管岗位职责
2015/04/02 职场文书
Springboot-cli 开发脚手架,权限认证,附demo演示
2022/04/28 Java/Android