自己打包ffmpeg
ffmpeg 是一个非常庞大的软件,而且依赖关系太多了,导致还是自己打包一下,把对应的依赖包都打进去,这样省的后面搞依赖了。
由于贵司现在还有centos7的服务器,而且还都运行的非常好,因此只能打包ffmpeg6的版本,7还有很多依赖的东西比较底层,不太好搞。
依赖包编译。由于我最终ffmpeg是安装到/usr/local/ffmpeg-6.1的,所以就需要把这些依赖包都安装到这个目录下。因此我的这些第三方依赖库的编译都会添加
1 | --prefix=/usr/local/ffmpeg-6.1/third |
这些第三方依赖就不单独说了。主要说说ffmpeg本身的编译,因为你的第三方依赖包都在 /usr/local/ffmpeg-6.1/third 目录下,因此编译的时候需要进行一些调整。
其实就是把third目录下的这些lib加进来
首先是ldconfig的默认路径要添加一下
1 | $ cat /etc/ld.so.conf.d/ffmpeg.conf |
然后是pkg-config的默认路径也要修改下, 然后就是主角的编译了
1 | export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib64/pkgconfig:/usr/local/lib64/pkgconfig:/usr/lib64/pkgconfig:/usr/local/ffmpeg-6.1/third/lib/pkgconfig |
1 | ./configure --prefix=/usr/local/ffmpeg-6.1 --pkg-config-flags=--static --enable-gpl --enable-libfdk_aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libvpx --enable-libx264 --enable-libx265 --enable-nonfree --enable-libfontconfig --enable-libwebp --extra-ldflags='-L /usr/local/ffmpeg-6.1/third/lib' |
接下来就是使用fpm打包的事情了,fpm是ruby环境下的一个工具,本来以为是小事一桩,发现现在ruby的版本也是飞速发展,导致我只能安装rvm环境来进行,不然你就会为了ruby环境折腾好久,我是折腾了ruby2, ruby2.5,然后直接rvm环境了
1 | gpg2 --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB |
为最后fpm再准备几个工具
1 | $ cat /usr/local/ffmpeg-6.1/tools/ffmpeg.conf |
最后我们就可以用fpm来进行打包了
1 | export INTERMEDIATE_INSTALL_DIR=/usr/local/ffmpeg-6.1 |
最后我们把包上传到自己的仓库里,重新建立下repo就可以了
1 | /bin/createrepo -pdo /data/mirrors/centos/7/x86_64/ /data/mirrors/centos/7/x86_64 |