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 COOKIE设置为浏览器进程
Jun 21 PHP
PHP 内存缓存加速功能memcached安装与用法
Sep 03 PHP
php !function_exists(&quot;T7FC56270E7A70FA81A5935B72EACBE29&quot;))代码解密
Jan 07 PHP
php用header函数实现301跳转代码实例
Nov 25 PHP
php实现12306余票查询、价格查询示例
Apr 17 PHP
又一个PHP实现的冒泡排序算法分享
Aug 21 PHP
PHP多线程类及用法实例
Dec 03 PHP
PHP使用array_fill定义多维数组的方法
Mar 18 PHP
使用symfony命令创建项目的方法
Mar 17 PHP
Yii2中OAuth扩展及QQ互联登录实现方法
May 16 PHP
PHP7生产环境队列Beanstalkd用法详解
May 19 PHP
php array_map()函数实例用法
Mar 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
什么是MVC,好东西啊
2007/05/03 PHP
php for 循环语句使用方法详细说明
2010/05/09 PHP
使用cookie实现统计访问者登陆次数
2013/06/08 PHP
php 人员权限管理(RBAC)实例(推荐)
2017/05/24 PHP
laravel 字段格式化 modle 字段类型转换方法
2019/09/30 PHP
JavaScript实现动态增加文件域表单
2009/02/12 Javascript
Ext 表单布局实例代码
2009/04/30 Javascript
JavaScript的eval JSON object问题
2009/11/15 Javascript
JavaScript 一行代码,轻松搞定浮动快捷留言-V2升级版
2010/04/02 Javascript
可以将word转成html的js代码
2010/04/11 Javascript
javascript间隔定时器(延时定时器)学习 间隔调用和延时调用
2014/01/13 Javascript
javascript event在FF和IE的兼容传参心得(绝对好用)
2014/07/10 Javascript
js调用百度地图及调用百度地图的搜索功能
2015/09/07 Javascript
jqGrid表格应用之新增与删除数据附源码下载
2015/12/02 Javascript
判断数组是否包含某个元素的js函数实现方法
2016/05/19 Javascript
js Canvas实现圆形时钟教程
2016/09/19 Javascript
JavaScript 控制字体大小设置的方法
2016/11/23 Javascript
js实现时间轴自动排列效果
2017/03/09 Javascript
[57:55]EG vs Fnatic 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
Python基础学习之函数方法实例详解
2019/06/18 Python
树莓派+摄像头实现对移动物体的检测
2019/06/22 Python
python 字符串常用函数详解
2019/09/11 Python
pytorch GAN伪造手写体mnist数据集方式
2020/01/10 Python
python实现在线翻译功能
2020/03/03 Python
python3实现将json对象存入Redis以及数据的导入导出
2020/07/16 Python
python中str内置函数用法总结
2020/12/27 Python
英国知名美妆护肤在线商城:Zest Beauty
2018/04/24 全球购物
linux面试题参考答案(10)
2016/10/26 面试题
小学美术教学反思
2014/02/01 职场文书
会计专业毕业自荐书范文
2014/02/08 职场文书
中学校庆方案
2014/03/17 职场文书
主管竞聘书范文
2014/03/31 职场文书
祖国在我心中演讲稿200字
2014/08/28 职场文书
2014年平安夜寄语
2014/12/08 职场文书
结婚堵门保证书
2015/05/08 职场文书
Java中CyclicBarrier和CountDownLatch的用法与区别
2021/08/23 Java/Android