gstreamer应用

Posted 浩瀚之水_csdn

tags:

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

1.播放本地文件
gst-launch-1.0 playbin uri=file:///opt/niliu.mp4
2.打dot图
export GST_DEBUG_DUMP_DOT_DIR=/opt/gstreamer/
dot -Tpng -o 0.00.02.484080226-gst-launch.PAUSED_PLAYING.png 0.00.02.484080226-gst-launch.PAUSED_PLAYING.dot
应用中可以用下面宏
GST_DEBUG_BIN_TO_DOT_FILE()
GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS()
比如:
GstElement *pipeline = gst_pipeline_new (NULL);
GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS(GST_BIN (pipeline),GST_DEBUG_GRAPH_SHOW_ALL,“gst-graphic”);
3.根据dot
gst-launch-1.0 filesrc location="/opt/niliu.mp4" ! typefind ! qtdemux ! video/x-h264 ! avdec_h264 ! videoconvert ! xvimagesink

3.视频裁剪
gst-launch-1.0 filesrc location="/opt/niliu.mp4" ! typefind ! qtdemux ! video/x-h264 ! avdec_h264 ! videoconvert ! tee name=tee tee. ! queue ! videobox right=960 bottom=540 ! autovideosink tee. ! queue ! videobox left=960 bottom=540 ! autovideosink tee. ! queue ! videobox top=540 ! autovideosink

4.推rtp流
server:
gst-launch-1.0 filesrc location="/opt/niliu.mp4" ! typefind ! qtdemux ! h264parse ! mpegtsmux ! rtpmp2tpay ! udpsink host=localhost port=5000 async=false

recver:
gst-launch-1.0 udpsrc caps=‘application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)MP2T, payload=(int)33’ port=5000 ! rtpjitterbuffer ! rtpmp2tdepay ! tsdemux ! h264parse ! avdec_h264 ! videoconvert ! autovideosink
注意:h264parse在这里是为了把stream-format=avc转换为stream-format=byte-stream

5.推图片
gst-launch-1.0 filesrc location=/home/hidoo/colorbar.png ! pngdec ! videoconvert ! imagefreeze ! autovideosink
qt-gstreamer:
qt使用gstreamer有三种方式
1.使用qmultimedia(内部采用playbin)
编译qmultimedia
进入qt顶层
./configure -qt-xcb -gstreamer 1.0
-qt-xcb是为了使用qt自带的xcb避免xcb环境问题导致出错
进入qtmultimedia
qmake && make

2.使用qmlglsink插件,可能在gst-plugins-bad、gst-plugins-base、gst-plugins-good
下载gst-plugins-bad源码
./configure
查看config.log中QT相关,看是否有result: yes,若为no看错误提示。
比如报缺Qt5Qml.pc 则安装sudo apt-get install qtdeclarative5-dev
最新的gst-plugins-good(因为后来的qmlglsink被移动到gst-plugins-good)源码git中有qmlglsink的demo,可直接用qtcreator编译,但是并不见界面内容,通过export GST_DEBUG=3 发现如下错误:
qtglutility gstqtglutility.cc:145:gst_qt_get_gl_wrapcontext: Unknown platform
进入源码通过ctags发现没定义HAVE_QT_X11,该宏是在configure阶段检测定义,查看config.log发现如下错:
No package ‘Qt5X11Extras’ found
sudo apt-get install libqt5x11extras5-dev
pkg-config --list-all |grep Qt5X11Extras检查OK
3.使用qtgstreamer模块
————————————————
版权声明:本文为CSDN博主「__一缕阳光__」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zxr1521904712/article/details/81328640

以上是关于gstreamer应用的主要内容,如果未能解决你的问题,请参考以下文章

使用 GstDiscoverer (GStreamer) 的分段错误

Gstreamer应用开发实战指南

GStreamer应用开发手册学习笔记之二

GStreamer使用总结

GStreamer应用开发手册学习笔记之二

在 petalinux 中编译 gstreamer 应用程序时出错