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 解决utf-8和gb2312编码转换问题
Mar 18 PHP
php分页思路以及在ZF中的使用
May 30 PHP
PHP实现的简单mock json脚本分享
Feb 10 PHP
php获取字符串中各个字符出现次数的方法
Feb 23 PHP
thinkPHP查询方式小结
Jan 09 PHP
详解PHP的Yii框架中扩展的安装与使用
Apr 01 PHP
php微信公众号开发(3)php实现简单微信文本通讯
Dec 15 PHP
php 删除指定文件夹的实例讲解
Jul 25 PHP
PHP使用redis位图bitMap 实现签到功能
Oct 08 PHP
在PHP中实现使用Guzzle执行POST和GET请求
Oct 15 PHP
PHP网页缓存技术优点及代码实例
Jul 29 PHP
ThinkPHP5.1的权限控制怎么写?分享一个AUTH权限控制
Mar 09 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
模拟SQLSERVER的两个函数:dateadd(),datediff()
2006/10/09 PHP
一步一步学习PHP(2)――PHP类型
2010/02/15 PHP
PHP中使用BigMap实例
2015/03/30 PHP
为百度UE编辑器上传图片添加水印功能
2015/04/16 PHP
Zend Framework实现多文件上传功能实例
2016/03/21 PHP
Laravel实现定时任务的示例代码
2017/08/10 PHP
js创建数据共享接口——简化框架之间相互传值
2011/10/23 Javascript
5个最佳的Javascript日期处理类库分享
2012/04/15 Javascript
JQuery勾选指定name的复选框集合并显示的方法
2015/05/18 Javascript
jquery实现不包含当前项的选择器实例
2015/06/25 Javascript
jQuery动画效果相关方法实例分析
2015/12/31 Javascript
深入理解jquery自定义动画animate()
2016/05/24 Javascript
AngularJs concepts详解及示例代码
2016/09/01 Javascript
nodejs的压缩文件模块archiver用法示例
2017/01/18 NodeJs
js实现多行文本框统计剩余字数功能
2017/03/28 Javascript
浅谈js-FCC算法Friendly Date Ranges(详解)
2017/04/10 Javascript
angular中实现li或者某个元素点击变色的两种方法
2017/07/27 Javascript
jQuery 中msgTips 顶部弹窗效果实现代码
2017/08/14 jQuery
基于JavaScript表单脚本(详解)
2017/10/18 Javascript
jQuery Validate插件ajax方式验证输入值的实例
2017/12/21 jQuery
vue-cli 如何打包上线的方法示例
2018/05/08 Javascript
vue中v-model的应用及使用详解
2018/06/27 Javascript
react+antd 递归实现树状目录操作
2020/11/02 Javascript
Python lxml模块安装教程
2015/06/02 Python
python实现网站用户名密码自动登录功能
2019/08/09 Python
python+mysql实现个人论文管理系统
2019/10/25 Python
简单了解python装饰器原理及使用方法
2019/12/18 Python
python利用os模块编写文件复制功能——copy()函数用法
2020/07/13 Python
前端面试必备之html5的新特性
2017/09/05 HTML / CSS
德国玩具商店:Planet Happy DE
2021/01/16 全球购物
司机辞职报告范文
2014/01/20 职场文书
2014年仓库保管员工作总结
2014/12/03 职场文书
先进班集体申报材料
2014/12/26 职场文书
pycharm2021激活码使用教程(永久激活亲测可用)
2021/03/30 Python
Python IO文件管理的具体使用
2022/03/20 Python
uniapp引入支付宝原生扫码插件步骤详解
2022/07/23 Javascript