PHP从FLV文件获取视频预览图的方法


Posted in PHP onMarch 12, 2015

本文实例讲述了PHP从FLV文件获取视频预览图的方法。分享给大家供大家参考。具体实现方法如下:

<?php

// references http://www.longtailvideo.com/support/forum/Modules/12661/External-PHP-with-FFmpeg-using-readfile-

// generate a preview image from an FLV file on-the-fly, or to save

// call with: ffmpeg_image.php?file=video.flv&time=00:00:05&browser=true

// call with: ffmpeg_image.php?file=video.flv&percent=75.3&browser=true

// no time defaults to "00:00:01" (one second), no browser defaults to "true"

$videofile = (isset($_GET['file'])) ? strval($_GET['file']) : 'video.flv';

$image = substr($videofile, 0, strlen($videofile) - 4);

$time = (isset($_GET['time'])) ? strval($_GET['time']) : '00:00:01';

// debug ("  File: ", $videofile);

// debug (" Image: ", $image);

// debug ("  Time: ", $time);

// check time format

if (!preg_match('/\d\d:\d\d:\d\d/', $time))

{

  $time = "00:00:00";

}

if (isset($_GET['percent']))

{

  $percent = $_GET['percent'];

// debug (" Percent: ", $percent);

  ob_start();

  exec("/usr/bin/ffmpeg -i \"". $videofile . "\" 2>&1");

  $duration = ob_get_contents();

  ob_end_clean();

  // debug ("Duration: ", $duration);

  preg_match('/Duration: (.*?),/', $duration, $matches);

  $duration = $matches[1];

// debug ("Duration: ", $duration);

  $duration_array = split(':', $duration);

  $duration = $duration_array[0] * 3600 + $duration_array[1] * 60 + $duration_array[2];

  $time = $duration * $percent / 100;

// debug (" Time: ", $time);

  $time = intval($time/3600) . ":" . intval(($time-(intval($time/3600)*3600))/60) . ":" . sprintf("%01.3f", ($time-(intval($time/60)*60)));

// debug (" Time: ", $time);

}

$browser = (isset($_GET['browser'])) ? strval($_GET['browser']) : 'true';

// debug (" Browser: ", $browser);

if ($browser == "true")

{

  header('Content-Type: image/png');

  exec("/usr/bin/ffmpeg -vcodec png -i \"" . $videofile . "\" -ss " . $time . " -vframes 1 -f image2 -");

//header('Content-Type: image/jpeg');

//exec("/usr/bin/ffmpeg -vcodec mjpeg -i \"" . $videofile . "\" -ss " . $time . " -vframes 1 -f image2 -");

}

else

{

  exec("/usr/bin/ffmpeg -vcodec png -i \"" . $videofile . "\" -ss " . $time . " -vframes 1 -f image2 \"" . $image . "\"%d.png");

//exec("/usr/bin/ffmpeg -vcodec mjpeg -i \"" . $videofile . "\" -ss " . $time . " -vframes 1 -f image2 \"" . $image . "\"%d.jpg");

}

?>

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
PHP学习之输出字符串(echo,print,printf,print_r和var_dump)
Apr 17 PHP
php函数的常用方法及注意之处小结
Jul 10 PHP
php文件打包 下载之使用PHP自带的ZipArchive压缩文件并下载打包好的文件
Jun 13 PHP
php操作xml
Oct 27 PHP
phpstrom使用xdebug配置方法
Dec 17 PHP
php删除文本文件中重复行的方法
Apr 28 PHP
PHP cURL初始化和执行方法入门级代码
May 28 PHP
PHP简单生成缩略图相册的方法
Jul 29 PHP
使用php+swoole对client数据实时更新(一)
Jan 07 PHP
ThinkPHP中html:list标签用法分析
Jan 09 PHP
浅谈Laravel中的一个后期静态绑定
Aug 11 PHP
Laravel中获取IP的真实地理位置
Apr 01 PHP
PHP简单获取视频预览图的方法
Mar 12 #PHP
php使用memcoder将视频转成mp4格式的方法
Mar 12 #PHP
PHP实现将视频转成MP4并获取视频预览图的方法
Mar 12 #PHP
PHP实现从远程下载文件的方法
Mar 12 #PHP
PHP判断网络文件是否存在的方法
Mar 12 #PHP
php实现过滤UBB代码的类
Mar 12 #PHP
PHP列出MySQL中所有数据库的方法
Mar 12 #PHP
You might like
php缩放图片(根据宽高的等比例缩放)实例介绍
2013/06/09 PHP
PHP swfupload图片上传的实例代码
2013/09/30 PHP
php实现的验证码文件类实例
2015/06/18 PHP
php实现将二维关联数组转换成字符串的方法详解
2017/07/31 PHP
通过jQuery打造支持汉字,拼音,英文快速定位查询的超级select插件
2010/06/18 Javascript
javascript实现表单提交后,提交按钮不可用的方法
2015/04/18 Javascript
后端接收不到AngularJs中$http.post发送的数据原因分析及解决办法
2016/07/05 Javascript
node.js express安装及示例网站搭建方法(分享)
2016/08/22 Javascript
jQuery中的AjaxSubmit使用讲解
2016/09/25 Javascript
基于ajax与msmq技术的消息推送功能实现代码
2016/12/26 Javascript
vue2中filter()的实现代码
2017/07/09 Javascript
vue获取input输入值的问题解决办法
2017/10/17 Javascript
vue中的计算属性的使用和vue实例的方法示例
2017/12/04 Javascript
浅谈vue父子组件怎么传值
2018/07/21 Javascript
vue+axios 前端实现的常用拦截的代码示例
2018/08/23 Javascript
vue多次循环操作示例
2019/02/08 Javascript
Vue.js标签页组件使用方法详解
2019/10/19 Javascript
JS+CSS实现动态时钟
2021/02/19 Javascript
Python读大数据txt
2016/03/28 Python
Python入门_条件控制(详解)
2017/05/16 Python
对Python 语音识别框架详解
2018/12/24 Python
对python特殊函数 __call__()的使用详解
2019/07/02 Python
Python 面向对象之封装、继承、多态操作实例分析
2019/11/21 Python
python3.8下载及安装步骤详解
2020/01/15 Python
Python爬虫库BeautifulSoup获取对象(标签)名,属性,内容,注释
2020/01/25 Python
Pycharm配置lua编译环境过程图解
2020/11/28 Python
FC-Moto美国:欧洲最大的摩托车服装和头盔商店之一
2019/08/24 全球购物
Python如何实现单例模式
2016/06/03 面试题
求职信模版
2013/11/30 职场文书
总经理秘书工作职责
2013/12/26 职场文书
料理师求职信
2014/01/30 职场文书
绿色出行口号
2014/06/18 职场文书
中学生旷课检讨书2篇
2014/10/09 职场文书
对外汉语教师推荐信
2015/03/27 职场文书
JavaScript实现班级抽签小程序
2021/05/19 Javascript
Redis高并发缓存架构性能优化
2022/05/15 Redis