• windows安装配置ffmpeg


    ffmpeg是一个开源的音视频转码工具,它提供了录制、转换以及流化音视频的完整解决方案,可以转码、压制、提取、截取、合并、录屏等。
    一、下载FFmpeg

    http://ffmpeg.org/download.html

    二、FFmpeg组成

        构成FFmpeg主要有三个部分,

        2.1第一部分是四个作用不同的工具软件,分别是:ffmpeg.exe,ffplay.exe,ffserver.exe和ffprobe.exe。

    • ffmpeg.exe:音视频转码、转换器
    • ffplay.exe:简单的音视频播放器
    • ffserver.exe:流媒体服务器
    • ffprobe.exe:简单的多媒体码流分析器

        2.2第二部分是可以供开发者使用的SDK,为各个不同平台编译完成的库。如果说上面的四个工具软件都是完整成品形式的玩具,那么这些库就相当于乐高积木一样,我们可以根据自己的需求使用这些库开发自己的应用程序。这些库有:

    • libavcodec:包含音视频编码器和解码器
    • libavutil:包含多媒体应用常用的简化编程的工具,如随机数生成器、数据结构、数学函数等功能
    • libavformat:包含多种多媒体容器格式的封装、解封装工具
    • libavfilter:包含多媒体处理常用的滤镜功能
    • libavdevice:用于音视频数据采集和渲染等功能的设备相关
    • libswscale:用于图像缩放和色彩空间和像素格式转换功能
    • libswresample:用于音频重采样和格式转换等功能

    二、下载工具

     在官网上我们可以找到"Download"页面,该页上可以下载FFmpeg的工具、库和源代码等。在选择"Windows Packages"下的Windows Builds后,会跳转到Windows版本的下载页面:

    1.下载后解压到指定目录(如D盘),如:D:ffmpegin,把这个地址设置成环境变量(这个应该都会,作用就是在任意目录都可以运行它的exe命令)

    2.设置好cmd运行命令 ffmpeg -version,应该如下如:

    参:https://www.jianshu.com/p/2b609afb9800

    https://www.cnblogs.com/xiezhidong/p/6924775.html

    获取视频封面图: https://www.cnblogs.com/jxl1996/p/10138964.html

    <?php
    /**
     * Created by PhpStorm.
     * User: Administrator
     */
    
    
    getVideoCover("C:\Users\Administrator\Desktop\tmp\1233\25.mp4");
    
    
    /**
     * ffmpeg百度云盘下载地址:https://pan.baidu.com/s/1Am_x0abBvXTrbCFPHs5e9Q
     * 提取码:4y2r
     * 获取视频封面图片
     * @param string $inFile 视频文件地址
     * @param int $time 截图的秒数
     * @param int $width 图片宽度
     * @param int $height 图片高度
     */
    function getVideoCover($inFile, $time = 1, $width = 320, $height = 240)
    {
        //项目根目录
        if(!defined('_PHP_FILE_')) {
                define('IS_CGI', (0 === strpos(PHP_SAPI, 'cgi') || false !== strpos(PHP_SAPI, 'fcgi')) ? 1 : 0);
            if(IS_CGI) {
                //CGI/FASTCGI模式下
                $_temp  = explode('.php',$_SERVER['PHP_SELF']);
                define('_PHP_FILE_',    rtrim(str_replace($_SERVER['HTTP_HOST'],'',$_temp[0].'.php'),'/'));
            }else {
                define('_PHP_FILE_',    rtrim($_SERVER['SCRIPT_NAME'],'/'));
            }
        }
        if(!defined('__ROOT__')) {
            $_root  =   rtrim(dirname(_PHP_FILE_),'/');
            var_dump(dirname(_PHP_FILE_),$_root);
            define('__ROOT__',  (($_root=='/' || $_root=='\')?'':$_root));
        }
            
        //文件根目录
        $rootPath = realpath(__ROOT__) . './Public';
        
    
        //输入文件路径
        //$inFile = $rootPath . $inFile;
    
        //输出文件名
        $outFileName = uniqid('video_') . ".jpg";
    
        //输出文件目录
        $outFileDir = '/uploads/videocover/' . date("Ymd", time()) . '/';
        if (!is_dir($rootPath . $outFileDir)) {
            mkdir($rootPath . $outFileDir, 0777, true);
        }
        //输出文件路径
        $outFile = $rootPath . $outFileDir . $outFileName;
    
        //ffmpeg.exe文件路径
        //$ffmpeg = realpath(__ROOT__) . './ffmpeg/ffmpeg.exe';
        $ffmpeg = 'D:\ffmpeg\bin\ffmpeg.exe ';
    
        //运行命令
        $command = $ffmpeg . " -i " . $inFile . " -y -f image2 -t {$time} -s {$width}x{$height} " . $outFile;
        echo $command;
        system($command);//有可能要修改php.ini文件
        exec($command);
        return $outFileDir . $outFileName;
    }

    其他有可能用到的文字:

    https://www.jianshu.com/p/4664ee042772

    https://www.cnblogs.com/peteremperor/p/6477743.html

    https://github.com/PHP-FFMpeg/PHP-FFMpeg

  • 相关阅读:
    华为云亮相QCon2020深圳站,带你体会大厂的云原生玩法与秘诀
    没有它你的DevOps是玩不转的,你信不?
    开发实践丨用小熊派STM32开发板模拟自动售货机
    【基于C#的ASP.NET】错误篇1——用户系统+管理员系统CS1061: “ASP.manage_aspx”不包含“SqlDataSource1_Selecting”的定义
    阿里云高级技术专家白常明:边缘云的技术挑战和应用创新
    T级内存,创建效率提升10倍以上,阿里云 KVM异构虚拟机启动时间优化实践
    终极清单来了!阿里云双11爆款揭晓
    2020阿里云双110.73折起,爆款提前抢大促全攻略
    直面最大挑战双11 阿里数据中台为商家带来确定性保障
    OpenYurt 深度解读:如何构建 Kubernetes 原生云边高效协同网络?
  • 原文地址:https://www.cnblogs.com/fps2tao/p/14234396.html
Copyright © 2020-2023  润新知