一只海星的主页

最新FFmpeg自编译Ubuntu和交叉编译嵌入式平台

背景

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

参考

FFmpeg wiki

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注