DeepStream--调试Gstreamer

DeepStream是基于Gstreamer开发的。有时候需要在Gstreamer加日志,比如想在rtpjitterbuffer里加日志。

首先,执行gst-inspect-1.0  rtpjitterbuffer命令。

DeepStream--调试Gstreamer_第1张图片

从结果中可以看到,rtpjitterbuffer插件的源码是gst-plugins-good,版本是1.16,在/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstrtpmanager.so中.

如下步骤是搭环境,下代码,编译。

1. 参考:https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/tree/1.16?ref_type=heads

,pip install meson用于装meson, apt-get install  ninja-build 用于装ninja。

2. git clone https://gitlab.freedesktop.org/gstreamer/gst-plugins-good.git

3. git branch 1.16 && git checkout 1.16 && git reset --hard origin/1.16

4. meson build

5. ninja -C build

到此编译成功,编好库的路径是:build/gst/rtpmanager/libgstrtpmanager.so.

如下步骤是加日志,编译。

1. 将GST_ERROR_OBJECT (jitterbuffer, "in gst_rtp_jitter_buffer_chain"); 加到gst_rtp_jitter_buffer_chain函数里,再执行ninja -C build。

如下步骤是替换测试。

mv /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstrtpmanager.so /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstrtpmanager.so_bk
mv build/gst/rtpmanager/libgstrtpmanager.so /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstrtpmanager.so
export GST_DEBUG=3
gst-launch-1.0 rtspsrc location=rtsp://xx ! rtph264depay ! h264parse ! 'video/x-h264,stream-format=byte-stream' ! filesink location=test.h264

可以看到程序在不停打印in gst_rtp_jitter_buffer_chain。

你可能感兴趣的:(deepstream)