WHAT'S NEW IN GSTREAMER? WHAT'S NEW IN GSTREAMER? FOSDEM 3 - - PowerPoint PPT Presentation

what s new in gstreamer what s new in gstreamer
SMART_READER_LITE
LIVE PREVIEW

WHAT'S NEW IN GSTREAMER? WHAT'S NEW IN GSTREAMER? FOSDEM 3 - - PowerPoint PPT Presentation

WHAT'S NEW IN GSTREAMER? WHAT'S NEW IN GSTREAMER? FOSDEM 3 February 2018, Brussels Tim-Philipp Mller < tim@centricular.com > INTRODUCTION INTRODUCTION WHO AM I ? WHO AM I ? GStreamer core developer, maintainer, backseat release


slide-1
SLIDE 1

WHAT'S NEW IN GSTREAMER? WHAT'S NEW IN GSTREAMER?

FOSDEM 3 February 2018, Brussels Tim-Philipp Müller < > tim@centricular.com

slide-2
SLIDE 2

INTRODUCTION INTRODUCTION

slide-3
SLIDE 3

WHO AM I ? WHO AM I ?

GStreamer core developer, maintainer, backseat release manager Centricular co-founder

slide-4
SLIDE 4

WHAT IS GSTREAMER ? WHAT IS GSTREAMER ?

Most of you know this, so key points only.

slide-5
SLIDE 5

Framework for multimedia processing. Cross-platform, toolkit agnostic. Any and all use cases. Set of libraries and plugins. Abstract API, very extensible. We oen wrap other libraries.

slide-6
SLIDE 6

Low-level API and high-level API: playbin, encodebin, RTSP server, non-linear editing, VoIP etc.

slide-7
SLIDE 7

Integration with other frameworks and projects e.g. WebKit/Blink, Clutter, OpenGL Windows, OS X, Android, iOS Goal is to adapt to and integrate with

  • ther platforms and frameworks

(inputs, outputs, decoders, DSPs/GPUs..)

slide-8
SLIDE 8

SO, WHAT HAVE WE BEEN UP TO ? SO, WHAT HAVE WE BEEN UP TO ?

slide-9
SLIDE 9

RELEASES! RELEASES!

  • 1.12: May 2017
  • 1.14: coming up real soon now
slide-10
SLIDE 10

SOME THINGS THAT LANDED IN 1.12 ... SOME THINGS THAT LANDED IN 1.12 ...

slide-11
SLIDE 11

VIDEOSCALE + VIDEOCONVERT VIDEOSCALE + VIDEOCONVERT

Multi-threaded scaling and conversion.

slide-12
SLIDE 12

TIMED TEXT MARKUP LANGUAGE (TTML) TIMED TEXT MARKUP LANGUAGE (TTML)

New ttml plugin. Supports the EBU-TT-D profile for now. Has potential as general intermediary representation for text subtitles.

slide-13
SLIDE 13

SPLITMUXSINK SPLITMUXSINK

Buffer collection and scheduling rewritten. Splitting should be deterministic now. New "format-location-full" signal. Automatically starts new chunk if caps change.

slide-14
SLIDE 14

DASH TRICK MODE PLAYBACK DASH TRICK MODE PLAYBACK

slide-15
SLIDE 15

LOTS OF NEW FEATURES AND PERF LOTS OF NEW FEATURES AND PERF IMPROVEMENTS FOR EMBEDDED IMPROVEMENTS FOR EMBEDDED

v4l, dmabuf, zero-copy, openmax etc.

  • -> Olivier's talk
slide-16
SLIDE 16

HARDWARE-ACCELERATED VIDEO HARDWARE-ACCELERATED VIDEO ENCODING/DECODING ENCODING/DECODING

New msdk plugin for Intel's Media SDK GStreamer VA-API: new features + fixes Encoders are now autoplugged. nvdec for NVIDIA hardware + nvenc improvements v4l + omx for embedded

slide-17
SLIDE 17

SOME COOL THINGS THAT WILL LAND IN SOME COOL THINGS THAT WILL LAND IN 1.14 ... 1.14 ...

slide-18
SLIDE 18

AOMEDIA AV1 SUPPORT AOMEDIA AV1 SUPPORT

Next-gen royalty-free video codec! Experimental, but bitstream stabilised (ish?). Encoding still "a bit" slow, but works.

  • > Tim's talk at 5pm today in this room.
slide-19
SLIDE 19

IPCPIPELINE IPCPIPELINE

Split pipelines across multiple processes! Isolate demuxers, parsers, decoders.

  • -> Olivier's talk!
slide-20
SLIDE 20

RING BUFFER FOR DEBUG LOGS RING BUFFER FOR DEBUG LOGS

Useful for long running tasks. Or disk space constrained environments. Retrieve log lines when things fail.

slide-21
SLIDE 21

TRACING FRAMEWORK IMPROVEMENTS TRACING FRAMEWORK IMPROVEMENTS

Leak tracer: stack traces, snapshotting, live objects Latency tracer improvements are also in the pipeline

slide-22
SLIDE 22

HLSSINK2 HLSSINK2

Takes elementary streams as input Uses splitmuxsink internally Handles transmuxing better, without encoder up front

slide-23
SLIDE 23

RTSP RTSP

RTSP 2.0 support in client + server ONVIF audio backchannel (coming up)

slide-24
SLIDE 24

MISSION: PLUGIN MOVES AND MODULE MISSION: PLUGIN MOVES AND MODULE CONSOLIDATION ... CONSOLIDATION ...

Ongoing effort to move things from -bad into other modules. Going strong!

slide-25
SLIDE 25

MP3 PATENTS HAVE EXPIRED! MP3 PATENTS HAVE EXPIRED!

mpg123 mp3 decoder -> good LAME mp3 encoder -> good twolame mp2 encoder -> good

slide-26
SLIDE 26

AC-3 PATENTS HAVE EXPIRED! AC-3 PATENTS HAVE EXPIRED!

a52dec has to stay in -ugly liba52 is GPL :(

slide-27
SLIDE 27

COMING SOON (HOPEFULLY!) COMING SOON (HOPEFULLY!)

  • aggregator base class -> core (done)
  • audiomixer + audioaggregator -> base
  • incl. audiomixer conversion support
  • compositor + videoaggregator -> base
  • Next: port muxers, for defined-latency
slide-28
SLIDE 28

GSTREAMER OPENGL INTEGRATION HAS GSTREAMER OPENGL INTEGRATION HAS MOVED TO -BASE ! MOVED TO -BASE !

Library + plugins API stable now.

slide-29
SLIDE 29

WEBRTC WEBRTC

"How do I stream to my web browser?" It's going to work everywhere. It's going to be big.

slide-30
SLIDE 30

WEBRTC: WEBRTCBIN WEBRTC: WEBRTCBIN

New GStreamer WebRTC plugin and library Just landed in git master \o/ \o/ \o/ Uses libnice + plugins for ICE.

  • > Nirbheek's blog post
  • > https://github.com/centricular/gstwebrtc-demos
slide-31
SLIDE 31

WEBRTC: EXISTING EFFORTS WEBRTC: EXISTING EFFORTS

OpenWebRTC Kurento some proprietary SDKs libwebrtc: works, but ..

slide-32
SLIDE 32

WEBRTCBIN: ADVANTAGES WEBRTCBIN: ADVANTAGES

very flexible + full control easy to use with hardware encoders/decoders, zero-copy capture/render where supported leverage existing GStreamer support on embedded devices easy to feed already-encoded content no need to deal with or fork libwebrtc

slide-33
SLIDE 33

WEBRTCBIN: CAVEATS WEBRTCBIN: CAVEATS

SDP renegotiation is not implemented or incomplete, so dynamically adding/removing streams doesn't work yet recvonly streams aren't implemented properly yet, but that's fixable internals are sound and follow the spec, so easy to identify clear spaces and fit in missing features. help wanted!

slide-34
SLIDE 34

KLV METADATA SUPPORT KLV METADATA SUPPORT

Generic per-frame KLV metadata (soon) Muxing / demuxing KLV meta per frame

slide-35
SLIDE 35

PERFORMANCE OPTIMISATIONS.. PERFORMANCE OPTIMISATIONS..

Everywhere, of course. Lots of things in the pipeline.

slide-36
SLIDE 36

SRT - "SECURE, RELIABLE, TRANSPORT" SRT - "SECURE, RELIABLE, TRANSPORT"

Source/Sink elements now merged. Seems well-placed to replace RTMP.

slide-37
SLIDE 37

MESON BUILD SYSTEM STATUS UPDATE: MESON BUILD SYSTEM STATUS UPDATE:

Mostly complete, just a few things still missing: full set of options static build untested iOS/Android untested cerbero integration MSVC build works. Also: gst-build

slide-38
SLIDE 38

RUST RUST

Let's talk about Rust ! ("Fast, safe and productive - pick three.")

slide-39
SLIDE 39

RUST RUST

No plans to switch to it in the short run. No plans to make it a hard dep in core components. We can do a lot without breaking GStreamer backwards compat. We're playing with it, experimenting, gaining experience. Something for the longer term.

slide-40
SLIDE 40

GSTREAMER RUST BINDINGS GSTREAMER RUST BINDINGS

Should be in pretty good shape now.

  • -> Sebastian's talk tomorrow 11am in the Rust

devroom

slide-41
SLIDE 41

GSTREAMER C# BINDINGS GSTREAMER C# BINDINGS

Have also been resurrected and updated.

slide-42
SLIDE 42

ROOM FOR IMPROVEMENT ? ROOM FOR IMPROVEMENT ?

slide-43
SLIDE 43

ADAPTIVE STREAMING (DASH, HLS, ETC.) ADAPTIVE STREAMING (DASH, HLS, ETC.)

Really need to improve our creation story!

slide-44
SLIDE 44

MAKE IT EASIER TO WRITE "SIMPLE MAKE IT EASIER TO WRITE "SIMPLE SERVERS" SERVERS"

  • souphttpserversink
  • rtspserversink
slide-45
SLIDE 45

THAT'S ALL FOLKS THAT'S ALL FOLKS THANK YOU (AND THANKS TO THANK YOU (AND THANKS TO THE ORGANISERS!) THE ORGANISERS!) QUESTIONS? COMMENTS? QUESTIONS? COMMENTS?

slide-46
SLIDE 46

PS: PS:

follow us on Twitter @GStreamer find us on IRC in #gstreamer on FreeNode GStreamer hackfest in spring GStreamer Conference in Edinburgh in ~late October