PHP上传视频时截取图片作为封面,安装php-ffmpeg扩展

时间:2024-03-28 09:44:39

最近遇到了上传视频并在视频中截取一张图片作为封面的问题,于是乎各种百度,结果都是一个关键词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

PHP上传视频时截取图片作为封面,安装php-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上传视频时截取图片作为封面,安装php-ffmpeg扩展出现上图所示,恭喜你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扩展已经安装好了

PHP上传视频时截取图片作为封面,安装php-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);

}

大功告成!!!