php的ffmpeg

ffmpeg-php扩展

php视频缩略图,较常用的是ffmpeg-php

1: 安装 ffmpeg

ffmpeg的下载链接  http://ffmpeg.org/download.html

解压安装包

tar -jxvf ffmpeg-x.x.tar.bz2

进入目录

cd ffmpeg-x.x

编译安装

./configure --enable-shared && make && make install

安装完成之后 执行 ffmpeg -version

如果能够出现类似下列信息,说明ffmpeg安装成功。

1
2
3
4
5
6
7
8
9
10
ffmpeg version 2.5.11 Copyright (c) 2000-2016 the FFmpeg developers
built  on  Apr 17 2017 16:47:15 with gcc 4.8.5 (GCC) 20150623 (Red Hat 4.8.5-11)
configuration: --enable-shared
libavutil      54. 15.100 / 54. 15.100
libavcodec     56. 13.100 / 56. 13.100
libavformat    56. 15.102 / 56. 15.102
libavdevice    56.  3.100 / 56.  3.100
libavfilter     5.  2.103 /  5.  2.103
libswscale      3.  1.101 /  3.  1.101
libswresample   1.  1.100 /  1.  1.100

 2 安装ffmpeg-php

官方的下载链接

https://sourceforge.net/projects/ffmpeg-php/files/ffmpeg-php/

官方版本已经很久很久不更新了,我在centos 7 + php5.6&php7.1   centos6.5+php5  试了都不行。在configure完 make的时候会报错。

后来在github上找了一个版本。在centos7.2+php5.5.6 上编译安装成功 (centos7 + php7.1还是不行)

地址:    git clone https://github.com/tony2001/ffmpeg-php.git 

也可以访问我的百度云盘进行下载

https://pan.baidu.com/s/1skQTVlj

进入 ffmpeg-php目录 进行编译扩展

/usr/local/php/bin/phpize   

./configure --with-php-config=/usr/local/php/bin/php-config

make && make install

注意(如果make之后出现错误,那就是ffmpeg-php版本的问题,别再折腾了,换版本吧(或者降低php版本试试))。

在php的配置文件 php.ini中 添加  

1
extension=ffmpeg.so

重启php。在 phpinfo()中查看有无ffmpeg信息。

有的话就OK

或者执行 

1
/usr/local/php/bin/php -i |grep ffmpeg

 要是有输出的话OK


转载自:https://www.cnblogs.com/jkklearn/p/6737467.html

PHP可以借助php - ffmpeg这个插件来操作FFmpeg进行视频封面截取,它封装好了各种操作视频的命令,直接调用对应的方法即可[^1]。 另外,在ThinkPHP5框架下,还可以通过自定义扩展实现自动截取上传视频封面,示例代码如下: ```php <?php namespace admin\video; class video{ private $rootPath; //根路径 绝对路径 private $ffmpeg; //ffmpeg文件路径 private $outFileDir; //封面存储路径 绝对路径 private $fileName; //文件名 function __construct(){ $this->rootPath = ROOT_PATH.'public/'; $this->ffmpeg = 'data/extend/ffmpeg/ffmpeg.exe'; //引入ffmpeg.exe文件 $this->fileName = uniqid('video_').'.jpg'; $this->outFileDir = 'upload/videocover/'.date("Ymd",time()).'/'; } // 获取视频封面 尺寸跟随视频尺寸而定 function getVideoCover($file){ //待处理视频 $in_file = $this->rootPath.$file; //缩略图保存路径 $out_file = $this->rootPath.$this->outFileDir.$this->fileName; //shell脚本 $shell = "ffmpeg -i $in_file -y -f image2 -ss 1 -vframes 1 $out_file 2>&1"; //调用php的exec方法去执行脚本 exec($shell, $output, $return_val); //获取输出信息 // dump($output); return $this->outFileDir.$this->fileName; } } ``` 在上述代码里,通过构造函数对根路径、FFmpeg文件路径、封面存储路径和文件名进行初始化。`getVideoCover`方法接收一个视频文件作为参数,构建FFmpeg命令并利用`exec`函数执行该命令,最终返回截取的封面文件路径[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值