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应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 九江职业大学宿舍管理规定(九江职业大学宿
- 下一篇: windows下 cl: 命令行 err