gstreamer移植qnx:概览篇

Posted 玄道公子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了gstreamer移植qnx:概览篇相关的知识,希望对你有一定的参考价值。

​ 接触qnx系统也有两三年了,一直都是基于其上的mmr进行多媒体播放器的开发。 但是这个mmr资料少,且很多参数,资料上没有,必须给钱向qnx公司咨询才行。 于是就有这么一个念头,移植一个开源的播放器到qnx平台上。之前也有尝试过移植VLC和gstreamer,但是因为工作时间比较忙,草草的尝试了一下,有因为需要自己动手编写最终的音视频输出插件,觉得有些麻烦,然后就这样放弃了。

​ 这次因为恰好项目结尾,有一点空闲时间,于是就再次进行了一番尝试,现将过程一一记录下来。

  • 测试使用到的库、插件以及bin文件

    这里用到的库,是将out/lib/目录下生成安装的所有lib,插件输出目录为 out/lib/gstreamer-1.0/, 我这边进行验证测试用到的plugin如下:

libgstaudioparsers.so                  libgstmpg123.so
libgstautodetect.so                    libgstplayback.so
libgstcoreelements.so                  libgstvideoconvert.so
libgstdeinterlace.so                   libgstvideofilter.so
libgstfdkaac.so                        libgstvideoparsersbad.so
libgstlibav.so                         libqnxaudio.so
libqnxvideo.so

生成的可执行文件存放在 out/bin/目录下,另外还有一个特别的可执行文件gst-plugin-scanner,在out/libexe目录下。使用到的所有可执行文件如下:

gst-inspect-1.0  #用于查看插件相关信息
gst-launch-1.0   #用于播放音乐或视频
gst-plugin-scanner #被用于扫描插件
  • 测试用的环境

    在进行正式的测试播放音视频之前,还需要设置一些环境变量。

    这里假设在qnx系统的根目录下新建了三个目录, gst_app(存放可执行we你按),gst_lib(用于存放所有的lib库),gst_plugin(用于存放所有的插件)。

然后写一个脚本文件来设置环境变量,脚本的内容如下:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/gst_lib/   #将lib路径放入库搜索的路径当中去
export GST_PLUGIN_PATH=/gst_plugin/      #指明插件所在路径
export GST_PLUGIN_SCANNER=/gst_app/gst-plugin-scanner #指明插件扫描器的所在
export GST_PLUGIN_SYSTEM_PATH=/gst_plugin/ #指明系统插件所在路径

加入这个脚本文件名为: setEnv.sh, 那么在进行测试之前需要先执行:

. ./setEnv.sh
  • 播放音视频

​ 加入插入U盘后,qnx系统加载U盘的路径为 /fs/usb0/ ,且在U盘根目录下有test.mp3 和 test.mkv两个文件, 然后setEnv.sh这个脚本文件,就放在gst_app目录下:

cd  /gst_app/
. ./setEnv.sh  #注: 这一句在再次重启之前,只需要执行一次

#播放音乐
./gst-launch-1.0 playbin3 uri=file:///fs/usb0/test.mp3

#播放视频同样
./gst-launch-1.0 playbin3 uri=file:///fs/usb0/test.mkv

接下来就依次来展示各个库的移植编译以及配置过程。

  • 其大致步骤如下:
    • 编译glib库
    • 编译gstreamer库
    • 编译gst-plugin-base库
    • 根据实际情况编译其他plugin库以及其依赖的第三方库

let’s go…

================================ To be continue…=================================

以上是关于gstreamer移植qnx:概览篇的主要内容,如果未能解决你的问题,请参考以下文章

gstreamer移植qnx:交叉编译gstreamer之 libgstreamer

gstreamer移植qnx:交叉编译glib

gstreamer移植qnx:编写gstreamer插件audio sink和video sink

支持qnx中的cmake??从 Linux 移植到 QNX

基于arm5718的交叉编译gstreamer移植

基于arm5718的交叉编译gstreamer移植