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 相关文章推荐
在线短消息收发的程序,不用数据库
Oct 09 PHP
用PHP和ACCESS写聊天室(十)
Oct 09 PHP
php mssql 分页SQL语句优化 持续影响
Apr 26 PHP
PHP CURL模拟登录新浪微博抓取页面内容 基于EaglePHP框架开发
Jan 16 PHP
通过5个php实例细致说明传值与传引用的区别
Aug 08 PHP
解决phpmyadmin中缺少mysqli扩展问题的方法
May 06 PHP
浅析php数据类型转换
Jan 09 PHP
php判断对象是派生自哪个类的方法
Jun 20 PHP
php单元测试phpunit入门实例教程
Nov 17 PHP
PHP实现数据库的增删查改功能及完整代码
Apr 18 PHP
Laravel框架实现定时发布任务的方法
Aug 16 PHP
laravel框架数据库配置及操作数据库示例
Oct 10 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
全国FM电台频率大全 - 2 天津市
2020/03/11 无线电
Yii2-GridView 中让关联字段带搜索和排序功能示例
2017/01/21 PHP
PHP实现微信小程序用户授权的工具类示例
2019/03/05 PHP
php设计模式之原型模式分析【星际争霸游戏案例】
2020/03/23 PHP
一个JavaScript继承的实现
2006/10/24 Javascript
javascript一些实用技巧小结
2011/03/18 Javascript
基于mootools 1.3框架下的图片滑动效果代码
2011/04/22 Javascript
js 火狐下取本地路径实现思路
2013/04/02 Javascript
jQuery实现的图文高亮滚动切换特效实例
2015/08/10 Javascript
Jquery UI实现一次拖拽多个选中的元素操作
2020/12/01 Javascript
关于Node.js的events.EventEmitter用法介绍
2017/04/01 Javascript
AngularJS改变元素显示状态
2017/04/20 Javascript
元素全屏的设置与监听实例
2017/11/28 Javascript
用Node提供静态文件服务的方法
2018/07/06 Javascript
Nodejs实现的操作MongoDB数据库功能完整示例
2019/02/02 NodeJs
elementUI select组件value值注意事项详解
2019/05/29 Javascript
js实现图片上传即时显示效果
2019/09/30 Javascript
python实现在无须过多援引的情况下创建字典的方法
2014/09/25 Python
python使用分治法实现求解最大值的方法
2015/05/12 Python
Python封装原理与实现方法详解
2018/08/28 Python
解决python xlrd无法读取excel文件的问题
2018/12/25 Python
Python小游戏之300行代码实现俄罗斯方块
2019/01/04 Python
python KNN算法实现鸢尾花数据集分类
2019/10/24 Python
Python unittest框架操作实例解析
2020/04/13 Python
python 实现关联规则算法Apriori的示例
2020/09/30 Python
用ldap作为django后端用户登录验证的实现
2020/12/07 Python
使用CSS3编写类似iOS中的复选框及带开关的按钮
2016/04/11 HTML / CSS
MVMT手表官方网站:时尚又实惠的高品质手表
2016/12/04 全球购物
渗透攻击的测试步骤
2014/06/07 面试题
优秀家长自荐材料
2014/08/26 职场文书
六一儿童节活动总结
2014/08/27 职场文书
2014年国庆节演讲稿
2014/09/02 职场文书
个人债务授权委托书范本
2014/10/05 职场文书
优秀教师申报材料
2014/12/16 职场文书
优秀共产党员推荐材料
2014/12/18 职场文书
胡桃夹子观后感
2015/06/11 职场文书