最近遇到了上传视频并在视频中截取一张图片作为封面的问题,于是乎各种百度,结果都是一个关键词ffmpeg。废话不多说,开整!我的服务器是centos,那么就以centos为例。
1、升级系统
sudo yum install epel-release -y
sudo yum update -y
sudo shutdown -r now
2、安装Nux Dextop Yum 源
1) CentOS 7
sudo rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm
2) CentOS 6
sudo rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el6/x86_64/nux-dextop-release-0-2.el6.nux.noarch.rpm
3、安装FFmpeg 和 FFmpeg开发包
sudo yum install ffmpeg ffmpeg-devel -y
4、测试是否安装成功
ffmpeg
出现上图所示就安装成功了。
5、下载ffmpeg-php扩展并编译安装
git clone https://github.com/nilsringersma/ffmpeg-php # 下载ffmpeg-php的相关文件
cd ffmpeg-php # 转到 ffmpeg-php 的目录
/www/server/php/56/bin/phpize # 运行 phpize --此目录为php安装目录
./configure --with-php-config=/www/server/php/56/bin/php-config --enable-skip-gd-check # 配置
make # 编译
make install # 安装
出现上图所示,恭喜你PHP扩展安装成功
6、最后一步,在php.ini中引入扩展,将如下代码加入php.ini最下面保存即可,路径为上一步的路径
extension=/usr/local/php-5.6/lib/php/extensions/no-debug-non-zts-20131226/ffmpeg.so
7、重启php-fpm,查看PHPinfo发现ffmpeg扩展已经安装好了
8、在php里的运用
function createVideoThumb($fileName,$dir,$file = null){
$movie = new ffmpeg_movie($dir.'/'.$fileName);//这里就是视频的存储路径
$ff_frame = $movie->getFrame(1);
$gd_image = $ff_frame->toGDImage();
$filenames =substr($fileName,0,strrpos($fileName,'.'));
$img="./upload/".$filenames."_video.jpg";//存图片的路径
imagejpeg($gd_image, $img);
imagedestroy($gd_image);
}
大功告成!!!