美文网首页
如何用php生成视频缩略图

如何用php生成视频缩略图

作者: 李小胖Julia | 来源:发表于2018-07-24 08:59 被阅读0次

    一些涉及到视频的业务,列表页显示视频列表需要视频的缩略图,一些云服务如七牛云等,可以再上传视频的同时自动生成缩略图,但很多公司由于各种原因,需要自己生成视频缩略图,下面提供一种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

    • 下载 ffmpeg
      ffmpeg的下载链接 http://ffmpeg.org/download.html
    • 解压安装包
      tar -jxvf ffmpeg-x.x.tar.bz2
    • 进入目录
      cd ffmpeg-x.x
    • 编译安装
      ./configure --enable-shared && make && make install
      安装完成之后 执行 ffmpeg -version输出相关信息,说明ffmpeg安装成功。

    可能需要的问题

    • yasm没有
      解决yum install install yasm
    • 报lib不存在
      解决ldconfig

    php使用FFMPEG

    • 首先需要服务器安装好FFMPEG 软件。
    • 安装php扩展或者使用类库
    我选择了php类库,因为php FFMPEG 已经很久没有更新了,并且安装起来相对麻烦
    安装类库方法:composer require php-ffmpeg/php-ffmpeg
    
    • 使用方法具体见github
      如下代码使用了视频第一秒的画面作为缩略图。
    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";
        }
    

    相关文章

      网友评论

          本文标题:如何用php生成视频缩略图

          本文链接:https://www.haomeiwen.com/subject/ojxemftx.html