编译nasm
cd $HOME
mkdir $HOME/ffmpeg_build
wget https://www.nasm.us/pub/nasm/releasebuilds/2.14.02/nasm-2.14.02.tar.bz2
tar xjvf nasm-2.14.02.tar.bz2
cd nasm-2.14.02
PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin"
make
make install
编译x264
cd $HOME
wget https://code.videolan.org/videolan/x264/-/archive/master/x264-master.tar.bz2
tar xvf x264-master.tar.bz2
mv x264-master x264
cd x264
PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig"
./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --enable-static --enable-pic --enable-gprof --enable-debug
make
make install
编译ffmpeg
下载ffmpeg代码
cd $HOME
wget https://www.ffmpeg.org/releases/ffmpeg-4.2.2.tar.gz
tar xvf ffmpeg-4.2.2.tar.gz
编译
cd ffmpeg-4.2.2
PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure --prefix="$HOME/ffmpeg_build" --pkg-config-flags="--static" --extra-cflags="-I$HOME/ffmpeg_build/include" --extra-ldflags="-L$HOME/ffmpeg_build/lib" --bindir="$HOME/bin" --extra-cflags=-pg --extra-ldflags=-pg --extra-cxxflags=-pg --disable-stripping --enable-libx264 --enable-gpl
make
make install
执行ffmpeg转码,性能分析
ffmpeg -re -i input -c:v libx264 -c:a copy -profile:v baseline -b:v 1.5M -bufsize 1M -level 3.1 -bsf:a aac_adtstoasc -s 720x1280 output.mp4
可以看到当前目录生成了一个文件 gmon.out
用gprof分析文件结果
gprof ~/bin/ffmpeg gmon.out > profile.txt
可以安装gprof2dot生成可视化调用图,使结果更加直观可读 https://github.com/jrfonseca/gprof2dot
gprof2dot profile.txt| dot -Tsvg -o profile.svg
结果如下图所示: