PHP使用ffmpeg从视频中获取封面图片

使用php-ffmpeg库之前,需要先在你的系统环境内安装ffmpeg的扩展,安装好之后才可以使用php-ffmpeg库。

一、windows安装

        去官网先下载ffmpeg,官网:http://ffmpeg.org/

        找到下面图的位置下载,最后解压到电脑上(我是解压在tp6项目里的public下,因为路径要用到,当然放到服务器就不起作用了,windows只做开发环境的测试)

下面图是我放的项目位置

二、服务器安装(centos)

我是宝塔环境 直接在宝塔终端运行命令安装就行

wget http://download.bt.cn/install/ext/ffmpeg.sh && sh ffmpeg.sh

安装时间有点长别着急,安装完后可输入以下命令查看是否安装成功: 

ffmpeg -version

查看安装路径

 whereis ffmpeg

三、php使用ffmpeg

 composer 安装 PHP-FFMpeg

在项目根目录 执行以下命令就行 :

composer require php-ffmpeg/php-ffmpeg 

PHP使用ffmpeg从视频中获取封面图片

// PHP使用ffmpeg从视频中获取封面图片
    public function getVideoCover()
    {
        $url_video = input('url_video');    //视频路径(如:mp4格式的)
        // linux和windows环境执行不同的代码
        if (stristr(PHP_OS, 'WIN')) {
            //   windows环境
            $ffmpeg = \FFMpeg\FFMpeg::create([
                'ffmpeg.binaries' => 'ffmreg/bin/ffmpeg.exe',    # win安装的位置(我安装在项目里)
                'ffprobe.binaries' => 'ffmreg/bin/ffprobe.exe'    # win安装的位置
            ]);
        } elseif (stristr(PHP_OS, 'Linux')){
            //  linux环境
            $ffmpeg = \FFMpeg\FFMpeg::create([
                'ffmpeg.binaries'  => '/usr/local/bin/ffmpeg',    # 服务器安装的位置
                'ffprobe.binaries' => '/usr/local/bin/ffprobe'    # 服务器安装的位置
            ]);
        }
        // 打开视频文件
        $video = $ffmpeg->open($url_video);
        $frame = $video->frame(\FFMpeg\Coordinate\TimeCode::fromSeconds(1));    # 提取第1秒的图像
        $url_image = "static/" . md5(uniqid() . rand(1, 999)) . '.png';    # 生成图片路径
        $frame->save($url_image);    # 保存图片
        // 上传到oss服务器
        $res = AliyunService::uploadFile($url_image,'video');
        $res = json_decode($res,true);
        if(file_exists($url_image)){
            unlink($url_image);    # 删除本地图片
        }
        if($res['code'] == 1){
            return return_info(1,"",$res['data']);
        }
    }
 获取视频时长
// 打开视频文件
$video = $ffmpeg->open($url_video);
// 获取视频时长
$duration = $video->getFormat()->get('duration');
  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值