系统需要使用支h264, h265 的ffmpeg ,为了能够一次编译,到处执行,且不需要每次打docker 的时候都重新编译下ffmpeg,索性将整个ffmpeg 编译后打成个包,考到基础镜像中去,这里记录下整个过程。
(1)下载X264 : git clone http://git.videolan.org/git/x264.git
(2) 下载x265 : wget https://bitbucket.org/multicoreware/x265/downloads/x265_2.7.tar.gz
(3) 安装 cmake, yum or apt-get
(4) 安装X264:
cd x264
sudo ./configure --enable-shared --disable-asm
sudo make
sudo make install
(5) ldconfig
(6)安装 x265
cd x265
cmake -G "Unix Makefiles"
make
make install
(7) 移动h265 库文件
cp x265.pc /usr/local/lib
cp libx265.so.151 /usr/lib/ # 按操作系统,可能需要其他库文件,提示确实,拷贝即可
apt-get install pkg-config
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/ #不设置会找不到报错ERROR: x265 not found using pkg-config
pkg-config --list-all | grep x265 # 查看 是否已经添加x265到库中
(8) 编译ffmpeg
sudo ./configure --prefix=/usr/local/ --enable-shared --enable-libx264 --enable-gpl --enable-pthreads --disable-x86asm --enable-libx265
sudo make
sudo make install
经过漫长等待,离大工告成只有最后一步。
(9) vi /etc/ld.so.conf 加入:/usr/local/ffmpeg/lib 执行 ldconfig
(10)查看依赖:ldd /usr/local/bin/ffmpeg, 将所有so 和二进制文件打成tar 包
(11) 拷贝文件,编写dockerfile
COPY ./ffmpeg.tar.gz /data/ffmpeg.tar.gz
RUN cd /data && tar -xvf ffmpeg.tar.gz && cd ffmpeg && cp -f ffmpeg /usr/local/bin/ffmpeg && cp -f lib64/* /lib/x86_64-linux-gnu/
大功告成,使用只要操作系统一致,不管是真实操作系统还是docker, 都能拷贝后即可使用。