原来搜索过一个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 查询一下,看有没有?
自己修改了一下,在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
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
转载于:https://blog.51cto.com/general/362703