背景
FFmpeg NB!
各种不同需求使得我们需要重新编译,mark之
FFmpeg 环境
版本:ffmpeg-4.3.1, 下载:点我
历史版本下载:点我
Ubuntu平台编译
需求:拉去RTSP流、H264、H265解码
OS:Ubuntu 16.04
依赖安装
nasm、yasm是汇编相关,也可–disable-yasm掉
libx264/x265是编解码库支持;
libsdl2是显示支持,生成ffplay测试;
sudo apt-get install nasm
sudo apt-get install yasm
sudo apt-get install libx264-dev
sudo apt-get install libx265-dev libnuma-dev
sudo apt-get install libsdl2-dev
PS:官方完整依赖安装
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 \
pkg-config \
texinfo \
wget \
yasm \
zlib1g-dev
配置
配置请根据configure随意增删;
我的栗子:
./configure --enable-ffplay --enable-gpl --enable-libx264 --enable-libx265 --enable-decoder=hevc --enable-demuxer=hevc --enable-decoder=h264 --enable-demuxer=h264
编译
make -j6;sudo make install
嵌入式平台编译
需求
主要是在海思3559/英伟达NX系列上使用;两者都是aarch64-gcc编译器;
配置
build.sh脚本
./configure \
--prefix="$PWD/install" \
--enable-shared \
--enable-cross-compile \
--target-os=linux \
--arch=aarch64 \
--cc=/opt/hisi-linux/x86-arm/aarch64-himix100-linux/bin/aarch64-himix100-linux-gcc \
--cxx=/opt/hisi-linux/x86-arm/aarch64-himix100-linux/bin/aarch64-himix100-linux-g++ \
--strip=/opt/hisi-linux/x86-arm/aarch64-himix100-linux/bin/aarch64-himix100-linux-strip \
--enable-gpl \
--extra-libs=-ldl \
--extra-cflags="-fPIC" \
--extra-ldflags=-Wl,-Bsymbolic \
--extra-libs="-lpthread -lm" \
--enable-avresample \
make -j6;make install
本地install目录下生成结果
bin include lib share