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 相关文章推荐
用Zend Encode编写开发PHP程序
Oct 09 PHP
通过html表格发电子邮件
Oct 09 PHP
一个简洁的多级别论坛
Oct 09 PHP
PHP新手上路(七)
Oct 09 PHP
PHP CKEditor 上传图片实现代码
Nov 06 PHP
php读取excel文件的简单实例
Aug 26 PHP
php使用mkdir创建多级目录入门例子
May 10 PHP
PHP动态规划解决0-1背包问题实例分析
Mar 23 PHP
PHP基于mssql扩展远程连接MSSQL的简单实现方法
Oct 08 PHP
简单实现PHP留言板功能
Dec 21 PHP
Yii2.0 RESTful API 基础配置教程详解
Dec 26 PHP
浅谈如何提高PHP代码质量之单元测试
May 28 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 新手入门教程
2009/08/03 PHP
php通用防注入程序 推荐
2011/02/26 PHP
基于PHP的cURL快速入门教程 (小偷采集程序)
2011/06/02 PHP
php获取根域名方法汇总
2014/10/28 PHP
tp框架(thinkPHP)实现三次登陆密码错误之后锁定账号功能示例
2018/05/24 PHP
javascript针对DOM的应用分析(二)
2012/04/15 Javascript
JS中实现简单Formatter函数示例代码
2014/08/19 Javascript
《JavaScript函数式编程》读后感
2015/08/07 Javascript
用jquery的attr方法实现图片切换效果
2017/02/05 Javascript
微信小程序微信支付接入开发实例详解
2017/04/12 Javascript
vue.js实例对象+组件树的详细介绍
2017/10/20 Javascript
微信小程序商品详情页的底部弹出框效果
2020/11/16 Javascript
jQuery each和js forEach用法比较
2019/02/27 jQuery
Vue + Element UI图片上传控件使用详解
2019/08/20 Javascript
p5.js码绘“跳动的小正方形”的实现代码
2019/10/22 Javascript
js实现拖拽元素选择和删除
2020/08/25 Javascript
[00:10]DOTA2 TI9勇士令状明日上线
2019/05/07 DOTA
python中的错误处理
2016/04/10 Python
python+matplotlib绘制3D条形图实例代码
2018/01/17 Python
Python数据类型之Set集合实例详解
2019/05/07 Python
python async with和async for的使用
2019/06/20 Python
Python调用shell cmd方法代码示例解析
2020/06/18 Python
IE8下CSS3选择器nth-child() 不兼容问题的解决方法
2016/11/16 HTML / CSS
浅谈css3新单位vw、vh、vmin、vmax的使用详解
2017/12/01 HTML / CSS
html5的input的required使用中遇到的问题及解决方法
2018/04/24 HTML / CSS
亚马逊西班牙购物网站:amazon西班牙
2017/03/06 全球购物
JAVA招聘远程笔试题
2015/07/23 面试题
专业幼师实习生自我鉴定范文
2013/12/08 职场文书
运动会入场式解说词
2014/02/18 职场文书
公司晚会主持词
2014/03/22 职场文书
关爱残疾人演讲稿
2014/05/24 职场文书
授权委托书怎么写
2014/09/25 职场文书
群众路线学习心得体会范文
2014/11/05 职场文书
给校长的建议书范文
2015/09/14 职场文书
Jsonp劫持学习
2021/04/01 PHP
Java基础——Map集合
2022/04/01 Java/Android