星期四, 8月 13, 2020

GStreamer

 

Appsrc:

The appsrc element can be used by applications to insert data into a GStreamer pipeline. Unlike most GStreamer elements, Appsrc provides external API functions.
For the documentation of the API, please see the
libgstapp section in the GStreamer Plugins Base Libraries documentation.

  1. https://blog.csdn.net/coroutines/article/details/43987357?utm_source=blogxgwz7
  2. gstreamer向appsrc傳送編碼資料的程式碼
  3. MACNICA
  4. GStreamer基础教程08——pipeline的快捷访问


Socket:

  1. gstreamer中的好东西,appsink和appsrc
  2. GStreamer Base Plugins 0.10 Library Reference Manual appsrc
    1. Hierarchy
  3. GStreamer Base Plugins 0.10 Library Reference Manual udpsrc
  4. https://gist.github.com/esrever10/7d39fe2d4163c5b2d7006495c3c911bb

Tee/Multithread example
  1. Using RTSP encode (with H264) and stream images at device memory on Xavier
  2. https://groups.google.com/forum/#!topic/meetecho-janus/FsgkxuFR6bM
    1. I found the reason - x264enc uses downstream plugins to set its profile (not obvious). In this case case 

      gst-rtsp-launch -p 8558 "videotestsrc ! x264enc aud=false ! rtph264pay name=pay0"

      RTSP server probably adds something to the pipeline that forces Baseline profile. If it is executed like this

      gst-launch-1.0 -v videotestsrc ! x264enc aud=false ! rtph264pay ! udpsink host=127.0.0.1 port=5001

      x264enc uses High profile, which is not supported by browsers. Those commands work fine:

      gst-launch-1.0 -v videotestsrc ! x264enc aud=false ! video/x-h264, profile=baseline ! rtph264pay ! udpsink host=127.0.0.1 port=5001

      gst-rtsp-launchh -p 8558 "( udpsrc name=pay0 port=5001 caps=\"application/x-rtp, media=video, clock-rate=90000, encoding-name=H264, payload=96, profile-level-id=428014\" )"


      Rafał

沒有留言: