美文网首页
ffmpeg使用总结

ffmpeg使用总结

作者: 安之烟波客 | 来源:发表于2021-04-22 19:29 被阅读0次

    ffmpeg介绍

    Fmpeg 是领先的多媒体框架,能够解码、编码、转码、混合、解密、流媒体、过滤和播放人类和机器创造的几乎所有东西。它支持最晦涩的古老格式,直到最尖端的格式。无论它们是由某个标准委员会、社区还是公司设计的。它还具有高度的便携性。

    FFmpeg 可以在 Linux、Mac OS X、Microsoft Windows、BSDs、Solaris 等各种构建环境、机器架构和配置下编译、运行,并通过测试基础设施 FATE。

    它包含了 libavcodec、libavutil、libavformat、libavfilter、libavdevice、libswscale 和 libswresample,可以被应用程序使用。还有 ffmpeg、ffplay 和 ffprobe,可以被终端用户用于转码和播放。

    使用步骤

    1. 首先下载
      windows下载地址: https://www.gyan.dev/ffmpeg/builds/
      linux下载地址:http://ffmpeg.org/download.html

    windows版本下载下来不需要安装,直接解压到本地任何一个可以访问的目录即可,Linux需要解压收进行编译安装,在本篇文章最后附带讲一下安装步骤

    1. 在项目中使用
      我自己的项目用的框架是TP6.0,所以直接在项目根目录下运行composer命令即可,可参考官方文档
    composer require php-ffmpeg/php-ffmpeg
    

    然后就是直接上代码:

    <?php
    namespace app\controller;
    
    use app\BaseController;
    use FFMpeg\Coordinate\TimeCode;
    use FFMpeg\FFMpeg;
    
    class Index extends BaseController
    {
        public function index()
        {
            $config = [
                'ffmpeg.binaries'  => 'D:\Program Files\ffmpeg\bin\ffmpeg.exe', // 自己第一步解压的目录文职
                'ffprobe.binaries' => 'D:\Program Files\ffmpeg\bin\ffprobe.exe', // 自己第一步解压的目录文职
                'timeout'          => 3600, // The timeout for the underlying process
                'ffmpeg.threads'   => 12,   // The number of threads that FFMpeg should use
            ];
            $ffmpeg = FFMpeg::create($config);
            $video = $ffmpeg->open($this->app->getRootPath()."public/static/demo.mp4");
            $video->frame(TimeCode::fromSeconds(2))->save("demo.jpg");
            halt($video);
        }
    
    }
    
    

    直接到public目录下找demo.jpg就可以了,在实际开发过程中需要指定合理的缩略图存储位置


    image.png

    Centos下安装ffmpeg

    1. 下载
      wget https://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2
    
    1. 解压和安装
      下载完之后先进行解压并打开目录
    tar axvf ffmpeg-snapshot.tar.bz2 
    cd ffmpeg
    
    
    1. 配置、编译和安装
    ./configure --prefix=/data/localffmpeg  // /data/localffmpeg 我自己的安装目录编译查找
    make && make install
    

    不出意外的情况下就直接安装成功了(这个编译和安装的过程是相当的漫长。。。:) ),在我自己执行编译的时候提示一个nasm/yasm not found or too old. Use --disable-x86asm for a crippled build.这样的错误,是因为这边没有安装yasm或者yasm的版本太老的问题,所以重新安装一下yasm就可以了,

    yum install yasm 
    

    等待安装结束之后就可以再次执行上面的第三步

    相关文章

      网友评论

          本文标题:ffmpeg使用总结

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