原来搜索过一个gstreamer插件的编译和安装脚本,但是经测试后不好用。
自己修改了一下,在Redhat E5  gstreamer-0.10.28版本下好使,分享一下:

Node:
NEW_PLUGIN_NAME    插件的名字
FILE_PLUGIN_NAME   插件源码文件名
PLUGIN_PATH        插件源码所在的绝对目录,相对目录不行。

该Makefile,最好和源码在同一个目录,其他情况没有测试。
Gstreamer提供的libtool必须和Makefile在同一个目录下,Makefile要用,否则会找不到。libtool在插件的源码包中可以找到,cp过来。

修改Makefile中相应的插件名字,源码文件名和源码路径

make
make install

OK,你的插件已经被编译好,并安装上了。
用gst-inspect 查询一下,看有没有?


CFLAGS=$(shell pkg-config --cflags gstreamer-0.10) -DGST_PACKAGE='"GStreamer"' -DGST_ORIGIN='"http://gstreamer.net"' -DVERSION='"0.0"' -DHAVE_USER_MTU -Wall -Wimplicit -g

NEW_PLUGIN_NAME=myfilter
FILE_PLUGIN_NAME=gstmyfilter
PLUGIN_PATH=/home/libing/gstreamer/gst-template-master/gst-plugin/src

$(NEW_PLUGIN_NAME).la:$(NEW_PLUGIN_NAME).lo
  ./libtool --mode=link gcc -module -avoid-version \
  -rpath $(PLUGIN_PATH) \
  -export-symbols-regex gst_plugin_desc \
  -o $(NEW_PLUGIN_NAME).la \
  $(NEW_PLUGIN_NAME).lo \
  $(pkg-config --libs gstreamer-0.10)

$(NEW_PLUGIN_NAME).lo:$(FILE_PLUGIN_NAME).c
  ./libtool --mode=compile gcc $(CFLAGS) -o $(NEW_PLUGIN_NAME).lo -c $(FILE_PLUGIN_NAME).c

.PHONY: install

install: $(NEW_PLUGIN_NAME).la
  ./libtool --mode=install install $(NEW_PLUGIN_NAME).la /usr/local/lib/gstreamer-0.10/

clean:
  rm -rf *.o *.lo *.a *.la .libs