linux环境下用GStreamer实现rtsp取流播放

来源:互联网 发布:犀牛软件基础教程 编辑:程序博客网 时间:2024/05/16 07:38

最近研究Gstream的一些东西分享给大家,通过rtsp进行取流,playbin自行构建链路

环境配置

  • Ubuntu16 之后自带Gstreamer 的库,可以直接用无需安装

  • 代码编译运行前需要设置如下环境变量:

 export LD_LIBRARY_PATH=/usr/local/lib export GST_PLUGIN_PATH=/usr/local/lib:/usr/lib/x86_64-linux-gnu/gstreamer-1.0

命令行格式

一个用于test的rtsp地址:
rtsp://rtsp://184.72.239.149/vod/mp4:BigBuckBunny_115k.mov

gst-launch-1.0 playbin uri=rtsp://rtsp://184.72.239.149/vod/mp4:BigBuckBunny_115k.mov 

代码形式

#include <gst/gst.h>  int main(int argc, char *argv[]){      GstElement *pipeline;      GstBus *bus;      GstMessage *msg;      /* Initialize GStreamer */      gst_init (&argc, &argv);      /* Build the pipeline */      pipeline = gst_parse_launch ("playbin uri=rtsp://admin:ste12345@10.112.2.125/h264/ch01/main/av_stream", NULL);      /* Start playing */      gst_element_set_state (pipeline, GST_STATE_PLAYING);      /* Wait until error or EOS */      bus = gst_element_get_bus (pipeline);      msg = gst_bus_timed_pop_filtered (bus, GST_CLOCK_TIME_NONE, GST_MESSAGE_ERROR | GST_MESSAGE_EOS);      /* Free resources */      if (msg != NULL)      gst_message_unref (msg);      gst_object_unref (bus);      gst_element_set_state (pipeline, GST_STATE_NULL);      gst_object_unref (pipeline);      return 0;  }  

编译使用注意:

 export LD_LIBRARY_PATH=/usr/local/lib export GST_PLUGIN_PATH=/usr/local/lib:/usr/lib/x86_64-linux-gnu/gstreamer-1.0 gcc main.c -o main -Wall $(pkg-config --cflags --libs gstreamer-1.0)
原创粉丝点击