• 零碎版本: openfans aarch64
  • 参考: https://gist.github.com/wildr...

装置依赖

惯例依赖

apt -y install \    autoconf \    automake \    build-essential \    cmake \    doxygen \    git \    meson \    nasm \    pkg-config \    python3-dev \    python3-pip \    texinfo \    wget \    yasm \    zlib1g-dev 

音频/视频/图片库

apt -y install \    graphviz \    imagemagick \    libaom-dev \    libssl-dev \    libdav1d-dev \    libfdk-aac-dev \    libasound2-dev \    libass-dev \    libavcodec-dev \    libavdevice-dev \    libavfilter-dev \    libavformat-dev \    libavutil-dev \    libfreetype6-dev \    libgmp-dev \    libmp3lame-dev \    libopencore-amrnb-dev \    libopencore-amrwb-dev \    libopus-dev \    librtmp-dev \    libsdl2-dev \    libsdl2-image-dev \    libsdl2-mixer-dev \    libsdl2-net-dev \    libsdl2-ttf-dev \    libsnappy-dev \    libsoxr-dev \    libssh-dev \    libssl-dev \    libtool \    libv4l-dev \    libva-dev \    libvdpau-dev \    libvo-amrwbenc-dev \    libvorbis-dev \    libwebp-dev \    libx264-dev \    libx265-dev \    libxcb-shape0-dev \    libxcb-shm0-dev \    libxcb-xfixes0-dev \    libxcb1-dev \    libxml2-dev \    lzma-dev    

苹果用的HEVC

git clone --depth 1 https://github.com/ultravideo/kvazaar.git ~/ffmpeg-libraries/kvazaar \  && cd ~/ffmpeg-libraries/kvazaar \  && ./autogen.sh \  && ./configure --prefix=/usr/ \  && make -j$(nproc) \  && sudo make install

VP8 and VP9

git clone --depth 1 https://github.com/webmproject/libvpx.git ~/ffmpeg-libraries/libvpx \  && cd ~/ffmpeg-libraries/libvpx \  && ./configure --prefix=/usr/ --disable-examples --disable-tools --disable-unit_tests --disable-docs \  && make -j$(nproc) \  && sudo make install

zimg

git clone --depth 1 https://github.com/sekrit-twc/zimg.git ~/ffmpeg-libraries/zimg \  && cd ~/ffmpeg-libraries/zimg \  && sh autogen.sh \  && ./configure --prefix=/usr/ \  && make -j$(nproc) \  && sudo make install

AP1

git clone --depth 1 https://aomedia.googlesource.com/aom ~/ffmpeg-libraries/aom \  && mkdir ~/ffmpeg-libraries/aom/aom_build \  && cd ~/ffmpeg-libraries/aom/aom_build \  && cmake -G "Unix Makefiles" AOM_SRC -DCMAKE_INSTALL_PREFIX=/usr/ -DENABLE_NASM=on -DPYTHON_EXECUTABLE="$(which python3)" -DCMAKE_C_FLAGS="-mfpu=vfp -mfloat-abi=hard" .. \  && sed -i 's/ENABLE_NEON:BOOL=ON/ENABLE_NEON:BOOL=OFF/' CMakeCache.txt \  && make -j$(nproc) \  && sudo make install

AAC

不须要装置
aarch64零碎中有libfdk-acc-dev

git clone --depth 1 https://github.com/mstorsjo/fdk-aac.git ~/ffmpeg-libraries/fdk-aac \  && cd ~/ffmpeg-libraries/fdk-aac \  && autoreconf -fiv \  && ./configure --prefix=/usr/ \  && make -j$(nproc) \  && sudo make install

AV1

不须要装置
aarch64零碎中有libdav1d-dev

git clone --depth 1 https://code.videolan.org/videolan/dav1d.git ~/ffmpeg-libraries/dav1d \  && mkdir ~/ffmpeg-libraries/dav1d/build \  && cd ~/ffmpeg-libraries/dav1d/build \  && meson .. \  && ninja \  && sudo ninja install

编译ffmpeg

下载源代码

git clone --depth 1 https://github.com/FFmpeg/FFmpeg.git ~/FFmpeg \  && cd ~/FFmpeg

批改ffmpeg的配置文件

vim ./configure

这个librtmp即便装置了也无奈检测到,正文这行,下文应用-lrtmp开启即可

# enabled librtmp           && require_pkg_config librtmp librtmp librtmp/rtmp.h RTMP_Socket
./configure \    --prefix=/usr/ \    --extra-cflags="-I/usr/local/include" \    --extra-ldflags="-L/usr/local/lib" \    --extra-libs="-lpthread -lm -latomic -lrtmp" \    --pkg-config-flags="--static" \    --arch=aarch64 \    --enable-libdrm \    --enable-gmp \    --enable-gpl \    --enable-libaom \    --enable-libass \    --enable-libdav1d \    --enable-libfdk-aac \    --enable-libfreetype \    --enable-libkvazaar \    --enable-libmp3lame \    --enable-libopencore-amrnb \    --enable-libopencore-amrwb \    --enable-libopus \    --enable-librtmp \    --enable-libsnappy \    --enable-libsoxr \    --enable-libssh \    --enable-libvorbis \    --enable-libvpx \    --enable-libzimg \    --enable-libwebp \    --enable-libx264 \    --enable-libx265 \    --enable-libxml2 \    --enable-nonfree \    --enable-omx \    --enable-omx-rpi \    --enable-version3 \    --target-os=linux \    --enable-pthreads \    --enable-openssl \    --enable-hardcoded-tables

留神: aarch64 不反对

    --enable-mmal

编译

make -j$(nproc)make install