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
應(yīng)用中可以用下面宏
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.根據(jù)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=‘a(chǎn)pplication/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轉(zhuǎn)換為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(內(nèi)部采用playbin)
編譯qmultimedia
進(jìn)入qt頂層
./configure -qt-xcb -gstreamer 1.0
-qt-xcb是為了使用qt自帶的xcb避免xcb環(huán)境問(wèn)題導(dǎo)致出錯(cuò)
進(jìn)入qtmultimedia
qmake && make
2.使用qmlglsink插件,可能在gst-plugins-bad、gst-plugins-base、gst-plugins-good
下載gst-plugins-bad源碼
./configure
查看config.log中QT相關(guān),看是否有result: yes,若為no看錯(cuò)誤提示。
比如報(bào)缺Qt5Qml.pc 則安裝sudo apt-get install qtdeclarative5-dev
最新的gst-plugins-good(因?yàn)楹髞?lái)的qmlglsink被移動(dòng)到gst-plugins-good)源碼git中有qmlglsink的demo,可直接用qtcreator編譯,但是并不見(jiàn)界面內(nèi)容,通過(guò)export GST_DEBUG=3 發(fā)現(xiàn)如下錯(cuò)誤:
qtglutility gstqtglutility.cc:145:gst_qt_get_gl_wrapcontext: Unknown platform
進(jìn)入源碼通過(guò)ctags發(fā)現(xiàn)沒(méi)定義HAVE_QT_X11,該宏是在configure階段檢測(cè)定義,查看config.log發(fā)現(xiàn)如下錯(cuò):
No package ‘Qt5X11Extras’ found
sudo apt-get install libqt5x11extras5-dev
pkg-config --list-all |grep Qt5X11Extras檢查OK
3.使用qtgstreamer模塊
————————————————
版權(quán)聲明:本文為CSDN博主「__一縷陽(yáng)光__」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/zxr1521904712/article/details/81328640
總結(jié)
以上是生活随笔為你收集整理的gstreamer应用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 九江职业大学宿舍管理规定(九江职业大学宿
- 下一篇: windows下 cl: 命令行 err