ffmpeg 视频截取第一帧参数配置: 网站找了很多资料,但是都不能满足要求,然后自己写下解决过程。

首先看自己PHP 版本,安全选项里面 php5.4  跟php5.6 是不一样的。去除里面的system 函数限制。

然后,继续调整 system 函数的参数。做到cmd里面不报错误。

方法:

 /**
* 获得视频文件的缩略图
* 接口编号 : T1807-07-01
*
* @param $file : 视频的位置
* @param $time : 截取时间
* @param $name : 截取之后的文件名称
*/
public function getVideoCover($file,$time =1) {
if(empty($time))$time = 1 ;//默认截取第一秒第一帧
$strLen = strlen($file); // 函数返回字符串的长度
$videoCover = substr($file,0,$strLen-4);
$videoCoverName = $videoCover.'.png';//缩略图命名 //exe 文件在 项目的上两级目录
$path = "D:\HwsHostMaster\phpweb\php56"; $str =$path . "/ffmpeg -ss ".$time." -i ".$file." -y -f mjpeg -vframes ".$time." -s 320x170 ".$videoCoverName; $result = system($str);
} $path 为php环境跟目录,因为 iis 8.5 服务器 不支持在web/跟目录,运行系统函数。 -s 后面的 320*170 为所要截取的图片的大小,单位为像素。 如果系统函数不能运行,先输出$str 字符串,在cmd命令行窗口 直接运行。 另外如果需要 ffmpeg.exe 这个 文件,可以邮箱找我 。
        //-i:输入文件名
//-r:设定帧 此处设为1帧
       // -y:覆盖
//-f:设定输出格式
//-ss 从指定时间截图
       //-s 图片宽高比例
//-vframes 设置转换多少桢(frame)的视频
//-an 不处理声音 ,用不到
其他参数自己百度搜下,这里只是用到的参数。

关于ffmpeg /iis 8.5 服务器下,视频截取第一帧参数配置的更多相关文章

  1. 用nginx进行同一个服务器下多域名的负载均衡配置

    用nginx进行同一个服务器下多域名的负载均衡配置 Nginx进行http负载均衡的模块是upstream Upstream可以进行多个配置,这样的话可以灵活的配置站点,但是注意的是upstream后 ...

  2. 七牛云上传视频并截取第一帧为图片(js实现)

    本文出自APICloud官方论坛, 感谢论坛版主 东冥羽的分享. 七牛云上传视频并截取第一帧作为视频的封面图. 使用js上传,模块videoPlayer截取第一帧(有专门的截图模块,但是我使用的有点问 ...

  3. 第五十二篇、 OC获取视频的第一帧图片thumbnailImage

    获取视频的第一帧图片 有时候我们拍摄完视频后,希望获取一张图片当作这个视频的介绍,这个图片thumbnailImage可以从视频的第一帧获取到. 我们的思路是先获取视频的URL,然后初始化一个MPMo ...

  4. 通视频URL截取第一帧图片

    为了方便直接给UIImage加个类别,以后什么时候使用可以直接调用. #import <UIKit/UIKit.h> @interface UIImage (Video) /** 通过视频 ...

  5. java获取视频播第一帧

    FFMPEG 功能很强大,做视频必备的软件.大家可通过 http://ffmpeg.org/ 了解.Windows版本的软件,可通过 http://ffmpeg.zeranoe.com/builds/ ...

  6. python服务器环境搭建(3)——参数配置

    前面我们已安装好了python服务器运行所需要的相关软件,而最重要最繁琐的就是参数配置,写这篇就踩了好多坑,花了好多时间,遇到了各种各样的问题.好了费话少说,直接进入本篇话题. PS:本人不是专业的运 ...

  7. PHP获取视频的第一帧与时长

    //获得视频文件的缩略图 function getVideoCover($file,$time,$name) { if(empty($time))$time = '1';//默认截取第一秒第一帧 $s ...

  8. java获取视频的第一帧

    //------------maven配置文件--------------- <dependency> <groupId>org.bytedeco</groupId> ...

  9. Linux服务器下日志截取

    我们经常需要去Linux服务器上查看服务运行日志,但是有时候日志文件很大看起来很不方便,这个时候我们需要对日志进行切割筛选出自己需要的日志,比如查看某段时间内的日志,命令如下:   sed -n '/ ...

随机推荐

  1. iOS开发之应用首次启动显示用户引导

    这个功能的重点就是在如何判断应用是第一次启动的. 其实很简单 我们只需要在一个类里面写好用户引导页面  基本上都是使用UIScrollView 来实现, 新建一个继承于UIViewController ...

  2. xadmin下设置“use_bootswatch = True”无效解决方法

    from xadmin import viewsimport xadmin class BaseSetting(object): enable_themes=True use_bootswatch=T ...

  3. C++的中英文字符串表示(string,wstring),使用wcout.imbue(std::locale("chs"));本地化解析编码

    在C++中字符串类的string的模板原型是basic_string template <class _Elem, class traits = char_traits<_Elem> ...

  4. MySQLNonTransientConnectionException: Data source rejected establishment of connection, message from server: "Too many connections"

    com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Data source rejected establish ...

  5. Docker笔记01-发布一个dotnetcore应用

    OS:Widows 10 IDE: VS2017 Docker:Docker Desktop for Windows Windows下安装Docker需要先启用Hyper-v 在Windows 容器的 ...

  6. 转载 《我用 TypeScript 语言的七个月》

    快速使用Romanysoft LAB的技术实现 HTML 开发Mac OS App,并销售到苹果应用商店中.   <HTML开发Mac OS App 视频教程> 土豆网同步更新:http: ...

  7. Delphi Thread.Queue与Synchronize的区别(差别: Synchronize是阻塞,Queue是非阻塞)

    前话:  其实大家要学会看源码, 我接下来要说的这些东东,与其等别人讲,还不如自己搞几个代码试一下,印象还深刻点 TThread.Queue和TThread.Synchronize的区别, 效果上:二 ...

  8. Sql一行拆分转多行

    select a.planid,b.mias, miaid into [1_cache3] from (select planid,mias=convert(xml,'<root>< ...

  9. JavaScript MVC框架PK:Angular、Backbone、CanJS与Ember(转载)

    原文地址:http://sporto.github.io/.../comparison-angular-backbone-can-ember/ 原文作者:Sebastian Porto @Twitte ...

  10. Python print不换行输出的替代方法

    Python的不换行输出好蛋疼,查了半天书没查到... python中print默认是换行的.想让它不换行,网上说可以在print后面加上逗号.如:print 'aaa',这个方法行的通,但是中间多了 ...