gstreamer 编译实例

1.首先搭建 Gstreamer 所需环境

(1).先安装Gstreamer所需的程序包:

1     sudo apt-get update
      // 安装之前最好检查下面的tools是否已经安装,例如输入:autoconf -v;如果提示未发现该命令请安装。2     sudo apt-get install automake autoconf libtool autopoint 
3     sudo apt-get install -y bison flex libffi-dev libmount-dev libpcre3 libpcre3-dev zlib1g-dev libssl-dev gtk-doc-tools     

(2).安装 ORC 支持库,编译 gst-plugins-base 将会依赖这个库

下载安装包地址:

https://gstreamer.freedesktop.org/src/orc/orc-0.4.27.tar.xz 

运行以下命令进行解压缩和编译安装:

1     $tar xvJf orc-0.4.27.tar.xz
2     $cd orc-0.4.27
3     $./autogen.sh --prefix=/usr/lib
4     $make -j6
5     $sudo make install

 

(3).安装 GLIB 支持库

下载安装包地址:

http://ftp.acc.umu.se/pub/GNOME/sources/glib/2.52/glib-2.52.3.tar.xz

运行以下命令进行解压缩和编译安装:

1     $tar xvJf glib-2.52.3.tar.xz
2     $cd glib-2.52.3
3     $./autogen.sh
4     $make -j6
5     $sudo make install

2.安装 Gstreamer 1.16.2 基础软件包(适用于其他版本)

(1).下载以下几个软件源码包:(地址:https://gstreamer.freedesktop.org/src/

1     gstreamer-1.16.2
2     gst-plugins-base-1.16.2
3     gst-plugins-good-1.16.2
4     gst-plugins-bad-1.16.2
5     gst-plugins-ugly-1.16.2
6     gst-rtsp-server-1.16.2

(2).编译安装gstreamer-1.16.2

说明:下面的 ... 是自己真实路径(建议最好使用绝对路径)

1     $tar xvJf  gstreamer-1.16.2.tar.xz
2     $cd gstreamer-1.16.2
3     $ ./configure --prefix=.../gst-out/gstreamer-1.16.2
4     $make -j6
5     $sudo make install

说明因为后面的gst-plugins-*都会依赖这个gstreamer-1.16.2因此必须加到PKG_CONFIG_PATH中。

 export PKG_CONFIG_PATH=.../gst-out/gstreamer-1.16.2/lib/pkgconfig

(3).编译安装gst-plugins-base-1.16.2

1      $tar xvJf gst-plugins-base-1.16.2.tar.xz
2      $cd gst-plugins-base-1.16.2
3      $ ./configure --prefix=.../gst-out/gst-plugins-base-1.16.2
4      $make -j6
5      $sudo make install

(4).编译安装gst-plugins-good-1.16.2

说明:gst-plugins-good-1.16.2是依赖于gst-plugins-base-1.16.2和gstreamer-1.16.2的,因此需要设置PKG_CONFIG_PATH(之前已经包含gstreamer-1.16.2)为如下值:

export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:.../gst-out/gst-plugins-base-1.16.2/lib/pkgconfig

1     $tar xvJf gst-plugins-good-1.16.2.tar.xz
2     $cd gst-plugins-good-1.16.2
3     $ ./configure  --prefix=.../gst-out/gst-plugins-good-1.16.2
4     $make -j6
5     $sudo make install

(5).编译安装gst-plugins-bad-1.16.2

1     $tar xvJf gst-plugins-bad-1.16.2.tar.xz
2     $cd gst-plugins-bad-1.16.2
3     $ ./configure --prefix=.../gst-out/gst-plugins-bad-1.16.2
4     $make -j6
5     $sudo make install

(6).编译安装gst-plugins-ugly-1.16.2

1     $sudo apt-get install libx264-dev  //支持x264软编码插件
2     $tar xvJf gst-plugins-ugly-1.12.6.tar.xz
3     $cd gst-plugins-ugly-1.16.2
4     $ ./configure --prefix=.../gst-out/gst-plugins-ugly-1.16.2
5     $make -j6
6     $sudo make install

 

 (7).配置Gstreamer环境

1     $cd ~
2      $sudo vim .bashrc(在文件最后新增以下内容保存退出)
3     export LD_LIBRARY_PATH=/usr/local/lib
4     export GST_PLUGIN_PATH=/usr/local/lib:/usr/lib/aarch64-linux-gnu/gstreamer-1.0  //此处需要根据实际的环境,不一定为aarch64-linux-gnu5     $source .bashrc

(8).编译安装gst-rtsp-server-1.16.2(如果需要进行流媒体推流才进行安装)

1     $tar xvJf gst-rtsp-server-1.16.2.tar.xz
2     $cd gst-rtsp-server-1.16.2
3     $ ./configure --prefix=.../gst-out/gst-rtsp-server-1.16.2
4     $make -j6
5     $sudo make install
测试指令:软编码加推流
gst-launch-1.0 videotestsrc! videoconvert ! ‘video/x-raw,width=320,height=240,framerate=(fraction)15‘  ! autovideoconvert ! x264enc  ! rtph264pay ! udpsink host=192.168.1.94 port=8006

引用风中旅客的博客(做部分补充):https://www.cnblogs.com/sxgloverr1314/p/10541491.html

原文地址:https://www.cnblogs.com/grandblogs/p/12123186.html

时间: 2024-08-04 05:36:43

gstreamer 编译实例的相关文章

[转]vs2010 静态库以及动态库编译实例

转载地址:http://blog.csdn.net/wswxfwps/article/details/31788703 有网友留言,指出了本文中有错的地方,在此谢谢指摘. 重新编辑了一下本文,新添加了一些东西以及到目前为止对静态库和动态库的心得理解和心得,和大家分享 最近在研究ffmpeg,由于用c#开发,而ffmpeg采用的是c开发,因此打算先用c将ffmpeg的一些函数封装成库,在用c#来调用,花了一天时间(确实水平太低)写了几个vs2010下的静态库以及动态库的编译实例. 一.vs2010

为什么gstreamer 编译出来少了很多mod

1. [email protected]:~/code/openwrt$ find -name "gstreamer*.ipk" ./bin/ar71xx/packages/packages/gstreamer1-utils_1.4.5-1_ar71xx.ipk./bin/ar71xx/packages/packages/gstreamer1-libs_1.4.5-1_ar71xx.ipk./bin/ar71xx/packages/packages/gstreamer1-plugins

JavaScript预编译

今天用了大量时间复习了作用域,预编译等等知识 看了很多博文,翻开了以前看过的书 发现当初觉得自己学的很明白,其实还是存在一些思维误区 今晚就整理了一下凌乱的思路 先整理一下预编译的知识吧,日后有时间再把作用域详细讲解一下 大家要明白,这个预编译和编译是不一样的 JavaScript是解释型语言, 既然是解释型语言,就是编译一行,执行一行 传统的编译会经历很多步骤,分词.解析.代码生成什么的 日后有时间再给大家科普 下面就给大家分享一下我所理解的JS预编译 JavaScript运行三部曲 页面加载

C++ 之 类模板的分离式编译

模版编译篇 目录:1.对于C++中类模板的分离式编译的认识 2.具体的实例 1.对于C++中类模板的分离式编译的认识 为什么C++编译器不能支持对模板的分离式编译(博文链接) 主要内容:编译器编译的一般工作原理.对模版的分离式编译的特殊性(模版的特殊性) 链接: http://blog.csdn.net/pongba/article/details/19130 模版编译的特殊性 对程序进行编译时,对于函数调用,编译器只要求函数的原型在调用点是可见的,至于函数的定义是否存在不做检查(在对程序进行链

Gradle 编译多个project(包括多Library库project依赖)指导

Gradle Android最新自己主动化编译脚本教程(提供demo源代码) 这篇文章我简单写了基于Gradle2.1 进行的android project和android library的编译实例,随后有网友问我是否支持依赖多library编译.我的回复是肯定的,具体见以下的指导: 在实际开发中有非常多工程引用到了android-support-v4.jar或者其它的jar包资源: 有时候.在每一个library库的libs里都放进android-support-v4.jar 在eclpse里

Gradle 编译多个工程(包含多Library库工程依赖)指导

Gradle Android最新自动化编译脚本教程(提供demo源码) 这篇文章我简单写了基于Gradle2.1 进行的android project和android library的编译实例,随后有网友问我是否支持依赖多library编译,我的回复是肯定的,详细见下面的指导: 在实际开发中有很多工程引用到了android-support-v4.jar或者其他的jar包资源: 有时候,在每个library库的libs里都放进android-support-v4.jar 在eclpse里编译运行是

龙芯8089D-Debian7 下搭建 Objective-C 编译环境

龙芯8089D-Debian7 下搭建 Objective-C 编译环境 目录 安装相关文件 编译参数说明 简化命令行参数 实际编译实例 简单说明:Objective-C 的 C 文件后缀为 .m,头文件后缀为 .h,例如我们在本教程中的例程就是 main.m. 安装相关文件 需要安装这些包:gcc.g++.gobjc.gnustep.gnustep-devel.gnustep-gui-dev.libgnustep-base-dev. 安装命令很简单: apt-get install gcc g

JavaScript预编译原理分析

今天用了大量时间复习了作用域.预编译等等知识 看了非常多博文,翻了翻曾经看过的书(好像好多书都没有讲预编译) 发现当初认为自己学的非常明确,事实上还是存在一些思维误区 (非常多博文具有误导性) 今晚就整理了一下凌乱的思路 先整理一下预编译的知识吧,日后有时间再把作用域具体解说一下 大家要明确.这个预编译和传统的编译是不一样的(能够理解js预编译为特殊的编译过程) JavaScript是解释型语言, 既然是解释型语言,就是编译一行.运行一行 传统的编译会经历非常多步骤,分词.解析.代码生成什么的

AngularJS 源码分析1

AngularJS简介 angularjs 是google出品的一款MVVM前端框架,包含一个精简的类jquery库,创新的开发了以指令的方式来组件化前端开发,可以去它的官网看看,请戳这里 再贴上一个本文源码分析对应的angularjs源码合并版本1.2.4,精简版的,除掉了所有的注释, 请戳这里 从启动开始说起 定位到4939行,这里是angularjs开始执行初始化的地方,见代码 ? 1 2 3 bindJQuery(), publishExternalAPI(angular), jqLit