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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值