首发于 Gstreamer
在Linux(UButun)和Windows编译GStreamer 过程

在Linux(UButun)和Windows编译GStreamer 过程

tips:周末,顺手整理了一个框架和功能图,可能不完善,先放着,后面使用的时候,再修改下!

GStreamer 介绍

GStreamer 是用来构建流媒体应用的开源多媒体框架(framework),其目标是要简化音/视频应用程序的开发,已经能够被用来处理像 MP3、Ogg、MPEG1、MPEG2、AVI、Quicktime等多种格式的多媒体数据。笔者就是尝试用来开发多路RTSP推流服务器

Windows编译

安装环境:

step 1 :安装 Visual Studio Community 2019

visualstudio.microsoft.com

Visual Studio Installer需要勾选下载内容如下

  • 通用Windows平台开发
  • 使用C++的桌面开发
  • 使用c++的移动开发
    使用C++的桌面开发和移动开发是可选的

step 2 :Python 3.5+,作者使用的3.6

python.org/downloads/

step 3 打开Windows cmd命令行工具

pip install --upgrade pip
pip install meson
tips :
GStreamer release版本大于1.16(不包含1.16版本)需要使用meson build,所以需要安装meson ;GStreamer =1.18,,meson vison>=0.54;但是1.19版本需要>=0.55版本,建议你们直接使用meson>=0.6;

meson相关资料

pip install ninja
编译安装ninjia参考这个也行 zhuanlan.zhihu.com/p/32

step 4 添加GStreamer bin 到 PATH,两个都需要下载,保证下载版本一致性

64 bit

32 bit

step 5 下载源码,编译库

tips: 请严格按照下面安装步骤填写
git clone --recursive https://gitee.com/vegetableandchicken/gst-build.git
cd gst-build/subprojects
执行以下操作,把下面命令执行一遍即可,全部放到subprojects里面,其实你们可以git clone ** gst-build之后,直接meson build也会自动下载,但是下载很慢,毕竟是git
//你们可以自己点击进去选择版本,我给的是最新版本
git clone --recursive https://gitee.com/vegetableandchicken/orc.git
git clone --recursive https://gitee.com/vegetableandchicken/gst-docs.git
git clone --recursive https://gitee.com/vegetableandchicken/gstreamer.git
git clone --recursive https://gitee.com/vegetableandchicken/gst-plugins-good.git
git clone --recursive https://gitee.com/vegetableandchicken/gst-plugins-base.git
git clone --recursive https://gitee.com/vegetableandchicken/gst-python.git
git clone --recursive https://gitee.com/vegetableandchicken/common.git
git clone --recursive https://gitee.com/vegetableandchicken/gst-examples.git
git clone --recursive https://gitee.com/vegetableandchicken/gst-rtsp-server.git
git clone --recursive https://gitee.com/vegetableandchicken/gnulib.git
git clone --recursive https://gitee.com/vegetableandchicken/gstreamer-sharp.git
//windows不建议自己下载glib,偶尔会编译错误,要meson build自己下载好点
git clone --recursive https://gitee.com/vegetableandchicken/glib.git
git clone --recursive https://gitee.com/vegetableandchicken/gst-integration-testsuites.git
git clone --recursive https://gitee.com/vegetableandchicken/gst-libav.git
git clone --recursive https://gitee.com/vegetableandchicken/gst-plugins-ugly.git
git clone --recursive https://gitee.com/vegetableandchicken/gst-devtools.git
git clone --recursive https://gitee.com/vegetableandchicken/gst-editing-services.git