PHP支持ffmpeg,便用ffmpeg命令处理视频,开启exec权限
2017-08-23 09:11
986 查看
··开始先说点我开发遇到的问题,我用的环境是IIS7.5+PHP5.4+MYSQL,系统是windows!要开发一个视频上传播放的功能,需要获取视频信息(宽高大小时间等等~),还是截视频帧做封面!
··然后我就想用ffmpeg处理,我用的是thinkphp 框架,搞了半天集成好了,提示系统没有安装ffmpeg,原来还要安装,又在网上找了一大圈!全试了遍,基本上都是修改php.ini文件,加几个dll文件到系统文件里,php_ffmpeg.dll加到PHP里,还是没用,然后可能是PHP和ffmpeg版本不匹配,然后找了版本一致的又试了下,还是不行,我当时要抓狂了!后来又看到网上的说用IIS不行,因为这个方法有用的是apache服务器!我又自己装了一个xampp集成环境,小试了一下,还是不行,因开发问题,还是不想用apache,就没有尝试了!
既然集成的不行,那我就用外部命令,因为这个不需要版本匹配(也不知道是不是真的需要匹配),反正也可以达到我的目的,在网上下载了ffmpeg的win64安装包(文章后面我会放上需要的软件,有需要的可以下载),解压文件夹放到D:\ffmpeg,如图:
就是这样,视频是我自己的,然后在系统环境变量path里加上bin的路径D:\ffmpeg\bin;,如图:
这个时候应该可以使用命令行执行了,win+R打开运行,输入cmd回车,我用ffmpeg的命令截取视频第一帧保存图片:ffmpeg -i d:\ffmpeg\test.mp4 -y -f image2 -t 0.001 -s 352x240 d:\ffmpeg\abcd.jpg
然后会输出一大堆东西,在看下d盘ffmpeg的目录下,此时多了一张abcd.jpg的图片
说明这个时候ffmpeg就安装好了!
最后我们就是要用这个命令在PHP环境来执行,首先在根目录下写一个indexs.php文件
确定重启IIS服务器,再用网页打开indexs.php,如果数组里输出内容就成功了,如果提示:Warning: exec() has been disabled for security reasons
这就是PHP没有权限执行exec,找到PHP目录下的php.ini文件,safe_mode要关掉,disable_functions里把exec去掉,最好备份你修改的文件!
重启IIS服务器,看出数据输出内容,不提示报错说明成功了!具体方法怎么处理视频我还没做,这个相信也不难,我放几个我要用到的ffmpeg命令,如果后面需要我写的PHP处理视频代码,在下面留言!(本帖不保证所有都能成功,本人也是菜鸟一个!勿喷~)
ffmpeg代码(我用的都是绝对路径,以下命令我全测试过,保证没有问题!)
ffmpeg安装文件:
http://download.csdn.net/download/ysjyygywfn/9946052
··然后我就想用ffmpeg处理,我用的是thinkphp 框架,搞了半天集成好了,提示系统没有安装ffmpeg,原来还要安装,又在网上找了一大圈!全试了遍,基本上都是修改php.ini文件,加几个dll文件到系统文件里,php_ffmpeg.dll加到PHP里,还是没用,然后可能是PHP和ffmpeg版本不匹配,然后找了版本一致的又试了下,还是不行,我当时要抓狂了!后来又看到网上的说用IIS不行,因为这个方法有用的是apache服务器!我又自己装了一个xampp集成环境,小试了一下,还是不行,因开发问题,还是不想用apache,就没有尝试了!
既然集成的不行,那我就用外部命令,因为这个不需要版本匹配(也不知道是不是真的需要匹配),反正也可以达到我的目的,在网上下载了ffmpeg的win64安装包(文章后面我会放上需要的软件,有需要的可以下载),解压文件夹放到D:\ffmpeg,如图:
就是这样,视频是我自己的,然后在系统环境变量path里加上bin的路径D:\ffmpeg\bin;,如图:
这个时候应该可以使用命令行执行了,win+R打开运行,输入cmd回车,我用ffmpeg的命令截取视频第一帧保存图片:ffmpeg -i d:\ffmpeg\test.mp4 -y -f image2 -t 0.001 -s 352x240 d:\ffmpeg\abcd.jpg
然后会输出一大堆东西,在看下d盘ffmpeg的目录下,此时多了一张abcd.jpg的图片
说明这个时候ffmpeg就安装好了!
最后我们就是要用这个命令在PHP环境来执行,首先在根目录下写一个indexs.php文件
<?php exec("dir",$output,$return_val); print_r($output); print_r($return_val);在网页上输入indexs.php的网址!Warning: exec(): Unable to fork,这个提示应该是没有用户权限,然后打开IIS管理器,找到应用程序池-》找到你的对应网站池-》高级设置-》
确定重启IIS服务器,再用网页打开indexs.php,如果数组里输出内容就成功了,如果提示:Warning: exec() has been disabled for security reasons
这就是PHP没有权限执行exec,找到PHP目录下的php.ini文件,safe_mode要关掉,disable_functions里把exec去掉,最好备份你修改的文件!
重启IIS服务器,看出数据输出内容,不提示报错说明成功了!具体方法怎么处理视频我还没做,这个相信也不难,我放几个我要用到的ffmpeg命令,如果后面需要我写的PHP处理视频代码,在下面留言!(本帖不保证所有都能成功,本人也是菜鸟一个!勿喷~)
ffmpeg代码(我用的都是绝对路径,以下命令我全测试过,保证没有问题!)
切视频第一帧保存图片 ffmpeg -i e:\girl.mp4 -y -f image2 -t 0.001 -s 352x240 e:\a.jpg 把视频的前30帧转换成一个Animated Gif ffmpeg -i e:\girl.mp4 -vframes 100 -y -f gif e:\a.gif 截取指定时间的缩微图,-ss后跟的时间单位为秒 ffmpeg -i e:\girl.mp4 -y -f image2 -ss 28 -t 0.001 -s 350x240 e:\test.jpg 输出视频详细信息 ffprobe -v quiet -print_format json -show_format -show_streams e:\girl.mp4
ffmpeg安装文件:
http://download.csdn.net/download/ysjyygywfn/9946052
相关文章推荐
- java封装FFmpeg命令,支持原生ffmpeg全部命令,实现FFmpeg多进程处理与多线程输出控制(开启、关闭、查询),rtsp/rtmp推流、拉流
- java封装FFmpeg命令,支持原生ffmpeg全部命令,实现FFmpeg多进程处理与多线程输出控制(开启、关闭、查询),rtsp/rtmp推流、拉流
- java封装FFmpeg命令,支持原生ffmpeg全部命令,实现FFmpeg多进程处理与多线程输出控制(开启、关闭、查询),rtsp/rtmp推流、拉流
- java封装FFmpeg命令,支持原生ffmpeg全部命令,实现FFmpeg多进程处理与多线程输出控制(开启、关闭、查询),rtsp/rtmp推流、拉流
- php与ffmpeg和mencoder处理视频
- wamp下配置ffmpeg-php 以及处理音乐视频文件方法
- 使用php ffmpeg处理视频
- wamp下配置ffmpeg-php 以及处理音乐视频文件方法
- FFMPEG-PHP处理音乐视频文件方法
- windows下安装ffmpeg(php视频处理扩展)
- 几条 ffmpeg 视频处理命令
- 19个常用的ffmpeg视频处理命令
- Ffmpeg 处理视频命令
- Ffmpeg 处理视频命令
- centos安装ffmpeg-php处理视频资源
- Windows 10预览版14316开启Bash命令支持
- FFmpeg转HTML5支持的视频格式
- PHP源码安装开启GD库并支持JPEG
- linux,Centos 6.3 yum安装Nginx+php+Mysql,配置防火墙,开启,关闭端口命令
- Linux常用权限处理命令——课堂笔记