php中获得视频时间总长度的另一种方法


Posted in PHP onSeptember 15, 2011

当时获得视频长度是采用网上的通用的获得flv视频文件长度的方法,但是这个方法只对flv视频支持,其他格式的视频获取到的值就很差了,
下面在介绍一种:利用ffmpeg返回值Duration的方法,原来也想过用,但是没有解决,现在可以了,由于ffmpeg支持很多种格式的视频,所以这个具体一定的通用性。
ffmpeg获得视频时间长度的Duration的linux命令:
ffmpeg -i test.flv 2>&1 | grep 'Duration' | cut -d ' ' -f 4 | sed s/,//
可以获得Duration;看下图
php中获得视频时间总长度的另一种方法

命令分析:

grep命令:匹配查找文件里符合条件的字符串,这里查找Duration字段

cut:以空格为分割符,查询第四个元素,cut是很好的切割命令

下面附几个cut的实例:

#ffmpeg -i test.flv

输入下面信息:

php中获得视频时间总长度的另一种方法

①获得creationdate:文件创建时间

ffmpeg -i test.flv 2>&1 | grep 'creationdate' | cut -d ' ' -f  5-

说明:Cut是文本截取命令:以空格作为分隔符,截取第5位以后的字段,

php中获得视频时间总长度的另一种方法

如果想要截取: 第5个元素和第8个元素,应该这样写:

ffmpeg -i test.flv 2>&1 | grep 'creationdate' | cut -d ' ' -f  5,8

②获得视频尺寸大小

使用cut截取以空格为分隔符的第十个元素也是视频尺寸

ffmpeg -i test.flv 2>&1 | grep 'Video' | cut -d ' ' -f 10 | sed s/,//

php中获得视频时间总长度的另一种方法

sed命令:sed ‘s/要替换的字符串/新字符串/g'

例如:sed s/,//:表示:用空白符替换','号
下面是利用获得视频缩略图和视频总长度时间的代码:

<?php 
/* 
* 获得视频文件的缩略图和视频长度 
*需要ffmpeg支持 
* @author PHP淮北 
* @date 2011-09-14 
* @copyright PHP淮北 
*/ 
//获得视频文件的总长度时间和创建时间 
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 
); 
} 
//获得视频文件的缩略图 
function getVideoCover($file,$time) { 
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 ".$videoCoverName."",$out,$status); 
if($status == 0)return $videoCoverName; 
elseif ($status == 1)return FALSE; 
} 
//调用方法 
$duration = getTime('/usr/local/apache/htdocs/test.flv'); 
echo $duration['vtime'].'<br/>';//总长度 
echo $duration['ctime'].'<br/>';//创建时间 
$videoCoverName = getVideoCover('/usr/local/apache/htdocs/test.flv', 6); 
echo $videoCoverName;//获得缩略图名称 
?>

测试效果

php中获得视频时间总长度的另一种方法

视频长度是:55秒43

视频创建时间;2011-9-13

视频缩略图:test.jpg

-----------------------------测试完全ok

补充:如果想获得视频文件的大小可以使用:

filesize()

filesize() 函数用于取得文件大小默认单位是:bytes,成功返回文件大小的字节数,否则返回 FALSE 。

PHP 相关文章推荐
提升PHP执行速度全攻略(下)
Oct 09 PHP
PHP的FTP学习(一)
Oct 09 PHP
javascript,php获取函数参数对象的代码
Feb 03 PHP
android上传图片到PHP的过程详解
Aug 03 PHP
PHP时间类完整实例(非常实用)
Dec 25 PHP
PHP实现递归目录的5种方法
Oct 27 PHP
基于CI框架的微信网页授权库示例
Nov 25 PHP
thinkPHP中volist标签用法示例
Dec 06 PHP
thinkphp关于简单的权限判定方法
Apr 03 PHP
PHP实现的AES双向加密解密功能示例【128位】
Sep 03 PHP
PHP+Ajax简单get验证操作示例
Mar 02 PHP
php设计模式之策略模式实例分析【星际争霸游戏案例】
Mar 26 PHP
利用Ffmpeg获得flv视频缩略图和视频时间的代码
Sep 15 #PHP
Sorting Array Values in PHP(数组排序)
Sep 15 #PHP
PHP 图片上传代码
Sep 13 #PHP
php中json_encode中文编码问题分析
Sep 13 #PHP
PHP pathinfo()获得文件的路径、名称等信息说明
Sep 13 #PHP
PHP获取MAC地址的函数代码
Sep 11 #PHP
PHP内核介绍及扩展开发指南―基础知识
Sep 11 #PHP
You might like
php 连接mssql数据库 初学php笔记
2010/03/01 PHP
php简单统计字符串单词数量的方法
2015/06/19 PHP
php判断linux下程序问题实例
2015/07/09 PHP
php类自动装载、链式操作、魔术方法实现代码
2017/07/23 PHP
详细解读php的命名空间(一)
2018/02/21 PHP
Yii2语言国际化的配置教程
2018/08/19 PHP
thinkPHP框架RBAC实现原理分析
2019/02/01 PHP
jquery实现带复选框的表格行选中删除时高亮显示
2013/08/01 Javascript
使用js画图之正弦曲线
2015/01/12 Javascript
基于jQuery倾斜打开侧边栏菜单特效代码
2015/09/15 Javascript
APP中javascript+css3实现下拉刷新效果
2016/01/27 Javascript
详解基于webpack搭建react运行环境
2017/06/01 Javascript
JavaScript实现简单音乐播放器
2020/04/17 Javascript
VUE搭建手机商城心得和遇到的坑
2019/02/21 Javascript
JavaScript实现简单计算器
2020/03/19 Javascript
Python实现把数字转换成中文
2015/06/29 Python
使用Python生成随机密码的示例分享
2016/02/18 Python
深入浅析ImageMagick命令执行漏洞
2016/10/11 Python
Python随机数用法实例详解【基于random模块】
2017/04/18 Python
Django基础之Model操作步骤(介绍)
2017/05/27 Python
Python分析学校四六级过关情况
2017/11/22 Python
python利用sklearn包编写决策树源代码
2017/12/21 Python
Python 获取ftp服务器文件时间的方法
2019/07/02 Python
python从zip中删除指定后缀文件(推荐)
2019/12/05 Python
Python Lambda函数使用总结详解
2019/12/11 Python
3种python调用其他脚本的方法
2020/01/06 Python
美国卡车、吉普车和SUV零件网站:4 Wheel Parts
2016/11/24 全球购物
加拿大奢华时装品牌:Mackage
2018/01/10 全球购物
《郑和远航》教学反思
2014/04/16 职场文书
《美丽的南沙群岛》教学反思
2014/04/27 职场文书
敬老院标语
2014/06/27 职场文书
自我查摆剖析材料
2014/10/11 职场文书
搞笑婚前保证书
2015/02/28 职场文书
龙猫观后感
2015/06/09 职场文书
2016年“节能宣传周”活动总结
2016/04/05 职场文书
python基础学习之递归函数知识总结
2021/05/26 Python