慕尼黑美食图鉴 - 视频相关
type: channel
link: https://nizhfpoi.moe/index.php/tag/video_related/
items: FFmpeg和MPV在Ubuntu24.04的安装过程

FFmpeg和MPV在Ubuntu24.04的安装过程
type: item
date: 2023-05-15T20:56:00+00:00
description: 简介由于之前常用的安装FFmpeg的PPA变成了收费的，以后只能自己从源码编译FFmpeg和MPV，这里记录一下操作流程。安装FFmpeg根据这里的官方的教程可以比较简单地完成FFmpeg的编译，但通常没必要装到用户的home目录，所以要更改一些选项。注意MPV最新版可能需求FFmpeg-6.0以上，所以源码直接下最新的就好。安装依赖先装上一些apt能装的依赖。统计并不全，如果编译过程提示找不到xxx，那就先试试sudo apt-get install libxxx-dev。有的包可能会出现apt显示已安装，但编译器还是会说找不到.so文件，可能是因为之前卸载包时候没有卸干净，这时候就要sudo apt-get install libxxx-dev --reinstall来重装一下这些包。下面这些包从Ubuntu 20.04开始就有提供。sudo apt-get update sudo apt-get install \ autoconf \ automake \ build-essential \ cmake \ git \ libfreetype-dev \ libgnutls28-dev \ libmp3lame-dev \ libsdl2-dev \ libtool \ libva-dev \ libvdpau-dev \ libvorbis-dev \ libxcb1-dev \ libxcb-shm0-dev \ libxcb-xfixes0-dev \ libunistring-dev \ libaom-dev \ libx264-dev \ libx265-dev \ libnuma-dev \ libvpx-dev \ libfdk-aac-dev \ libopus-dev \ libjpeg-dev \ pkg-config \ texinfo \ wget \ yasm \ nasm \ zlib1g-dev其中，libx264用于H.264编码，libx265和libnuma用于H.265编码，libvpx用于VP9编码，libfdk-aac用于AAC音频编码，libopus用于Opus音频编码。用于编译的meson和ninja在Ubuntu 24.04可以直接用apt安装。sudo apt-get install ninja-build meson老版本的Ubuntu可能apt仓库里没有新版的meson和ninja，可以用pip可以安装最新的版本，注意要sudo（新的系统自带Python甚至不允许你直接用pip安装软件，其实是个很合理的设计）。sudo apt-get install python3-pip sudo pip3 install meson ninja用于AV1格式编解码的libsvtav1, libdav1d和用于字幕的libass在Ubuntu 24.04的官方仓库都有比较新的版本了，可以直接安装。sudo apt-get install libsvtav1-dev libdav1d-dev libass-devUbuntu22.04官方的apt提供了libsvtav1-dev，libdav1d-dev，libass-dev，版本都比较老。其中libsvtav1-dev装的是0.9.0版本，ffmpeg不认，必须手动编译。另外两个似乎能用，可以考虑不折腾。更老的Ubuntu应该是都要手动编译了。[collapse status="false" title="源码编译libsvtav1, libdav1d, libass"]源码编译libsvtav1直接从master编译应该也无所谓，但checkout到release分支感觉安心一点。FFmpeg只用到了Encoder，所以设置BUILD_DEC为OFF。git clone https://gitlab.com/AOMediaCodec/SVT-AV1.git cd SVT-AV1 git checkout v1.7.0 mkdir build && cd build cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DBUILD_DEC=OFF -DBUILD_SHARED_LIBS=OFF .. make sudo make install源码编译libdav1ddav1d是个比libaom速度快得多的AV1解码器，可能有的apt-get的repo提供libdav1d-dev，但我这的没有，所以也要从源码编译。同样的，切到最新的release分支。git clone https://code.videolan.org/videolan/dav1d.git cd dav1d…