Tina J Asked: 2019-07-11 10:42:32 +0800 CST2019-07-11 10:42:32 +0800 CST 2019-07-11 10:42:32 +0800 CST 如何在 Makefile 中修改构建规则 772 我试图从位于HERE的源代码编译 FFmpeg 。一切都很好,但是构建的二进制文件缺少ffplay. 并且看起来位于/fftools. 如何修改 makefile(s) 以构建 ffplay,以及 ffmpeg 和 ffprobe? compiling ffmpeg gcc c makefile 2 个回答 Voted Best Answer llogan 2019-07-11T16:38:59+08:002019-07-11T16:38:59+08:00 无需修改任何Makefile. ffplay ffplay需要 sdl2,所以安装 libsdl2-dev 包来满足这个依赖。您不需要--enable-ffplay,因为它是自动启用的。 您的其他./configure线路选项 --enable-pthreads删除这个。它是自动启用的。 --enable-libvpx需要 libvpx-dev 软件包。 --enable-libmp3lame需要 libmp3lame-dev 包。 --enable-libtheora需要 libtheora-dev,但我会省略它并改用 libvpx。 --enable-libvorbis需要 libvorbis-dev,但我会省略它并改用 libopus。 --enable-libx264需要 libx264-dev。 --enable-libx265需要 libx265-dev。 --enable-runtime-cpudetect除非您正在构建将在各种机器上运行的可执行文件,否则不需要这样做。 --enable-libfdk-aac需要 libfdk-aac-dev。 --enable-avfilter删除它,因为它是自动启用的。 --enable-libopencore_amrwb --enable-libopencore_amrnb没有人再使用的旧的遗留编码器/解码器。需要 libopencore-amrnb-dev 和 libopencore-amrwb-dev。如果您删除它,那么您可以删除--enable-version3. --enable-filters删除它,因为它是自动启用的。 --enable-libvidstab需要 libvidstab-dev。 --enable-libaom需要最近的 libaom-dev。如果您的 repo 版本太旧,您可能需要编译它。 --enable-libxcb需要 libxcb1-dev、libxcb-shm0-dev 和 libxcb-xfixes0-dev。您可以省略声明此选项,因为它会自动检测并启用。 --enable-gnutls需要 libgnutls-dev 或 libgnutls28-dev,具体取决于您的 Ubuntu 版本。 编译指南 如果您不想猜测要安装什么,只需关注FFmpeg Wiki: Ubuntu。 kenn 2019-07-11T11:42:15+08:002019-07-11T11:42:15+08:00 所需库: sudo apt-get install autoconf automake build-essential cmake git-core libass-dev libfreetype6-dev libsdl2-dev libtool libva-dev libvdpau-dev libvorbis-dev libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev pkg-config texinfo wget zlib1g-dev 要为 aom 建立依赖关系,它需要比 repo 中的最新版本: git clone https://aomedia.googlesource.com/aom cd aom mkdir build cd build cmake -DBUILD_SHARED_LIBS=1 .. make sudo make install sudo ldconfig 构建ffmpeg: wget -O ffmpeg-snapshot.tar.bz2 https://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2 tar xjvf ffmpeg-snapshot.tar.bz2 cd ffmpeg/ 在运行之前,您需要./configure在源目录中运行脚本make。我使用以下标志来设置选项: ./configure --prefix=/usr/local --enable-shared --disable-debug --enable-ffplay --disable-doc --enable-gpl --enable-version3 --enable-nonfree --enable-pthreads --enable-libvpx --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libx265 --enable-runtime-cpudetect --enable-libfdk-aac --enable-avfilter --enable-libopencore_amrwb --enable-libopencore_amrnb --enable-filters --enable-libvidstab --enable-libaom --enable-libxcb --enable-gnutls 有关选项的完整列表: ./configure --help
无需修改任何
Makefile
.ffplay
ffplay
需要 sdl2,所以安装 libsdl2-dev 包来满足这个依赖。您不需要--enable-ffplay
,因为它是自动启用的。您的其他
./configure
线路选项--enable-pthreads
删除这个。它是自动启用的。--enable-libvpx
需要 libvpx-dev 软件包。--enable-libmp3lame
需要 libmp3lame-dev 包。--enable-libtheora
需要 libtheora-dev,但我会省略它并改用 libvpx。--enable-libvorbis
需要 libvorbis-dev,但我会省略它并改用 libopus。--enable-libx264
需要 libx264-dev。--enable-libx265
需要 libx265-dev。--enable-runtime-cpudetect
除非您正在构建将在各种机器上运行的可执行文件,否则不需要这样做。--enable-libfdk-aac
需要 libfdk-aac-dev。--enable-avfilter
删除它,因为它是自动启用的。--enable-libopencore_amrwb
--enable-libopencore_amrnb
没有人再使用的旧的遗留编码器/解码器。需要 libopencore-amrnb-dev 和 libopencore-amrwb-dev。如果您删除它,那么您可以删除--enable-version3
.--enable-filters
删除它,因为它是自动启用的。--enable-libvidstab
需要 libvidstab-dev。--enable-libaom
需要最近的 libaom-dev。如果您的 repo 版本太旧,您可能需要编译它。--enable-libxcb
需要 libxcb1-dev、libxcb-shm0-dev 和 libxcb-xfixes0-dev。您可以省略声明此选项,因为它会自动检测并启用。--enable-gnutls
需要 libgnutls-dev 或 libgnutls28-dev,具体取决于您的 Ubuntu 版本。编译指南
如果您不想猜测要安装什么,只需关注FFmpeg Wiki: Ubuntu。
所需库:
要为 aom 建立依赖关系,它需要比 repo 中的最新版本:
构建
ffmpeg
:在运行之前,您需要
./configure
在源目录中运行脚本make
。我使用以下标志来设置选项:有关选项的完整列表: