• ffmpeg的部署踩坑及简单使用方式


    ffmpeg的使用方式有以下几种:

    使用原生安装包

    直接在ffmpeg官网上下载安装该软件,加入到环境变量中就可以使用了

    优点:简单,灵活,代码中也不用添加其他第三方的包

    缺点:需要手动安装ffmpeg,这点比较麻烦

    部署-windows

    在windows环境下,有时就算加入到了环境变量,在程序中依然有可能会报错找不到ffmpeg.exe文件,此时可以直接在配置文件中指定脚本路径,CmdHandleConfig

    @ConfigurationProperties(prefix = "cmd-handle")
    @Component
    @Data
    public class CmdHandleConfig {
       
        /**
         * ffmpeg的路径
         */
        private String ffmpegPath;
    }
    
    public static String getFfmpegPath() {
       
        CmdHandleConfig cmdHandleConfig = SpringUtil.getBean(CmdHandleConfig.class);
        if (StringUtils.hasText(cmdHandleConfig.getFfmpegPath())) {
       
            return cmdHandleConfig.getFfmpegPath();
        }
        OsInfo osInfo = SystemUtil.getOsInfo();
        String suffix = osInfo.isWindows() ? ".exe" : (osInfo.isMac() ? "-osx" : "");
        return "ffmpeg" + suffix;
    }
    

    说明:方法中使用的都是hutool的工具包;windows中的执行脚本是ffmpeg.exe,linux上是ffmpeg
    在linux上手动获取脚本路径,可使用以下命令:

    which ffmpeg
    
    部署-linux

    在linux上部署分为两种情况,直接使用宿主机环境安装和使用docker安装

    宿主机安装

    添加源并安装,这种装好的ffmpeg命令是已经自动加到了环境变量,不需要自己再手动添加

    echo > /etc/apt/sources.list
    echo  "deb http://mirrors.tuna.tsinghua.edu.cn/debian/ buster main contrib non-free" >/etc/apt/sources.list
    echo  "deb http://mirrors.tuna.tsinghua.edu.cn/debian/ buster-updates main contrib non-free" >>/etc/apt/sources.list
    echo  "deb http://mirrors.tuna.tsinghua.edu.cn/debian/ buster-backports main contrib non-free" >>/etc/apt/sources.list
    echo  "deb http://mirrors.tuna.tsinghua.edu.cn/debian-security buster/updates main contrib non-free" >>/etc/apt/sources.list
    apt-get -y update && apt-get install -y ffmpeg
    
    docker安装
    1. 如果是在Dockerfile中使用RUN命令在容器中安装,apt-get update命令会缺少源,就算在sources.list文件中添加了源也会失败,这里我不知道怎么解决,所以我采用的是第二种方式
    2. From一个基础镜像并run一个容器,在运行的容器中执行宿主机安装所使用的命令,添加源并进行安装即可,最后构建成自己的一个基础镜像。我自己也写了一个脚本用来构建ffmpeg的镜像,亲测是可以的。可以在资源
  • 相关阅读:
    华为python面试题目
    安卓手机APP开发__媒体开发部分__媒体项
    补码的最终理解
    VSCode中值得推荐的常用的33个高效前端插件「效率篇」 (1)
    算法设计与分析 实验4 动态规划法求扔鸡蛋问题
    mocha测试框架
    jenkins-pipeline语法总结(最全)
    微信朋友圈还可以这么玩?
    测试1号位的自我修养
    Elasticsearch 从入门到实践
  • 原文地址:https://blog.csdn.net/weixin_38312502/article/details/139600110