En kort introduktion til

GStreamer 1.0.x

Hvad er nu det for noget?

Et bibliotek bestående af en masse komponenter til at bygge multimediegrafer

Men bruges det?

Vi skal lige lære 3 grundbegreber

3 linked elements

  1. Elementer (oggdemux, alsasink, filesrc, ...)
  2. Pads (source og sink)
  3. Caps (audio/x-raw, format=(string)S16LE, layout=(string)interleaved, rate=(int)44100, channels=(int)1)

gst-inspect-1.0 er din ven

Hvad kan gst-inspect-1.0?

gst-launch-1.0 to start the show

gst-launch-1.0 kan nemt bygge grafer direkte på kommandolinjen

Hvad med noget netværk?

Streaming med RTP til hverdag og fest:

Source:

gst-launch-1.0 -v rtpbin name=rtpbin \
        v4l2src ! theoraenc ! rtptheorapay !\
        rtpbin.send_rtp_sink_0 \
        rtpbin.send_rtp_src_0 ! udpsink port=5000

Sink:

gst-launch-1.0 udpsrc port=5000 caps="application/x-rtp, ...." !\
   .recv_rtp_sink_0 rtpbin ! rtptheoradepay !\
   theoradec ! xvimagesink

Plugins

GStreamer-elementerne er delt i en række pluginpakker

API og dokumentation

Spørgsmål

Kan jeg afspille format xyz med GStreamer?

     Hvis ffmpeg/libav kan: "Ja"

Kører det på min favorit platform?

     Hvis du er "OS hipster": "Nej"
     Linux/OSX/Win32: Ja