IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 音视频处理 ffmpeg下载、编译和安装 -> 正文阅读

[系统运维]音视频处理 ffmpeg下载、编译和安装

创建文件夹

  • ffmpeg_sources? 存放源文件
  • ffmpeg_build? ? ? ?构建文件并安装库
  • bin? ? ? ? ? ? ? ? ? ? ? ?存放二进制可执行文件

安装依赖环境? 整体安装

sudo apt-get update -qq && sudo apt-get -y install \
  autoconf \
  automake \
  build-essential \
  cmake \
  git-core \
  libass-dev \
  libfreetype6-dev \
  libgnutls28-dev \
  libsdl2-dev \
  libtool \
  libva-dev \
  libvdpau-dev \
  libvorbis-dev \
  libxcb1-dev \
  libxcb-shm0-dev \
  libxcb-xfixes0-dev \
  meson \
  ninja-build \
  pkg-config \
  texinfo \
  wget \
  yasm \
  zlib1g-dev
  • 如果在安装上述文件时,有些包没有成功安装,可以单独指定命令进行安装
  • sudo apt-get install xx

安装依赖环境? 单独安装

NASM

  • 注意版本要 ≥ 2.13。本文安装版本是 2.15.05
  • 安装方式
cd ~/ffmpeg_sources && \
wget https://www.nasm.us/pub/nasm/releasebuilds/2.15.05/nasm-2.15.05.tar.bz2 && \
tar xjvf nasm-2.15.05.tar.bz2 && \
cd nasm-2.15.05 && \
./autogen.sh && \
PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" && \
make && \
make install

libx264

  • H.264 视频编码器。版本要 ≥ 118
  • 需要 ffmpeg 编译选项配置 --enable-gpl 和 --enable-libx264
  • sudo apt-get install libx264-dev

libx265

  • H.265/HEVC 视频编码器。版本 ≥ 68
  • 需要 ffmpeg 编译选项配置 --enable-gpl 和 --enable-libx265
  • sudo apt-get install libx265-dev libnuma-dev

libvpx

  • VP8/VP9 视频编码、解码器。版本 ≥ 1.4.0
  • 需要 ffmpeg 编译选项配置 --enable-libvpx
  • sudo apt-get install libvpx-dev

libfdk-aac

  • AAC 音频编码器
  • 需要 ffmpeg 编译选项配置 --enable-libfdk-aac
  • 如果配置包含了 --enable-gpl 需要同时添加 --enable-nonfree
  • sudo apt-get install libfdk-aac-dev

libmp3lame

  • mp3 音频编码器。版本 ≥ 3.98.3
  • 需要 ffmpeg 编译选项配置 --enable-libmp3lame
  • sudo apt-get install libmp3lame-dev

libopus

  • Opus音频解码器和编码器。版本 ≥ 1.1
  • 需要 ffmpeg 编译选项配置 --enable-libopus
  • sudo apt-get install libopus-dev

libunistring-dev

  • sudo apt-get install libunistring-dev

libdav1d

  • AV1 解码器,比libaom 快得多
  • 需要 ffmpeg 编译选项配置 --enable-libdav1d
  • 通过 Python 包索引完成
  • 要求0.49.0版本以上
  • sudo apt-get install python3-pip
  • sudo pip3 install --user meson
  • 问题:meson_options.txt:1:0: ERROR: Unknown type feature.错误是由于meson版本不匹配导致的
  • 解决办法:1,卸载apt 安装的meson;2,pip3 install --user meson;3,修改path路径使得pip安装的meson优先于系统meson被搜索到??export PATH=~/.local/bin:$PATH
  • 检测:分别在普通用户和root用户下使用命令 meson -v 检测版本,验证是否一致
  • 上述操作无误之后,继续执行
git clone --depth=1 https://code.videolan.org/videolan/dav1d.git && \
cd dav1d && \
mkdir build && cd build && \
meson --bindir="/usr/local/bin" .. && \
ninja && \
ninja install

libsvtav1

  • AV1 视频解码器和编码器。FFmpeg 只支持编码器,因此编译不支持解码器
  • 需要 ffmpeg 编译选项配置 --enable-libsvtav1
git clone --depth=1 https://github.com/OpenVisualCloud/SVT-AV1
cd SVT-AV1
cd Build
cmake .. -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=Release
make -j $(nproc)
sudo make install

编译FFmpeg

cd ~/ffmpeg_sources && \
wget -O ffmpeg-snapshot.tar.bz2 https://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2 && \
tar xjvf ffmpeg-snapshot.tar.bz2 && \
cd ffmpeg && \
PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure \
  --prefix="$HOME/ffmpeg_build" \
  --pkg-config-flags="--static" \
  --extra-cflags="-I$HOME/ffmpeg_build/include" \
  --extra-ldflags="-L$HOME/ffmpeg_build/lib" \
  --extra-libs="-lpthread -lm" \
  --ld="g++" \
  --bindir="$HOME/bin" \
  --enable-gpl \
  --enable-gnutls \
  --enable-libass \
  --enable-libfdk-aac \
  --enable-libfreetype \
  --enable-libmp3lame \
  --enable-libopus \
  --enable-libsvtav1 \
  --enable-libdav1d \
  --enable-libvorbis \
  --enable-libvpx \
  --enable-libx264 \
  --enable-libx265 \
  --enable-nonfree && \
PATH="$HOME/bin:$PATH" make && \
make install && \
hash -r

结果验证?

参考链接

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-05-07 11:29:31  更:2022-05-07 11:30:53 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 17:47:15-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码