如何用php生成视频缩略图

2018-07-24  本文已影响0人  李小胖Julia

一些涉及到视频的业务,列表页显示视频列表需要视频的缩略图,一些云服务如七牛云等,可以再上传视频的同时自动生成缩略图,但很多公司由于各种原因,需要自己生成视频缩略图,下面提供一种php的实现方法,主要使用了FFMPEG。


什么是FFMPEG

FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多code都是从头开发的。
FFmpeg在Linux平台下开发,但它同样也可以在其它操作系统环境中编译运行,包括Windows、Mac OS X等。这个项目最早由Fabrice Bellard发起,2004年至2015年间由Michael Niedermayer主要负责维护。许多FFmpeg的开发人员都来自MPlayer项目,而且当前FFmpeg也是放在MPlayer项目组的服务器上。项目的名称来自MPEG视频编码标准,前面的"FF"代表"Fast Forward"。


如何安装FFMPEG

可能需要的问题


php使用FFMPEG

我选择了php类库,因为php FFMPEG 已经很久没有更新了,并且安装起来相对麻烦
安装类库方法:composer require php-ffmpeg/php-ffmpeg
private function getThumb($dir, $fileName, $name)
    {
        $ffmpeg = FFMpeg::create([
            'ffmpeg.binaries' => '/usr/local/bin/ffmpeg',
            'ffprobe.binaries' => '/usr/local/bin/ffprobe',
            'timeout' => 3600, // The timeout for the underlying process
            'ffmpeg.threads' => 12,   // The number of threads that FFMpeg should use
        ]);
        $video = $ffmpeg->open($dir . $fileName);
        $thumbFile = $dir . $name . "_thumb.jpg";
        $video->frame(TimeCode::fromSeconds(1))->save($thumbFile);
        return $name . "_thumb.jpg";
    }
上一篇 下一篇

猜你喜欢

热点阅读