php 将视频第一帧转为封面图 ffmpeg

347 阅读1分钟

一、centos7安装ffmpeg

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
sudo yum install ffmpeg ffmpeg-devel -y

二、项目中安装php-ffmpeg composer require php-ffmpeg/php-ffmpeg

三、项目中使用php-ffmpeg

        $img = mt_rand(0,9999).uniqid().mt_rand(0,9999).mt_rand(0,9999).'.jpg';
        $file_path = date('Ymd').'/';
        $path= ROOT_PATH .'public/uploads/video/'.$file_path;
        $file_exists = file_exists($path);
        if(!$file_exists){
            mkdir($path);
        }
        $video_path = "*******/%E9%A3%9E%E4%B9%A620221012-143022.mp4";
        $save_file = $path.$img;

        //ffmpeg插件路径,1步下载下来存放的路径 这里我是用网上的这个发现虽然有文件,但是是无效的
        我这边就把它从这里面扔到了自己的项目,然后就对了
//        $config = [
//            'ffmpeg.binaries'  => '/user/bin/ffmpeg',
//            'ffprobe.binaries' =>  '/user/bin/ffprobe',
//        ];
        $config = [
            'ffmpeg.binaries'  => ROOT_PATH.'public/ffmpeg',
            'ffprobe.binaries' =>  ROOT_PATH.'public/ffprobe',
        ];
        $ffmpeg = FFMpeg::create($config);

        $video = $ffmpeg->open($video_path);
        $video->frame(TimeCode::fromSeconds(1))->save( $save_file);

        var_dump("OK");exit;

遇到的问题:

1、这里我第一个问题就是我PHP版本问题,然后我找到了这个文件就把这一块改了一下.

image.png

2、有一个**_open()函数需要解开禁用

小伙伴们!这样就完成了哦! QQ学习交流群:842167453,欢迎小伙伴加入一起学习。