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 AJAX实例根据邮编自动完成地址信息
Nov 23 PHP
Uchome1.2 1.5 代码学习 common.php
Apr 24 PHP
php+iframe实现隐藏无刷新上传文件
Feb 10 PHP
php判断手机访问还是电脑访问示例分享
Jan 20 PHP
9条PHP编程小知识及易犯的小错误
Jan 22 PHP
给WordPress中的留言加上楼层号的PHP代码实例
Dec 14 PHP
php简单截取字符串代码示例
Oct 19 PHP
Linux平台PHP5.4设置FPM线程数量的方法
Nov 09 PHP
PHP编程实现的TCP服务端和客户端功能示例
Apr 13 PHP
php使用curl获取header检测开启GZip压缩的方法
Aug 15 PHP
php7下的filesize函数
Sep 30 PHP
PHP设计模式(一)工厂模式Factory实例详解【创建型】
May 02 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
福利彩票幸运号码自动生成器
2006/10/09 PHP
echo, print, printf 和 sprintf 区别
2006/12/06 PHP
php+mysql事务rollback&amp;commit示例
2010/02/08 PHP
PHP-redis中文文档介绍
2013/02/07 PHP
基于HBase Thrift接口的一些使用问题及相关注意事项的详解
2013/06/03 PHP
php5.2的curl-bug 服务器被php进程卡死问题排查
2016/09/19 PHP
Yii2框架制作RESTful风格的API快速入门教程
2016/11/08 PHP
ThinkPHP 模板引擎使用详解
2017/05/07 PHP
PHP获取星期几的常用方法小结
2018/12/18 PHP
laravel框架路由分组,中间件,命名空间,子域名,路由前缀实例分析
2020/02/18 PHP
JS模拟面向对象全解(二、类型与赋值)
2011/07/13 Javascript
兼容最新firefox、chrome和IE的javascript图片预览实现代码
2014/08/08 Javascript
PHP配置文件php.ini中打开错误报告的设置方法
2015/01/09 PHP
JavaScript中String.match()方法的使用详解
2015/06/06 Javascript
最原始的jQuery注册验证方式
2016/10/11 Javascript
vue.js初学入门教程(1)
2016/11/03 Javascript
AngularJS过滤器filter用法分析
2016/12/11 Javascript
JavaScript实现同一个页面打开多张图片
2016/12/29 Javascript
JavaScript中双符号的运算详解
2017/03/12 Javascript
jquery应用实例分享_实现手风琴特效
2018/02/01 jQuery
vue中node_modules中第三方模块的修改使用详解
2019/05/31 Javascript
Vue打包后访问静态资源路径问题
2019/11/08 Javascript
JS实现简易留言板增删功能
2020/02/08 Javascript
JS实现简单贪吃蛇小游戏
2020/10/28 Javascript
[01:03]PWL开团时刻DAY6——别打我
2020/11/05 DOTA
总结Python中逻辑运算符的使用
2015/05/13 Python
Python使用Srapy框架爬虫模拟登陆并抓取知乎内容
2016/07/02 Python
Python后台管理员管理前台会员信息的讲解
2019/01/28 Python
python 实现倒计时功能(gui界面)
2020/11/11 Python
python利用appium实现手机APP自动化的示例
2021/01/26 Python
CSS3让登陆面板3D旋转起来
2016/05/03 HTML / CSS
美国在线精品家居网站:Burke Decor
2017/04/12 全球购物
英国时尚女装购物网站:Missguided
2018/08/23 全球购物
Foot Locker英国官网:美国知名运动产品零售商
2019/02/21 全球购物
虎兄虎弟观后感
2015/06/12 职场文书
pytorch实现ResNet结构的实例代码
2021/05/17 Python