State of the GStreamer Project - linux.conf.au · Ecosystem of companies providing services around...
Transcript of State of the GStreamer Project - linux.conf.au · Ecosystem of companies providing services around...
![Page 2: State of the GStreamer Project - linux.conf.au · Ecosystem of companies providing services around GStreamer and companies building their ... – Open Source WebRTC implementation](https://reader030.fdocuments.in/reader030/viewer/2022041023/5ed43d6404ac8053a72e7e19/html5/thumbnails/2.jpg)
Who am I?
GStreamer developer since 2003Director & Engineer with Centricular Ltd
![Page 3: State of the GStreamer Project - linux.conf.au · Ecosystem of companies providing services around GStreamer and companies building their ... – Open Source WebRTC implementation](https://reader030.fdocuments.in/reader030/viewer/2022041023/5ed43d6404ac8053a72e7e19/html5/thumbnails/3.jpg)
Introduction
I work here
for
![Page 4: State of the GStreamer Project - linux.conf.au · Ecosystem of companies providing services around GStreamer and companies building their ... – Open Source WebRTC implementation](https://reader030.fdocuments.in/reader030/viewer/2022041023/5ed43d6404ac8053a72e7e19/html5/thumbnails/4.jpg)
Introduction
Which is here
![Page 5: State of the GStreamer Project - linux.conf.au · Ecosystem of companies providing services around GStreamer and companies building their ... – Open Source WebRTC implementation](https://reader030.fdocuments.in/reader030/viewer/2022041023/5ed43d6404ac8053a72e7e19/html5/thumbnails/5.jpg)
Introduction
some chickens, cats, fruit trees...
With some of these
![Page 6: State of the GStreamer Project - linux.conf.au · Ecosystem of companies providing services around GStreamer and companies building their ... – Open Source WebRTC implementation](https://reader030.fdocuments.in/reader030/viewer/2022041023/5ed43d6404ac8053a72e7e19/html5/thumbnails/6.jpg)
GStreamer
● Pipeline-based multimedia framework● Basic building blocks – elements, connected
through pads
● filesrc location=test.mp3 ! decodebin ! pulsesink
![Page 7: State of the GStreamer Project - linux.conf.au · Ecosystem of companies providing services around GStreamer and companies building their ... – Open Source WebRTC implementation](https://reader030.fdocuments.in/reader030/viewer/2022041023/5ed43d6404ac8053a72e7e19/html5/thumbnails/7.jpg)
Overview
● Open Source● Cross-platform
– Linux, embedded Linux, Windows, OSX, iOS, Android, …
– x86, ARM, PowerPC, SPARC, …
● Stable GObject based C API/ABI● Bindings for many languages
– Python, C++, JavaScript, .NET, …
![Page 8: State of the GStreamer Project - linux.conf.au · Ecosystem of companies providing services around GStreamer and companies building their ... – Open Source WebRTC implementation](https://reader030.fdocuments.in/reader030/viewer/2022041023/5ed43d6404ac8053a72e7e19/html5/thumbnails/8.jpg)
Overview
● Not a media player or playback library● Not a codec and protocol library● Not a transcoding tool● Not a streaming server
● But can be (and is) used to implement all that
![Page 9: State of the GStreamer Project - linux.conf.au · Ecosystem of companies providing services around GStreamer and companies building their ... – Open Source WebRTC implementation](https://reader030.fdocuments.in/reader030/viewer/2022041023/5ed43d6404ac8053a72e7e19/html5/thumbnails/9.jpg)
Overview
● Goals– Flexible and extensible design
– Easy to integrate with other software(in both directions)
● Large, active developer and user community● Ecosystem of companies providing services
around GStreamer and companies building their own products and services on top of GStreamer
![Page 10: State of the GStreamer Project - linux.conf.au · Ecosystem of companies providing services around GStreamer and companies building their ... – Open Source WebRTC implementation](https://reader030.fdocuments.in/reader030/viewer/2022041023/5ed43d6404ac8053a72e7e19/html5/thumbnails/10.jpg)
GStreamer Applications
● Media players● Audio/video editors, music composers● VOIP/video communication● Web browsers● Transcoders● Streaming servers and clients● … and many more
![Page 11: State of the GStreamer Project - linux.conf.au · Ecosystem of companies providing services around GStreamer and companies building their ... – Open Source WebRTC implementation](https://reader030.fdocuments.in/reader030/viewer/2022041023/5ed43d6404ac8053a72e7e19/html5/thumbnails/11.jpg)
A Brief History
0.0.1 – 10th Jun 1999
0.1.0 – 11th Jan 2001
0.2.0 – 7th Jun 2001
0.3.0 – 12th Dec 2001
0.4.0 – 5th Jul 2002
0.6.0 – 1st Feb 2003
- GNOME 2 integration
0.8.0 – 16th Mar 2004
0.10.0 – 5th Dec 2005
- Stable API guarantees
1.0.0 – 24 Sep 2012
- First API/ABI break since 2005
1.2.0 – 24 Sep 2013
1.4.0 – 19 Jul 2014
Currently 1.5 – 2 million lines of code
![Page 12: State of the GStreamer Project - linux.conf.au · Ecosystem of companies providing services around GStreamer and companies building their ... – Open Source WebRTC implementation](https://reader030.fdocuments.in/reader030/viewer/2022041023/5ed43d6404ac8053a72e7e19/html5/thumbnails/12.jpg)
GStreamer 1.0
● Released in 2012● First ABI/API break since 0.10 in 2005● New versioning scheme● Large changes to internals● Relatively small porting effort for apps
![Page 13: State of the GStreamer Project - linux.conf.au · Ecosystem of companies providing services around GStreamer and companies building their ... – Open Source WebRTC implementation](https://reader030.fdocuments.in/reader030/viewer/2022041023/5ed43d6404ac8053a72e7e19/html5/thumbnails/13.jpg)
Measuring Project Health
● Number of commits/month
![Page 14: State of the GStreamer Project - linux.conf.au · Ecosystem of companies providing services around GStreamer and companies building their ... – Open Source WebRTC implementation](https://reader030.fdocuments.in/reader030/viewer/2022041023/5ed43d6404ac8053a72e7e19/html5/thumbnails/14.jpg)
Measuring Project Health
● Lines of code/month
![Page 15: State of the GStreamer Project - linux.conf.au · Ecosystem of companies providing services around GStreamer and companies building their ... – Open Source WebRTC implementation](https://reader030.fdocuments.in/reader030/viewer/2022041023/5ed43d6404ac8053a72e7e19/html5/thumbnails/15.jpg)
Measuring Project Health
● Number of authors/month
![Page 16: State of the GStreamer Project - linux.conf.au · Ecosystem of companies providing services around GStreamer and companies building their ... – Open Source WebRTC implementation](https://reader030.fdocuments.in/reader030/viewer/2022041023/5ed43d6404ac8053a72e7e19/html5/thumbnails/16.jpg)
Measuring Project Health
● Commit size (lines/commit)
![Page 17: State of the GStreamer Project - linux.conf.au · Ecosystem of companies providing services around GStreamer and companies building their ... – Open Source WebRTC implementation](https://reader030.fdocuments.in/reader030/viewer/2022041023/5ed43d6404ac8053a72e7e19/html5/thumbnails/17.jpg)
Conclusions
● Bugzilla stats would be interesting● Things have slowed down since 1.0● Less work, easier work, or just works?
![Page 18: State of the GStreamer Project - linux.conf.au · Ecosystem of companies providing services around GStreamer and companies building their ... – Open Source WebRTC implementation](https://reader030.fdocuments.in/reader030/viewer/2022041023/5ed43d6404ac8053a72e7e19/html5/thumbnails/18.jpg)
Recent Developments
● OpenWebRTC– Open Source WebRTC implementation from
Ericsson Labs
● OpenGL integration– Integrated support for GPU processing operations
● Improving hardware resource usage– Better support for on-chip function units
– Hardware decoders and encoders
![Page 19: State of the GStreamer Project - linux.conf.au · Ecosystem of companies providing services around GStreamer and companies building their ... – Open Source WebRTC implementation](https://reader030.fdocuments.in/reader030/viewer/2022041023/5ed43d6404ac8053a72e7e19/html5/thumbnails/19.jpg)
Demo
![Page 20: State of the GStreamer Project - linux.conf.au · Ecosystem of companies providing services around GStreamer and companies building their ... – Open Source WebRTC implementation](https://reader030.fdocuments.in/reader030/viewer/2022041023/5ed43d6404ac8053a72e7e19/html5/thumbnails/20.jpg)
Recent Developments
● TVs – LG and Samsung– LG took over WebOS from HP
– Samsung hiring
● HLS/DASH improvements– Adaptive bitrate switching
– Trick modes
● RTSP retransmission– Improves performance under packet loss
![Page 21: State of the GStreamer Project - linux.conf.au · Ecosystem of companies providing services around GStreamer and companies building their ... – Open Source WebRTC implementation](https://reader030.fdocuments.in/reader030/viewer/2022041023/5ed43d6404ac8053a72e7e19/html5/thumbnails/21.jpg)
Pitivi
● Ongoing development to make Pitivi work well● http://fundraiser.pitivi.org/
– Raised 22,510 € to fund development so far
● Driving some great development upstream– GstAggregator
– gst-validate
– gst-editing-services
![Page 22: State of the GStreamer Project - linux.conf.au · Ecosystem of companies providing services around GStreamer and companies building their ... – Open Source WebRTC implementation](https://reader030.fdocuments.in/reader030/viewer/2022041023/5ed43d6404ac8053a72e7e19/html5/thumbnails/22.jpg)
Meanwhile, on the mailing list
● “Hi! Over the last few months I've been working on a project for the European Space Agency that is scheduled to be launched next year for use on the International Space Station, providing astronauts with a mobile procedure viewer in the form of a slightly modified Nexus 5 smartphone."
● Scheduled to go up in Q1/2015, I believe
![Page 23: State of the GStreamer Project - linux.conf.au · Ecosystem of companies providing services around GStreamer and companies building their ... – Open Source WebRTC implementation](https://reader030.fdocuments.in/reader030/viewer/2022041023/5ed43d6404ac8053a72e7e19/html5/thumbnails/23.jpg)
More...
● Network clock improvements– More stable & accurate
– Ongoing
![Page 24: State of the GStreamer Project - linux.conf.au · Ecosystem of companies providing services around GStreamer and companies building their ... – Open Source WebRTC implementation](https://reader030.fdocuments.in/reader030/viewer/2022041023/5ed43d6404ac8053a72e7e19/html5/thumbnails/24.jpg)
3D Movies
● Stereoscopic 3D video support– In progress
CC-by-nc-sa https://www.flickr.com/photos/louiswu/15394664278/in/set-72157648810821396/
![Page 25: State of the GStreamer Project - linux.conf.au · Ecosystem of companies providing services around GStreamer and companies building their ... – Open Source WebRTC implementation](https://reader030.fdocuments.in/reader030/viewer/2022041023/5ed43d6404ac8053a72e7e19/html5/thumbnails/25.jpg)
Demo
![Page 26: State of the GStreamer Project - linux.conf.au · Ecosystem of companies providing services around GStreamer and companies building their ... – Open Source WebRTC implementation](https://reader030.fdocuments.in/reader030/viewer/2022041023/5ed43d6404ac8053a72e7e19/html5/thumbnails/26.jpg)
More...
● New Device Probing API– Easier discovery of camera and audio devices
– Demo
● Higher level APIs– GstPlayer API
![Page 27: State of the GStreamer Project - linux.conf.au · Ecosystem of companies providing services around GStreamer and companies building their ... – Open Source WebRTC implementation](https://reader030.fdocuments.in/reader030/viewer/2022041023/5ed43d6404ac8053a72e7e19/html5/thumbnails/27.jpg)
Better Debugging
● Quality Assurance and tools– Continuous Integration
– New tracing subsystem
– gst-debug-viewer
– gst-validate & GstHarness
● gst-devtools repository
![Page 28: State of the GStreamer Project - linux.conf.au · Ecosystem of companies providing services around GStreamer and companies building their ... – Open Source WebRTC implementation](https://reader030.fdocuments.in/reader030/viewer/2022041023/5ed43d6404ac8053a72e7e19/html5/thumbnails/28.jpg)
Work in Progress
● Bug-fixing/Maintenance● New codecs/formats● KLV● DVB/MPEG-TS improvements● Improving Wayland support● V4l2 encoder/decoder support● Better live mixing
![Page 29: State of the GStreamer Project - linux.conf.au · Ecosystem of companies providing services around GStreamer and companies building their ... – Open Source WebRTC implementation](https://reader030.fdocuments.in/reader030/viewer/2022041023/5ed43d6404ac8053a72e7e19/html5/thumbnails/29.jpg)
Getting Involved
● IRC - #gstreamer on freenode● Mailing Lists – gstreamer-devel on
http://lists.freedesktop.org/● Bugzilla – http://bugzilla.gnome.org &
http://gstreamer.freedesktop.org/bugs
![Page 30: State of the GStreamer Project - linux.conf.au · Ecosystem of companies providing services around GStreamer and companies building their ... – Open Source WebRTC implementation](https://reader030.fdocuments.in/reader030/viewer/2022041023/5ed43d6404ac8053a72e7e19/html5/thumbnails/30.jpg)
Questions?Questions?