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
文章推荐系统(三)
Oct 09 PHP
PHP 模拟$_PUT实现代码
Mar 15 PHP
php中突破基于HTTP_REFERER的防盗链措施(stream_context_create)
Mar 29 PHP
浅析php中抽象类和接口的概念以及区别
Jun 27 PHP
PHP调用MsSQL Server 2012存储过程获取多结果集(包含output参数)的详解
Jul 03 PHP
php json与xml序列化/反序列化
Oct 28 PHP
php分页函数示例代码分享
Feb 24 PHP
PHP删除指定目录中的所有目录及文件的方法
Feb 26 PHP
php生成图片验证码-附五种验证码
Aug 19 PHP
PHP中的数组处理函数实例总结
Jan 09 PHP
php in_array() 检查数组中是否存在某个值详解
Nov 23 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加密解密的代码
2007/07/16 PHP
php+ajax实现无刷新分页
2015/11/18 PHP
PHP htmlentities()函数用法讲解
2019/02/25 PHP
js 图片缩放(按比例)控制代码
2009/05/27 Javascript
js 与 php 通过json数据进行通讯示例
2014/03/26 Javascript
jQuery中remove()方法用法实例
2014/12/25 Javascript
JavaScript 学习笔记之数据类型
2015/01/14 Javascript
jquery带翻页动画的电子杂志代码分享
2015/08/21 Javascript
学习使用bootstrap的modal和carousel
2016/12/09 Javascript
微信小程序侧边栏滑动特效(左右滑动)
2017/01/23 Javascript
JavaScript实现鼠标点击导航栏变色特效
2017/02/08 Javascript
Angular4实现动态添加删除表单输入框功能
2017/08/11 Javascript
jQuery简单实现的HTML页面文本框模糊匹配查询功能完整示例
2018/05/09 jQuery
Vue项目全局配置页面缓存之按需读取缓存的实现详解
2018/08/01 Javascript
vue.js template模板的使用(仿饿了么布局)
2018/08/13 Javascript
VUE-Table上绑定Input通过render实现双向绑定数据的示例
2018/08/27 Javascript
Vue发布项目实例讲解
2019/07/17 Javascript
layui在form表单页面通过Validform加入简单验证的方法
2019/09/06 Javascript
使用IPython来操作Docker容器的入门指引
2015/04/08 Python
python多进程和多线程究竟谁更快(详解)
2017/05/29 Python
python生成器,可迭代对象,迭代器区别和联系
2018/02/04 Python
python 统计数组中元素出现次数并进行排序的实例
2018/07/02 Python
Flask框架踩坑之ajax跨域请求实现
2019/02/22 Python
python实现的登录与提交表单数据功能示例
2019/09/25 Python
python字符串,元组,列表,字典互转代码实例详解
2020/02/14 Python
用CSS3实现无限循环的无缝滚动的实例代码
2017/07/04 HTML / CSS
html5实现canvas阴影效果示例
2014/05/07 HTML / CSS
如何避免常见的6种HTML5错误用法
2017/11/06 HTML / CSS
详解基于canvas的视频遮罩插件
2018/01/04 HTML / CSS
天网面试题
2013/04/07 面试题
网页设计个人找工作求职信
2013/11/28 职场文书
幼儿园六一儿童节文艺汇演主持词
2014/03/21 职场文书
超市商业计划书
2014/05/04 职场文书
单位推荐信范文
2015/03/27 职场文书
教师节班会开场白
2015/06/01 职场文书
和领导吃饭祝酒词
2015/08/11 职场文书