1.安装依赖的工具包:
apt-get install xz-utils
apt-get install tar
解压工具,如果已经安装 请忽略。
2.下载ffmpeg 资源
下载地址
http://ffmpeg.org/download.html
这里指定安装 4.1.10 所以需要下载指定版本
wget http://ffmpeg.org/releases/ffmpeg-4.1.10.tar.xz
解压文件
xz -d ffmpeg-4.1.10.tar.xz
解压tar
tar -xvf ffmpeg-4.1.10.tar
3.安装可能需要的依赖
sudo apt-get update 更新 仓库缓存
// 视频服务及 语音对讲服务使用的的依赖如下
gcc:GNU C语言编译器。
sudo apt install g++
make:GNU make工具。
sudo apt install gcc
pkg-config:用于检查系统中安装的库的版本和可用性的工具。
sudo apt install pkg-config
yasm:FFmpeg使用的汇编器,可以提高编码效率。
sudo apt install yasm
zlib:压缩和解压缩数据的库。
sudo apt install zlib1g #g前面的字母是数字1,而不是小写的字母l
sudo apt install zlib1g-dev 开发包
libmp3lame:用于压缩和解压缩MP3音频的库。
sudo apt-get install libmp3lame-dev
sudo apt-get install nasm
libopus:用于压缩和解压缩Opus音频的库。
sudo apt-get install libopus-dev
libvpx:用于压缩和解压缩VP8和VP9视频的库。
sudo apt-get install libvpx-dev
libx264:用于压缩和解压缩H.264视频的库。
sudo apt-get install libx264-dev
libx265:用于压缩和解压缩HEVC视频的库。
sudo apt-get install libx265-dev
sudo apt-get install cmake mercurial
libxcb、libxcb-shm、libxcb-xfixes:用于X11窗口系统的库。
sudo apt libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev
安装不出来可以直接使用。
apt-get install libxcb*
libssl-dev:用于支持HTTPS协议的库。
sudo apt-get install openssl
sudo apt-get install libssl-dev
开始安装依赖
gpl是一个协议,如果你增加了这个选项,意味着你修改了ffmpeg,比如增加了x264部分,srt,或decklink部分。
那么你如果作为商用的话,关于ffmpeg这部分的代码,就需要开源。但是非ffmpeg部分依然不需要开源。
配置
./configure --prefix=/usr/local/ffmpeg/ \
--enable-gpl \
--enable-zlib \
--enable-libmp3lame \
--enable-libopus \
--enable-libvpx \
--enable-libx264 \
--enable-libx265 \
--enable-libxcb \
--enable-libxcb-shm \
--enable-libxcb-xfixes \
--enable-nonfree
安装
make & make install
的–enable-libxcb依赖关系自动检测,所以你永远需要明确列出此选项,除非你手动禁用自动检测等组成。
有四个libxcd配置选项:
–enable-libxcb enable X11 grabbing using XCB [autodetect]
–enable-libxcb-shm enable X11 grabbing shm communication [autodetect]
–enable-libxcb-xfixes enable X11 grabbing mouse rendering [autodetect]
–enable-libxcb-shape enable X11 grabbing shape rendering [autodetect]
根据configure文件,每个的依赖关系是:
libxcb : xcb/xcb.h,版本1.4或更高版本。
libxcb-shm: xcb/shm.h
libxcb-xfixes: xcb/xfixes.h
libxcb形状: xcb/shape.h
您需要安装提供这些附件的任何软件包。我不确定您使用的是哪个发行版,因此您必须进行查找。或者,您可能需要自己编译libxcb。
–enable-libfdk-aac
将fdk-aac内置到FFmpeg中
–enable-nonfree
fdk-aac与GPL不兼容,需要通过开启nonfree进行配置
配置 ffmpeg 环境变量
配置环境变量 cd ~ 目录 ls -a 会看到 .bashrc 重新加载命令 source .bashrc
配置参数:
export PATH=$PATH:/usr/local/ffmpeg/bin
这里要注意一下,使用eclipse进行调试,如果ffmpeg源码的编译中使用了—enable-shared选项,那么在调试时会出现无法step into的情况。
服务器配置查看:
ffmpeg version 4.1 Copyright (c) 2000-2018 the FFmpeg developers
built with gcc 7 (Ubuntu 7.5.0-3ubuntu1~18.04)
configuration: --target-os=linux --arch=x86_64 --enable-cross-compile --disable-avdevice --disable-doc --disable-devices --disable-ffplay --enable-libx264 --enable-libx265 --enable-nonfree --enable-gpl --pkgconfigdir=/usr/local/lib/pkgconfig --enable-shared
libavutil 56. 22.100 / 56. 22.100
libavcodec 58. 35.100 / 58. 35.100
libavformat 58. 20.100 / 58. 20.100
libavfilter 7. 40.101 / 7. 40.101
libswscale 5. 3.100 / 5. 3.100
libswresample 3. 3.100 / 3. 3.100
libpostproc 55. 3.100 / 55. 3.100
Hyper fast Audio and Video encoder
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...