ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

gstreamer应用

2021-08-03 10:00:58  阅读:354  来源: 互联网

标签:1.0 qt launch gst gstreamer 应用 DEBUG GST


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

标签:1.0,qt,launch,gst,gstreamer,应用,DEBUG,GST
来源: https://blog.csdn.net/a8039974/article/details/119343378

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有