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制作静态网站的模板框架(三)
Oct 09 PHP
第二节--PHP5 的对象模型
Nov 16 PHP
php 时间计算问题小结
Jan 04 PHP
解析zend Framework如何自动加载类
Jun 28 PHP
php实现的SESSION类
Dec 02 PHP
php中adodbzip类实例
Dec 08 PHP
php发送与接收流文件的方法
Feb 11 PHP
php+jQuery+Ajax实现点赞效果的方法(附源码下载)
Jul 21 PHP
PHP中CheckBox多选框上传失败的代码写法
Feb 13 PHP
php实现保存周期为1天的购物车类
Jul 07 PHP
PHP Post获取不到非表单数据的问题解决办法
Feb 27 PHP
实例讲解PHP中使用命名空间
Jan 27 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中显示格式化的用户输入
2006/10/09 PHP
PHP与jquery实时显示网站在线人数实例详解
2016/12/02 PHP
解决laravel资源加载路径设置的问题
2019/10/14 PHP
Jquery练习之表单验证实现代码
2010/12/14 Javascript
js读取cookie方法总结
2014/10/31 Javascript
jQuery解决input元素的blur事件和其他非表单元素的click事件冲突问题
2016/08/15 Javascript
jQuery中弹出iframe内嵌页面元素到父页面并全屏化的实例代码
2016/12/27 Javascript
原生js实现倒计时功能(多种格式调用)
2017/01/12 Javascript
jQuery.cookie.js实现记录最近浏览过的商品功能示例
2017/01/23 Javascript
前端构建工具之gulp的语法教程
2017/06/12 Javascript
微信小程序switch组件使用详解
2018/01/31 Javascript
微信小程序模板template简单用法示例
2018/12/04 Javascript
vue操作动画的记录animate.css实例代码
2019/04/26 Javascript
vue中使用props传值的方法
2019/05/08 Javascript
JS实现查找数组中对象的属性值是否存在示例
2019/05/24 Javascript
使用JS判断页面是首次被加载还是刷新
2019/05/26 Javascript
jQuery 动态粒子效果示例代码
2020/07/07 jQuery
Vue使用轮询定时发送请求代码
2020/08/10 Javascript
[02:58]献给西雅图的情书_高清
2014/05/29 DOTA
[02:43]2014DOTA2国际邀请赛 官方Alliance战队纪录片
2014/07/14 DOTA
Ubuntu下创建虚拟独立的Python环境全过程
2017/02/10 Python
详解K-means算法在Python中的实现
2017/12/05 Python
小白如何入门Python? 制作一个网站为例
2018/03/06 Python
Python操作MySQL数据库的两种方式实例分析【pymysql和pandas】
2019/03/18 Python
python远程邮件控制电脑升级版
2019/05/23 Python
Python3的高阶函数map,reduce,filter的示例详解
2019/07/23 Python
PyQt 图解Qt Designer工具的使用方法
2019/08/06 Python
python有序查找算法 二分法实例解析
2020/02/18 Python
Python实现链表反转的方法分析【迭代法与递归法】
2020/02/22 Python
html5实现移动端适配完美写法
2017/11/16 HTML / CSS
工程项目经理岗位职责
2013/12/15 职场文书
前台文员我鉴定
2014/01/12 职场文书
试用期转正员工自我评价
2014/09/18 职场文书
小学教师工作总结2015
2015/04/07 职场文书
2015年司法局工作总结
2015/05/22 职场文书
单位更名证明
2015/06/18 职场文书