
本文希望对于正在学习ffmpeg音视频方向的同学有一定帮助,众所周知,随着容器化技术的大规模应用,一套软件往另外一台操作系统上迁移,再也不需要频繁的安装软件,使用容器镜像技术,可以很方便快捷的迁移软件或者程序。
一、下载安装包的方式
下载两个安装包
http://www.ffmpeg.org/releases/ffmpeg-4.2.2.tar.gz
https://cmake.org/files/v3.8/cmake-3.8.2.tar-gz
FROM centos:7
# 安装yasm (nasm/yasm必须有其一)
RUN yum -y update && yum install -y net-tools
libgomp.x86_64
libtool-ltdl-devel.x86_64
vim
psmisc.x86_64
libuuid-devel.x86_64
zlib-devel.x86_64
unixODBC-devel.x86_64
mariadb-devel.x86_64
dos2unix
make
gcc
gcc-c++
build-essential
yasm
autoconf
automake
#安装ffmpeg 必须要加--enable-shared 否则不能生成so动态库文件
WORKDIR /home
ADD ffmpeg-4.2.2.tar.gz /home
RUN cd /home/ffmpeg-4.2.2 && ./configure --disbale-x86asm --enable-shared --enable-encoders --enable-decoders --prefix=/usr/local/ffmpeg
&& make && make install
#安装cmake3.8 (用于编译运行C++项目)
ADD cmake-3.8.2.tar.gz /home
RUN cd /home/cmake-3.8.2 && ./configure --prefix=/usr/local/cmake && make && make install
#设置环境变量
ENV FFMPEG_HOME /usr/local/ffmpeg
ENV CMAKE_HOME /usr/local/cmake
ENV LD_LIBRARY_PATH /usr/local/ffmpeg/lib
ENV PATH $PATH:$FFMPEG_HOME/bin:$CMAKE_HOME/bin:$LD_LIBRARY_PATH
CMD /bin/bash
二、在线安装
这种方式每次重新打镜像都要重新安装一次。
FROM centos:latest
# 安装yasm (nasm/yasm必须有其一)
RUN yum -y update && yum install -y net-tools
libgomp.x86_64
libtool-ltdl-devel.x86_64
vim
psmisc.x86_64
libuuid-devel.x86_64
zlib-devel.x86_64
unixODBC-devel.x86_64
mariadb-devel.x86_64
dos2unix
make
gcc
gcc-c++
build-essential
yasm
autoconf
automake
#安装ffmpeg 必须要加--enable-shared 否则不能生成so动态库文件 尽量使用 && 连接符号连接命令,可以使镜像的体积变小。减少构建的层数。
WORKDIR /home
RUN wget http://www.ffmpeg.org/releases/ffmpeg-4.2.2.tar.gz
RUN tar -zxvf ffmpeg-4.2.2.tar.gz
RUN cd /home/ffmpeg-4.2.2 && ./configure --disbale-x86asm --enable-shared --enable-encoders --enable-decoders --prefix=/usr/local/ffmpeg
&& make && make install
#安装cmake3.8 (用于编译运行C++项目)
RUN wget https://cmake.org/files/v3.8/cmake-3.8.2.tar-gz
RUN tar -zxvf cmake-3.8.2.tar-gz
RUN cd /home/cmake-3.8.2 && ./configure --prefix=/usr/local/cmake && make && make install
#设置环境变量
ENV FFMPEG_HOME /usr/local/ffmpeg
ENV CMAKE_HOME /usr/local/cmake
ENV LD_LIBRARY_PATH /usr/local/ffmpeg/lib
ENV PATH $PATH:$FFMPEG_HOME/bin:$CMAKE_HOME/bin:$LD_LIBRARY_PATH
CMD /bin/bash