ffmpeg使用总结

2021-04-22  本文已影响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 

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

上一篇下一篇

猜你喜欢

热点阅读