what s new in gstreamer what s new in gstreamer
play

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


  1. WHAT'S NEW IN GSTREAMER? WHAT'S NEW IN GSTREAMER? FOSDEM 3 February 2018, Brussels Tim-Philipp Müller < tim@centricular.com >

  2. INTRODUCTION INTRODUCTION

  3. WHO AM I ? WHO AM I ? GStreamer core developer, maintainer, backseat release manager Centricular co-founder

  4. WHAT IS GSTREAMER ? WHAT IS GSTREAMER ? Most of you know this, so key points only.

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

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

  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 other platforms and frameworks (inputs, outputs, decoders, DSPs/GPUs..)

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

  9. RELEASES! RELEASES! • 1.12: May 2017 • 1.14: coming up real soon now

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

  11. VIDEOSCALE + VIDEOCONVERT VIDEOSCALE + VIDEOCONVERT Multi-threaded scaling and conversion.

  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.

  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.

  14. DASH TRICK MODE PLAYBACK DASH TRICK MODE PLAYBACK

  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

  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

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

  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.

  19. IPCPIPELINE IPCPIPELINE Split pipelines across multiple processes! Isolate demuxers, parsers, decoders. --> Olivier's talk!

  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.

  21. TRACING FRAMEWORK IMPROVEMENTS TRACING FRAMEWORK IMPROVEMENTS Leak tracer: stack traces, snapshotting, live objects Latency tracer improvements are also in the pipeline

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

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

  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!

  25. MP3 PATENTS HAVE EXPIRED! MP3 PATENTS HAVE EXPIRED! mpg123 mp3 decoder -> good LAME mp3 encoder -> good twolame mp2 encoder -> good

  26. AC-3 PATENTS HAVE EXPIRED! AC-3 PATENTS HAVE EXPIRED! a52dec has to stay in -ugly liba52 is GPL :(

  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

  28. GSTREAMER OPENGL INTEGRATION HAS GSTREAMER OPENGL INTEGRATION HAS MOVED TO -BASE ! MOVED TO -BASE ! Library + plugins API stable now.

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

  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

  31. WEBRTC: EXISTING EFFORTS WEBRTC: EXISTING EFFORTS OpenWebRTC Kurento some proprietary SDKs libwebrtc: works, but ..

  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

  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!

  34. KLV METADATA SUPPORT KLV METADATA SUPPORT Generic per-frame KLV metadata (soon) Muxing / demuxing KLV meta per frame

  35. PERFORMANCE OPTIMISATIONS.. PERFORMANCE OPTIMISATIONS.. Everywhere, of course. Lots of things in the pipeline.

  36. SRT - "SECURE, RELIABLE, TRANSPORT" SRT - "SECURE, RELIABLE, TRANSPORT" Source/Sink elements now merged. Seems well-placed to replace RTMP.

  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

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

  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.

  40. GSTREAMER RUST BINDINGS GSTREAMER RUST BINDINGS Should be in pretty good shape now. --> Sebastian's talk tomorrow 11am in the Rust devroom

  41. GSTREAMER C# BINDINGS GSTREAMER C# BINDINGS Have also been resurrected and updated.

  42. ROOM FOR IMPROVEMENT ? ROOM FOR IMPROVEMENT ?

  43. ADAPTIVE STREAMING (DASH, HLS, ETC.) ADAPTIVE STREAMING (DASH, HLS, ETC.) Really need to improve our creation story!

  44. MAKE IT EASIER TO WRITE "SIMPLE MAKE IT EASIER TO WRITE "SIMPLE SERVERS" SERVERS" • souphttpserversink • rtspserversink

  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?

  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

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend