1.下载源码
1.1下载说明:gstreamer 依赖 glib,glib又依赖zlib和libffi
gstreamer 下载地址:https://gstreamer.freedesktop.org/src/
glib 下载地址:http://ftp.acc.umu.se/pub/GNOME/sources/glib/
zlib下载地址: http://www.zlib.net/
libffi下载地址:http://sourceware.org/libffi/
1.2下载版本如下:
libffi-3.3.tar.gz
zlib-1.2.11.tar.gz
glib-2.56.0.tar.xz
gstreamer-1.14.1.tar.xz (gst本体)
gst-plugins-base-1.14.1.tar.xz (gst最基本函数和控件)
注: 安装完gstreamer-1.14.1,gst-plugins-base应用工程即可编译通过,但是运行还可能依赖其他控件
gst-plugins-bad-1.14.1.tar.xz
gst-plugins-good-1.14.1.tar.xz
gst-plugins-ugly-1.14.1.tar.xz
gst-libav-1.14.1.tar.xz
注:以上4种为gst最为常用的控件,也是目前也在持续更新的 如x264依赖libav, mp4mux依赖good。其他控件可根据自身需求安装,也可自己编写。
2.安装
2.3.1 libffi安装
cd libffi-3.3
./configure
# 如需交叉编译到arm或独立文件夹 可增加以下内容
#--prefix=/gstreamer/crossgst/libffi CC=arm-none-linux-gnueabi
#--host=arm-none-linux-gnueabi
make
if [ $? == 0 ]; then
echo -e "\n\tmake success !!!!!!!!!!!!!!!!!!!!!\n"
make install
else
echo -e "\n\tmake fail\n"
fi
2.3.2 zlib安装
cd zlib-1.2.11
./configure
# 如需交叉编译到arm或独立文件夹 可增加以下内容
#--prefix=/gstreamer/crossgst/zlib CC=arm-none-linux-gnueabi
#--host=arm-none-linux-gnueabi
make
if [ $? == 0 ]; then
echo -e "\n\tmake success !!!!!!!!!!!!!!!!!!!!!\n"
make install
else
echo -e "\n\tmake fail\n"
fi
2.3.3 glib安装
cd glib-2.56.0
#加上with-pcre=internal不用另外安装pcre库了
./configure --with-pcre=internal
#如果不想安装libmount
#--enable-libmount=no
# 如需交叉编译到arm或独立文件夹 可增加以下内容
#--prefix=/gstreamer/crossgst/glib CC=arm-none-linux-gnueabi
#如果zlib和libffi安装在了指定路径需要增加
#LIBFFI_CFLAGS='-I/gstreamer/crossgst/libffi/include' LIBFFI_LIBS='-lffi -L=/gstreamer/crossgst/libffi/lib' ZLIB_CFLAGS='-I/gstreamer/crossgst/zlib/include' ZLIB_LIBS='-lz -L/gstreamer/crossgst/zlib/lib'
make
if [ $? == 0 ]; then
echo -e "\n\tmake success !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n"
make install
else
echo -e "\n\tmake fail !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n"
fi
2.3.4 gstreamer安装
cd gstreamer-1.14.1
#如果glib安装在其他路径则需要声明
#export PATH=$PATH:gstreamer/crossgst/glib/bin
./configure
# 如需交叉编译到arm或独立文件夹 可增加以下内容
#--prefix=/gstreamer/crossgst/libgst CC=arm-none-linux-gnueabi
#如果glib安装在了指定路径需要增加
#LDFLAGS="-I/gstreamer/crossgst/glib/include" PKG_CONFIG_PATH=/gstreamer/crossgst/glib/lib/pkgconfig
make
if [ $? == 0 ]; then
echo -e "\n\tmake success !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n"
make install
else
echo -e "\n\tmake fail !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n"
fi
2.3.5 gstreamer其他库: base bad good ugly libav 的安装
cd xxx
#如果glib安装在其他路径则需要声明
#export PATH=$PATH:gstreamer/crossgst/glib/bin
./configure
# 如需交叉编译到arm或独立文件夹 可增加以下内容
#--prefix=/gstreamer/crossgst/libgst CC=arm-none-linux-gnueabi
#如果glib安装在了指定路径需要增加
#LDFLAGS="-I/gstreamer/crossgst/glib/include" PKG_CONFIG_PATH=/gstreamer/crossgst/glib/lib/pkgconfig
make
if [ $? == 0 ]; then
echo -e "\n\tmake success !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n"
make install
else
echo -e "\n\tmake fail !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n"
fi
2.3.6 其他依赖库安装
gst库在安装过程中可能会出现缺失某些库的问题,当在ubuntu系统下使用apt-get install进行更新。
如果是需要交叉编译则需下载对应库源码进行编译。
交叉编译的一定要指定安装路径,不可安装到ubuntu系统中。
下面是可能需要安装的库
apt-get install libx264-dev
apt-get install yasm
apt-get install flex
apt-get install bison
apt-get install pcre-devel
apt-get install libmount