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中目录,文件操作详谈
Mar 19 PHP
PHP 日常开发小技巧
Sep 23 PHP
php 无法载入mysql扩展
Mar 12 PHP
php 上传文件类型判断函数(避免上传漏洞 )
Jun 08 PHP
php自动加载机制的深入分析
Jun 08 PHP
浅析php数据类型转换
Jan 09 PHP
Drupal7中常用的数据库操作实例
Mar 02 PHP
CI框架中通过hook的方式实现简单的权限控制
Jan 07 PHP
PHP 文件上传后端处理实用技巧方法
Jan 06 PHP
php转换上传word文件为PDF的方法【基于COM组件】
Jun 10 PHP
laravel框架select2多选插件初始化默认选中项操作示例
Feb 18 PHP
使用php的mail()函数实现发送邮件功能
Jun 03 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文件中是否含有bom的函数
2012/05/31 PHP
php模板原理讲解
2013/11/13 PHP
php权重计算方法代码分享
2014/01/09 PHP
php上传图片之时间戳命名(保存路径)
2014/08/15 PHP
浅谈thinkphp的实例化模型
2015/01/04 PHP
PHP通过串口实现发送短信
2015/07/08 PHP
js 跨域和ajax 跨域问题小结
2009/07/01 Javascript
JavaScript获取XML数据附示例截图
2014/03/05 Javascript
js中document.write的那点事
2014/12/12 Javascript
纯js代码实现未知宽高的元素在指定元素中垂直水平居中显示
2015/09/12 Javascript
JS+CSS实现简易的滑动门效果代码
2015/09/24 Javascript
JS中的进制转换以及作用
2016/06/26 Javascript
Bootstrap对话框使用实例讲解
2016/09/24 Javascript
Cropper.js 实现裁剪图片并上传(PC端)
2017/08/20 Javascript
JS实现碰撞检测的方法分析
2018/01/19 Javascript
基于Vue2x的图片预览插件的示例代码
2018/05/14 Javascript
AngularJs返回前一页面时刷新一次前面页面的方法
2018/10/09 Javascript
详解微信小程序与内嵌网页交互实现支付功能
2018/10/22 Javascript
html2canvas属性和使用方法以及如何使用html2canvas将HTML内容写入Canvas生成图片
2020/01/12 Javascript
JS中准确判断变量类型的方法
2020/06/01 Javascript
Python闭包函数定义与用法分析
2018/07/20 Python
python的中异常处理机制
2018/08/30 Python
浅谈python写入大量文件的问题
2018/11/09 Python
python matplotlib中的subplot函数使用详解
2020/01/19 Python
jupyter notebook tensorflow打印device信息实例
2020/04/20 Python
windows下的pycharm安装及其设置中文菜单
2020/04/23 Python
一份全面的PHP面试问题考卷
2012/07/15 面试题
自荐信包含哪些内容
2013/10/30 职场文书
环境科学专业个人求职信
2013/12/15 职场文书
护理中职生求职信范文
2014/02/24 职场文书
学习党代会心得体会
2014/09/05 职场文书
2014年车间主任工作总结
2014/12/10 职场文书
优秀班主任先进事迹材料
2014/12/16 职场文书
详解CSS伪元素的妙用单标签之美
2021/05/25 HTML / CSS
canvas实现贪食蛇的实践
2022/02/15 Javascript
tree shaking对打包体积优化及作用
2022/07/07 Java/Android