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

作者 : admin 本文共1552个字,预计阅读时间需要4分钟 发布时间: 2024-06-17 共1人阅读

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的镜像,亲测是可以的。可以在资源
本站无任何商业行为
个人在线分享 » ffmpeg的部署踩坑及简单使用方式
E-->