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的面试题集,附我的答案和分析(一)
Nov 19 PHP
不错的一篇面向对象的PHP开发模式(简写版)
Mar 15 PHP
php自动注册登录验证机制实现代码
Dec 20 PHP
PHP删除目录及目录下所有文件的方法详解
Jun 06 PHP
php操作mysql数据库的基本类代码
Feb 25 PHP
Dwz与thinkphp整合下的数据导出到Excel实例
Dec 04 PHP
推荐几个开源的微信开发项目
Dec 28 PHP
php解析字符串里所有URL地址的方法
Apr 03 PHP
PHP实现的登录,注册及密码修改功能分析
Nov 25 PHP
PHP简单实现循环链表功能示例
Nov 10 PHP
PHP操作Postgresql封装类与应用完整实例
Apr 24 PHP
PHP获取HTTP body内容的方法
Dec 31 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+jquery编码方面的一些心得(utf-8 gb2312)
2010/10/12 PHP
PHP面向对象五大原则之接口隔离原则(ISP)详解
2018/04/04 PHP
jQuery Selector选择器小结
2010/05/06 Javascript
JS实现匀速运动的代码实例
2013/11/29 Javascript
window.onload追加函数使用示例
2014/03/03 Javascript
js实现同一页面多个不同运动效果的方法
2015/04/10 Javascript
利用jQuery和CSS将背景图片拉伸
2015/10/16 Javascript
Nodejs学习item【入门手上】
2016/05/05 NodeJs
jquery设置表单元素为不可用的简单代码
2016/07/04 Javascript
JS给Array添加是否包含字符串的简单方法
2016/10/29 Javascript
jquery.validate表单验证插件使用方法解析
2016/11/07 Javascript
BootStrap表单控件之文本域textarea
2017/05/23 Javascript
Angular2生命周期钩子函数的详细介绍
2017/07/10 Javascript
vue脚手架中配置Sass的方法
2018/01/04 Javascript
JS高级技巧(简洁版)
2018/07/29 Javascript
vscode 开发Vue项目的方法步骤
2018/11/25 Javascript
微信小程序实现打开并下载服务器上面的pdf文件到手机
2019/09/20 Javascript
实例分析JS中的相等性判断===、 ==和Object.is()
2019/11/17 Javascript
vue 限制input只能输入正数的操作
2020/08/05 Javascript
Python装饰器的函数式编程详解
2015/02/27 Python
python实现的简单猜数字游戏
2015/04/04 Python
用Python给文本创立向量空间模型的教程
2015/04/23 Python
python字符串过滤性能比较5种方法
2017/06/22 Python
10分钟教你用Python实现微信自动回复功能
2018/11/28 Python
Pycharm配置远程调试的方法步骤
2018/12/17 Python
python requests抓取one推送文字和图片代码实例
2019/11/04 Python
完美解决keras 读取多个hdf5文件进行训练的问题
2020/07/01 Python
澳大利亚办公室装修:JasonL Office Furniture
2019/06/25 全球购物
毕业生就业推荐信范文
2013/12/01 职场文书
教师自我鉴定范文
2014/03/20 职场文书
党政领导班子群众路线对照检查材料思想汇报
2014/09/27 职场文书
房屋出售授权委托书
2014/10/12 职场文书
个人投资合作协议书
2014/10/12 职场文书
小学生节水倡议书
2015/04/29 职场文书
幼儿园体操比赛口号
2015/12/25 职场文书
2016年幼儿园教师师德承诺书
2016/03/25 职场文书