ubuntu下构建GStreamer开发环境

GStreamer 是 GNOME 桌面环境下用来构建流媒体应用的多媒体框架(framework),其目标是要简化音/视频应用程序的开发。GStreamer是一个开源的多媒体架构库。利用它,可以构建一系列的媒体处理模块,包括从简单的ogg播放功能到复杂的音频(混音)和视频的处理。

一、安装gstreamer

安装gstreamer基础库

apt-get install libgstreamer0.10-dev gstreamer-tools gstreamer0.10-tools gstreamer0.10-doc                 //具体的安装位置为/user/share/doc/

apt-get install gstreamer0.10-plugins-base gstreamer0.10-plugins-good gstreamer0.10-plugins-ugly gstreamer0.10-plugins-bad gstreamer0.10-plugins-bad-multiverse                                       //具体的安装位置为/user/share/doc/和/user/lib

安装ffmpeg支持插件

apt-get install gstreamer0.10-ffmpeg                                                     //具体的安装位置为/user/share/doc/

 

二、编写测试样例

测试样例:

#include<gst/gst.h>
int main (int    argc,char* argv[])
{
    
const gchar*
nano_str;
     guint major, minor, micro, nano;
     gst_init (
&argc,&
argv);
     gst_version (
&major,&minor,&micro,&
nano);
    
if (nano==1
)
         nano_str
="(CVS)"
;
    
else if (nano ==2
)
         nano_str
="(Prerelease)"
;
    
else

         nano_str
="" ;
     printf (
"This program is linked against GStreamer %d.%d.%d %s/n"
,
           major, minor, micro, nano_str);
    
return 0
;
}

 

编译:

我看到有些文章写的编译指令是gcc-Wall $(pkg-config--cflags--libs gstreamer-0.10) hello.c-o hello,但是我使用这个指令就是编译不过,提示错误是:Undefined reference to gst_init。因为找得到头文件,但是头文件里声明的函数没有定义,我以为是库找不到的问题,所以,试图在系统环境变量中显式的添加,但是没有效果。我查了一下用指令

#pkg-config--cflags--libs gstreamer-0.10

可以查看gstreamer-0.10模块相应的头文件和包括的库.确认包含了该包含的头文件和库文件。后来,我看了一些相关的文章,我试图改了一下:

gcc-Wallhello.c-o hello $(pkg-config--cflags--libs gstreamer-0.10
就可以正常编译了。

我到现在也不知道为什么,希望有高手看到了我的blog,帮我解答一下。先在此谢过啦!


运行:

。/hello

 

运行结果:

This program is linked against GStreamer  0.10.36

 

 三、gstreamer常用工具

1、gst-inspect-1.0         

       该工具可以用来查询插件的参数

 

2、gst-launch-1.0

     该工具构建gstreamer的pipleline

 

3、gstreamer-properties

    在GNOME中,该工具可以列举音频输出模块。

 

四、gstreamer使用

1、gstreamer插件的参数查询

      $ gst-inspect-1.0 fakesrc                                   //查询element of fakesrc

      如果没有这个元件,将会打印出"no such element or plugin"。

 

2、可以查看系统中有多少插件

     $ gst-inspect-1.0

 

3、以指定插件的方式处理多媒体文件

     gst-launch-1.0 filesrc location=thesong.mp3 ! mad ! pulsesink          //播放一个mp3文件

 

4、系统自动检测安插正确的插件

     $gst-launch-1.0 filesrc location=my-random-media-file.mpeg ! decodebin ! pulsesink
     $gst-launch-1.0 filesrc location=my-random-media-file.mpeg ! decodebin ! videoconvert ! xvimagesink

     $gst-launch-1.0 filesrc location=my-random-media-file.mpeg ! decodebin name=decoder

                decoder. ! videoconvert ! xvimagesink

                decoder. ! audioconvert ! pulsesink

     $gst-launch-1.0 playbin uri=file:///home/joe/my-random-media-file.mpeg

 


 

 

你可能感兴趣的:(gstreamer)