DeepStream是基于Gstreamer开发的。有时候需要在Gstreamer加日志,比如想在rtpjitterbuffer里加日志。
首先,执行gst-inspect-1.0 rtpjitterbuffer命令。
从结果中可以看到,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。