FFMpeg Intro - Enable libass
阅读原文时间:2021年04月26日阅读:1

in /etc/profile

PKG_CONFIG_PATH=/usr/local/ass-0.13.4/lib/pkgconfig:/usr/local/fdk-aac-0.1.4/lib/pkgconfig:/usr/local/ffmpeg-3.2/lib/pkgconfig:/usr/local/fontconfig-2.12.1/lib/pkgconfig:/usr/local/freetype-2.7/lib/pkgconfig:/usr/local/fribidi-0.19.7/lib/pkgconfig:/usr/local/x264-1.48/lib/pkgconfig:/usr/local/xml2-2.9.4/lib/pkgconfig:$PKG_CONFIG_PATH

export PKG_CONFIG_PATH

1. if you compile ass with enable-shared, and then you enable-libass on configuring ffmpeg

you will get following errors.

/usr/local/ass-0.13.4/lib/libass.so: undefined reference to `FcPatternAddBool'

2. Compile script on libass

#!/bin/bash

#        --disable-require-system-font-provider \

cd ass-0.13.4
ass_prefix=/usr/local/ass-0.13.4

export FONTCONFIG_CFLAGS=-I/usr/local/fontconfig-2.12.1/include
export FONTCONFIG_LIBS=/usr/local/fontconfig-2.12.1/lib

#        --enable-shared \

./configure --prefix=${ass_prefix} \
        --enable-static \
        --disable-shared \
        --enable-fontconfig \
        --with-pic

make clean
make -j4 || exit 1
sudo make install

3. Compile script on fdk-aac

#!/bin/bash

cd fdk-aac-0.1.4
fdkaac_prefix=/usr/local/fdk-aac-0.1.4

./configure --prefix=${fdkaac_prefix} \
        --enable-static \
        --enable-shared \
        --with-pic

make clean
make -j4 || exit 1
sudo make install

4. Compile script on fontconfig

#!/bin/bash

cd fontconfig-2.12.1
font_prefix=/usr/local/fontconfig-2.12.1

#export PKG_CONFIG_PATH=/usr/local/fribidi-0.19.7/lib/pkgconfig:/usr/local/freetype-2.7/lib/pkgconfig:/usr/local/xml2-2.9.4/lib/pkgconfig:$PKG_CONFIG_PATH

./configure --prefix=${font_prefix} \
        --enable-static \
        --enable-shared \
        --enable-libxml2 \
        --with-pic

make clean
make -j4 || exit 1
sudo make install

5. Compile script on fribidi

#!/bin/bash

cd fribidi-0.19.7
fri_prefix=/usr/local/fribidi-0.19.7

#export PKG_CONFIG_PATH=/usr/local/freetype-2.7/lib/pkgconfig:$PKG_CONFIG_PATH

./configure --prefix=${fri_prefix} \
        --enable-static \
        --enable-shared \
        --with-pic

make clean
make -j4 || exit 1
sudo make install

6. Compile script on freetype2

#!/bin/bash

cd freetype-2.7
ft_prefix=/usr/local/freetype-2.7

./configure --prefix=${ft_prefix} \
        --enable-static \
        --enable-shared \
        --with-pic

make clean
make -j4 || exit 1
sudo make install

7. Compile script on lame

#!/bin/bash

cd lame-3.99.5
lame_prefix=/usr/local/lame-3.99.5

./configure --prefix=${lame_prefix} \
        --enable-static \
        --enable-shared \
        --with-pic

make clean
make -j4 || exit 1
sudo make install

8. Compile script on xml2

#!/bin/bash

cd xml2-2.9.4
xml2_prefix=/usr/local/xml2-2.9.4

#export PKG_CONFIG_PATH=/usr/local/fribidi-0.19.7/lib/pkgconfig:/usr/local/freetype-2.7/lib/pkgconfig:$PKG_CONFIG_PATH

./configure --prefix=${xml2_prefix} \
        --enable-static \
        --enable-shared \
        --with-pic

make clean
make -j4 || exit 1
sudo make install

9. Compile script on x264

#!/bin/bash

cd x264-1.48
x264_prefix=/usr/local/x264-1.48

./configure --prefix=${x264_prefix} \
        --disable-asm \
        --enable-debug \
        --enable-static \
        --enable-shared \
        --enable-pic

make -j4 || exit 1
sudo make install

10. Compile script on ffmpeg

#!/bin/bash

ffmpeg_prefix=/usr/local/ffmpeg-3.2

ffmpeg_extra_cflags="-I/usr/local/fdk-aac-0.1.4/include -I/usr/local/lame-3.99.5/include -I/usr/local/x264-1.48/include -I/usr/local/freetype-2.7/include -I/usr/local/ass-0.13.4/include -I/usr/local/fontconfig-2.12.1/include"

ffmpeg_extra_ldflags="-L/usr/local/fdk-aac-0.1.4/lib -L/usr/local/lame-3.99.5/lib -L/usr/local/x264-1.48/lib -L/usr/local/freetype-2.7/lib -L/usr/local/ass-0.13.4/lib -L/usr/local/fontconfig-2.12.1/lib"

#export PKG_CONFIG_PATH=/usr/local/fdk-aac-0.1.4/lib/pkgconfig:/usr/local/x264-1.48/lib/pkgconfig:/usr/local/lame-3.99.5/lib/pkgconfig:/usr/local/freetype-2.7/lib/pkgconfig:/usr/local/ass-0.13.4/lib/pkgconfig:/usr/local/ffmpeg-3.2/lib/pkgconfig:$PKG_CONFIG_PATH

## --enable-libass \
# --enable-libbluray \
# --enable-libfreetype \
# --enable-librtmp \
#        --enable-libopencore-amrnb \
#        --enable-libopencore-amrwb \
#        --enable-libopencv \
#        --enable-libopenjpeg \
#        --enable-libfdk-aac \
#        --enable-libvo-aacenc \
#        --enable-libvo-amrwbenc \
#        --enable-libvorbis \
# --enable-encoder=libopencore_amrnb \
# --enable-decoder=libopencore_amrnb \
# --enable-decoder=libopencore_amrwb \
# --enable-encoder=libopenjpeg \
# --enable-decoder=libopenjpeg \
# --enable-decoder=libvorbis \
# --enable-encoder=libfdk_aac \
# --enable-encoder=libvo_aacenc \
# --enable-encoder=libvo_amrwbenc \
# --enable-encoder=libvorbis \
# --enable-libfaac \
# --enable-encoder=libfaac \
# --enable-filter=subtitles \
# --enable-filter=overlay \
# --enable-libfontconfig \

cd ffmpeg-3.2

make clean

./configure --prefix=${ffmpeg_prefix} \
 --disable-symver \
 --disable-doc \
 --disable-postproc  \
 --disable-ffprobe \
 --disable-ffplay \
 --disable-ffserver \
 --disable-avdevice \
 --disable-parsers \
 --disable-muxers \
 --disable-demuxers \
 --disable-encoders \
 --disable-decoders \
 --disable-postproc  \
 --disable-stripping \
 --disable-bsfs \
 --disable-devices \
 --enable-version3 \
 --enable-gpl \
        --enable-pthreads \
 --enable-avfilter \
 --enable-shared \
 --disable-encoders \
 --disable-decoders \
 --enable-network \
 --enable-protocols \
 --enable-libass \
 --enable-libx264 \
        --enable-libfdk-aac \
        --enable-libmp3lame \
 --enable-libfreetype \
 --enable-libfontconfig \
 --enable-libfribidi \
 --enable-filter=subtitles \
 --enable-filter=overlay \
 --enable-filter=ass \
 --enable-encoder=ass \
 --enable-decoder=ass \
 --enable-encoder=rawvideo \
 --enable-decoder=rawvideo \
 --enable-encoder=libx264 \
 --enable-encoder=libfdk_aac \
 --enable-encoder=libmp3lame \
 --enable-encoder=ac3 \
 --enable-encoder=adpcm_g722 \
 --enable-encoder=adpcm_g726 \
 --enable-decoder=h264 \
 --enable-decoder=libfdk_aac \
 --enable-encoder=h263 \
 --enable-decoder=h263 \
 --enable-parser=h264 \
 --enable-decoder=mp3 \
 --enable-encoder=pcm_s16le \
 --enable-decoder=pcm_s16le \
 --enable-decoder=aac \
 --enable-decoder=aac_latm \
 --enable-decoder=adpcm_g722 \
 --enable-decoder=adpcm_g726 \
 --enable-encoder=ass \
 --enable-encoder=dvbsub \
 --enable-encoder=srt \
 --enable-encoder=ssa \
 --enable-encoder=subrip \
 --enable-decoder=ass \
 --enable-decoder=dvbsub \
 --enable-decoder=srt \
 --enable-decoder=ssa \
 --enable-decoder=subrip \
 --disable-muxers \
 --enable-muxer=rawvideo \
 --enable-muxer=mpegts \
 --enable-muxer=h264 \
 --enable-muxer=f4v \
 --enable-muxer=flv \
 --enable-muxer=mov \
 --enable-muxer=mp4 \
 --enable-muxer=ogg \
 --enable-muxer=rtp \
 --enable-muxer=rtsp \
 --enable-muxer=tgp \
 --enable-muxer=tg2 \
 --enable-muxer=pcm_s16le \
 --enable-muxer=ass \
 --enable-muxer=srt \
 --disable-demuxers \
 --enable-demuxer=rawvideo \
 --enable-demuxer=h264 \
 --enable-demuxer=mpegts \
 --enable-demuxer=aac \
 --enable-demuxer=flv \
 --enable-demuxer=mov \
 --enable-demuxer=ogg \
 --enable-demuxer=pcm_s16le \
 --enable-demuxer=rtp \
 --enable-demuxer=rtsp \
 --enable-demuxer=sdp \
 --enable-demuxer=ass \
 --enable-demuxer=dvbsub \
 --enable-demuxer=srt \
 --enable-debug \
        --enable-nonfree \
 --disable-postproc  \
 --disable-ffserver \
        --disable-ffplay \
 --disable-stripping \
 --extra-cflags="$ffmpeg_extra_cflags" \
 --extra-ldflags="$ffmpeg_extra_ldflags"

make -j4 || exit 1
sudo make install

#!/bin/bash

ffmpeg_prefix=/usr/local/ffmpeg-3.2 

ffmpeg_extra_cflags="-I/usr/local/fdk-aac-0.1.4/include -I/usr/local/lame-3.99.5/include -I/usr/local/x264-1.48/include -I/usr/local/freetype-2.7/include -I/usr/local/ass-0.13.4/include -I/usr/local/fontconfig-2.12.1/include"

ffmpeg_extra_ldflags="-L/usr/local/fdk-aac-0.1.4/lib -L/usr/local/lame-3.99.5/lib -L/usr/local/x264-1.48/lib -L/usr/local/freetype-2.7/lib -L/usr/local/ass-0.13.4/lib -L/usr/local/fontconfig-2.12.1/lib"

#export PKG_CONFIG_PATH=/usr/local/fdk-aac-0.1.4/lib/pkgconfig:/usr/local/x264-1.48/lib/pkgconfig:/usr/local/lame-3.99.5/lib/pkgconfig:/usr/local/freetype-2.7/lib/pkgconfig:/usr/local/ass-0.13.4/lib/pkgconfig:/usr/local/ffmpeg-3.2/lib/pkgconfig:$PKG_CONFIG_PATH

## --enable-libass \
# --enable-libbluray \
# --enable-libfreetype \
# --enable-librtmp \
#        --enable-libopencore-amrnb \
#        --enable-libopencore-amrwb \
#        --enable-libopencv \
#        --enable-libopenjpeg \
#        --enable-libfdk-aac \
#        --enable-libvo-aacenc \
#        --enable-libvo-amrwbenc \
#        --enable-libvorbis \
# --enable-encoder=libopencore_amrnb \
# --enable-decoder=libopencore_amrnb \
# --enable-decoder=libopencore_amrwb \
# --enable-encoder=libopenjpeg \
# --enable-decoder=libopenjpeg \
# --enable-decoder=libvorbis \
# --enable-encoder=libfdk_aac \
# --enable-encoder=libvo_aacenc \
# --enable-encoder=libvo_amrwbenc \
# --enable-encoder=libvorbis \
# --enable-libfaac \
# --enable-encoder=libfaac \
# --enable-filter=subtitles \
# --enable-filter=overlay \
# --enable-libfontconfig \

cd ffmpeg-3.2

make clean

./configure --prefix=${ffmpeg_prefix} \
--disable-symver \
--disable-doc \
--disable-postproc  \
--disable-ffprobe \
--disable-ffplay \
--disable-ffserver \
--disable-avdevice \
--disable-parsers \
--disable-muxers \
--disable-demuxers \
--disable-encoders \
--disable-decoders \
--disable-postproc  \
--disable-stripping \
--disable-bsfs \
--disable-devices \
--enable-version3 \
--enable-gpl \
        --enable-pthreads \
--enable-avfilter \
--enable-shared \
--disable-encoders \
--disable-decoders \
--enable-network \
--enable-protocols \
--enable-libass \
--enable-libx264 \
--enable-libopus \
        --enable-libfdk-aac \
        --enable-libmp3lame \
--enable-libfreetype \
--enable-libfontconfig \
--enable-libfribidi \
--enable-filter=subtitles \
--enable-filter=overlay \
--enable-filter=ass \
--enable-encoder=ass \
--enable-decoder=ass \
--enable-encoder=rawvideo \
--enable-decoder=rawvideo \
--enable-encoder=libx264 \
--enable-encoder=libfdk_aac \
--enable-encoder=libmp3lame \
--enable-encoder=ac3 \
--enable-encoder=adpcm_g722 \
--enable-encoder=adpcm_g726 \
        --enable-encoder=libopus \
--enable-decoder=h264 \
--enable-decoder=libfdk_aac \
--enable-encoder=h263 \
--enable-decoder=h263 \
--enable-parser=h264 \
--enable-decoder=mp3 \
--enable-encoder=pcm_s16le \
--enable-decoder=pcm_s16le \
--enable-decoder=aac \
        --enable-decoder=libopus \
--enable-decoder=aac_latm \
--enable-decoder=adpcm_g722 \
--enable-decoder=adpcm_g726 \
--enable-encoder=ass \
--enable-encoder=dvbsub \
--enable-encoder=srt \
--enable-encoder=ssa \
--enable-encoder=subrip \
--enable-decoder=ass \
--enable-decoder=dvbsub \
--enable-decoder=srt \
--enable-decoder=ssa \
--enable-decoder=subrip \
--disable-muxers \
--enable-muxer=rawvideo \
--enable-muxer=mpegts \
--enable-muxer=h264 \
--enable-muxer=f4v \
--enable-muxer=flv \
--enable-muxer=mov \
--enable-muxer=mp4 \
--enable-muxer=ogg \
--enable-muxer=rtp \
--enable-muxer=rtsp \
--enable-muxer=tgp \
--enable-muxer=tg2 \
--enable-muxer=pcm_s16le \
--enable-muxer=ass \
--enable-muxer=srt \
--disable-demuxers \
--enable-demuxer=rawvideo \
--enable-demuxer=h264 \
--enable-demuxer=mpegts \
--enable-demuxer=aac \
--enable-demuxer=flv \
--enable-demuxer=mov \
--enable-demuxer=ogg \
--enable-demuxer=pcm_s16le \
--enable-demuxer=rtp \
--enable-demuxer=rtsp \
--enable-demuxer=sdp \
--enable-demuxer=ass \
--enable-demuxer=dvbsub \
--enable-demuxer=srt \
--enable-debug \
        --enable-nonfree \
--disable-postproc  \
--disable-ffserver \
        --disable-ffplay \
--disable-stripping \
--extra-cflags="$ffmpeg_extra_cflags" \
--extra-ldflags="$ffmpeg_extra_ldflags"

make -j4 || exit 1
sudo make install