Linux离线环境安装ffmpeg

文章目录

  • 一.离线安装nasm
  • [二.离线编译 FFmpeg](#二.离线编译 FFmpeg)
  • [三. 升级GCC](#三. 升级GCC)

一.离线安装nasm

安装汇编编译器:nasm官网

nasm-3.01.tar.gz

bash 复制代码
tar -zxvf nasm-3.01.tar.gz
cd nasm-3.01/
# 编译
./configure --prefix=/usr/local/nasm
make -j$(nproc)
make install
# 加入路径
echo 'export PATH=/usr/local/nasm/bin:$PATH' >> /etc/profile
source /etc/profile
# 验证
nasm -v

二.离线编译 FFmpeg

ffmpeg官网
选择合适系统的 ffmpeg_x.x.x.orig.tar.xz

bash 复制代码
tar -xvf ffmpeg_7.1.1.orig.tar.xz
cd ffmpeg-7.1/

# 要编译内置哪些功能自行查找网络相关配置
# 我仅需要 wav的标准化,统一响度,降噪,16k频率,降噪即可
./configure \
  --prefix=/usr/local/ffmpeg \
  --enable-gpl \
  --enable-version3 \
  --disable-debug \
  --disable-doc \
  --enable-static \
  --disable-ffplay

# 编译&安装
make -j$(nproc)
make install

# 加入PATH
echo 'export PATH=/usr/local/ffmpeg/bin:$PATH' >> /etc/profile
source /etc/profile

# 验证关键功能是否都支持。这是我需要的,自行参考网络
ffmpeg -filters | grep anlm
ffmpeg -filters | grep loudnorm
ffmpeg -encoders | grep pcm_s16le

三. 升级GCC

在联网linux服务器执行以下脚本

安装编译前置工具
sudo apt-get install build-essential libgmp-dev libmpfr-dev libmpc-dev flex bison texinfo

bash 复制代码
#!/bin/bash
set -e

# 可修改的变量
GCC_VERSION="8.5.0"
PREFIX="/usr/local/gcc-8.5.0"
BUILD_DIR="$HOME/build_gcc8"

mkdir -p "$BUILD_DIR"
cd "$BUILD_DIR"

# 安装依赖(Ubuntu/Debian)
sudo apt update
sudo apt install -y build-essential libgmp-dev libmpfr-dev libmpc-dev flex bison wget tar
# 安装依赖 (centos)
#sudo yum groupinstall -y "Development Tools"
#sudo yum install -y wget tar gmp-devel mpfr-devel libmpc-devel flex bison

# 下载 GCC 源码
wget -c https://ftp.gnu.org/gnu/gcc/gcc-${GCC_VERSION}/gcc-${GCC_VERSION}.tar.gz
tar -xf gcc-${GCC_VERSION}.tar.gz
cd gcc-${GCC_VERSION}

# 下载 prerequisites
./contrib/download_prerequisites

# 创建构建目录
mkdir -p build && cd build

# 配置
../configure --prefix=${PREFIX} \
             --disable-multilib \
             --enable-languages=c,c++ \
             --with-gmp=../gmp \
             --with-mpfr=../mpfr \
             --with-mpc=../mpc
# 编译
make -j$(nproc)

# 安装到指定目录
make install

# 打包
cd $(dirname ${PREFIX})
tar -czf gcc8-portable.tar.gz $(basename ${PREFIX})

echo "GCC 8 portable 已生成:$(pwd)/gcc8-portable.tar.gz"

若执行./contrib/download_prerequisites太慢.可以使用如下命令

bash 复制代码
# GMP
wget -c https://mirrors.tuna.tsinghua.edu.cn/gnu/gmp/gmp-6.1.0.tar.bz2

# MPFR
wget -c https://mirrors.tuna.tsinghua.edu.cn/gnu/mpfr/mpfr-3.1.4.tar.bz2

# MPC
wget -c https://mirrors.tuna.tsinghua.edu.cn/gnu/mpc/mpc-1.0.3.tar.gz
# isl 很多镜像源没找到,直接使用最后一行指令下载吧
wget -c https://ftpmirror.gnu.org/gnu/isl/isl-0.18.tar.bz2

./contrib/download_prerequisites

在内网服务器使用

bash 复制代码
# 假设你拷贝到 /tmp
sudo tar -xzf /tmp/gcc8-portable.tar.gz -C /

# 设置环境变量
export PATH=/opt/gcc-8/bin:$PATH
export LD_LIBRARY_PATH=/opt/gcc-8/lib64:$LD_LIBRARY_PATH

# 验证
gcc --version
# 输出 8.5.0
相关推荐
optimistic_chen21 小时前
【Redis系列】Java操作Redis客户端
java·linux·redis·客户端·服务端
Tfly__21 小时前
Ubuntu20.04安装Genesis(最新)
linux·人工智能·pytorch·ubuntu·github·无人机·强化学习
习惯就好zz21 小时前
在 Ubuntu 18.04 (WSL) 上配置 LazyVim
linux·ubuntu·nvim·lazyvim·1804
比奇堡派星星21 小时前
如何新加netlink
linux·驱动开发
济61721 小时前
linux(第十二期)--裸机实验(C 语言版 LED 灯实验)-- Ubuntu20.04
linux·c语言
二等饼干~za89866821 小时前
碰一碰发视频系统源码搭建部署技术分享
服务器·开发语言·php·音视频·ai-native
羑悻的小杀马特21 小时前
【Linux篇章】穿越网络迷雾:揭开 HTTP 应用层协议的终极奥秘!从请求响应到实战编程,从静态网页到动态交互,一文带你全面吃透并征服 HTTP 协议,打造属于你的 Web 通信利刃!
linux·运维·网络·http·操作系统·网络通信
网安CILLE21 小时前
Linux 命令大全(网络安全常用)
linux·运维·服务器·网络安全
CodeOfCC21 小时前
flutter-elinux 编译linux arm64程序
linux·flutter
米高梅狮子1 天前
7. Linux RAID 存储技术
linux·运维·服务器