Song and Dance and TWD using GStreamer Thomas

  • Slides: 29
Download presentation
Song and Dance and TWD using GStreamer Thomas Vander Stichele

Song and Dance and TWD using GStreamer Thomas Vander Stichele

Overview ● ● ● TWD and USP TMS VKC of GST GPE prototyping LAP

Overview ● ● ● TWD and USP TMS VKC of GST GPE prototyping LAP for SAD celebrating FTA Roadmap

software desktops ● Desktops have targets and philosophies – GNOME: less options, less bloat,

software desktops ● Desktops have targets and philosophies – GNOME: less options, less bloat, HIG – KDE: full configurability – Mac. OS: eye candy, artistic personality – Windows: applications ● Desktops need a USP for better marketing ● After-hours business school applied to GNOME ● TMS done by Korean firm

Thorough Market Study

Thorough Market Study

Thorough Market Study

Thorough Market Study

Thorough Market Study

Thorough Market Study

Next year at LWE

Next year at LWE

Karaoke ● What do we need ? ● Why use GStreamer ? ● What

Karaoke ● What do we need ? ● Why use GStreamer ? ● What is GStreamer ? ● What needs to be done ?

What do we need ? ● Audio playback ● Visualization ● Video ● Subtitling

What do we need ? ● Audio playback ● Visualization ● Video ● Subtitling

Why use GStreamer for it ? ● Lot of elements already present ● Framework

Why use GStreamer for it ? ● Lot of elements already present ● Framework is there for things you need ● – Output – Synchronization – Mixing multiple formats Prototyping is easy – gst-launch for quick tests – gst-editor for experimenting with pipelines – Gst-python for testing application structure

GStreamer ● What is it ? ● Why is it not ? ● Elements

GStreamer ● What is it ? ● Why is it not ? ● Elements and pads ● Graph-based pipelines

What is it ? ● ● Core: streaming media framework – Arbitrary filter graphs

What is it ? ● ● Core: streaming media framework – Arbitrary filter graphs – Extensible pluggable architecture – Data-agnostic, basic elements (GObjects) Plug-ins : provide functionality – Audio : filters, codecs, analysis, visuals – Video : filters, codecs, (de)muxers – Sources/Sinks : video/audio/media in/out

What is it ? ● GStreamer is first of all a library – ●

What is it ? ● GStreamer is first of all a library – ● Compare it to GTK We provide a few applications – A player as a test bed for features (~ gtk-demo) – An editor used in debugging (~ glade) ● We provide plug-ins ● We provide documentation

Why is it ? ● ● Linux has bad media handling many hacked single-purpose

Why is it ? ● ● Linux has bad media handling many hacked single-purpose apps and libs, code copies and forks, . . . – ● other OS's have such a framework – ● avifile, Broadcast 2000, . . . Direct. Show, Quicktime framework, Be Media, Real. Media SDK LGPL core gives companies the chance to make binary plug-ins

What is it not ? ● It's NOT a sound server – one could

What is it not ? ● It's NOT a sound server – one could be written with it (maybe) – not important for an app ● It's NOT Gnome-only ● It's NOT 100% ABI-stable (partial) ● It's NOT perfect

Elements and Pads ●element has pads ●chain- or loop-based ●buffer of data comes in

Elements and Pads ●element has pads ●chain- or loop-based ●buffer of data comes in on the sink pad ●element processes data ●Processed buffer goes out on the source pad ●This one decodes Ogg/Vorbis audio

Graph-based pipelines ●Pipeline managed by a bin (not visible) ●Links elements by their pads

Graph-based pipelines ●Pipeline managed by a bin (not visible) ●Links elements by their pads ●elements are chain-based or loop-based ●Data will flow left to right

What needs to be done ? ● Experiment – gst-launch – gst-editor ● Write

What needs to be done ? ● Experiment – gst-launch – gst-editor ● Write elements ● Fix bugs – In elements – In applications like gst-editor

Let's get to it ! ● Audio playback – ● Visualization – ● Guadec-editor

Let's get to it ! ● Audio playback – ● Visualization – ● Guadec-editor 1 Guadec-editor 2 Subtitling – Guadec-editor 3

Combining the three ● Normal: – ● Guadec-editor 4 Threaded: – Guadec-editor 5

Combining the three ● Normal: – ● Guadec-editor 4 Threaded: – Guadec-editor 5

Using video footage ● Threaded MPEG playback: – ● Guadec-editor 6 With subtitles –

Using video footage ● Threaded MPEG playback: – ● Guadec-editor 6 With subtitles – -guadec-editor 7

Ideas for improvement ● Use pitchshifter so Stallman can sing ● Use festival to

Ideas for improvement ● Use pitchshifter so Stallman can sing ● Use festival to replace Stallman ● – Play: Guadec-editor 8 – Save to vorbis: Guadec-editor 9 – Use with subtitles: guadec-editor 10 Personalise – Find video of friends: guadec-editor 11

Ideas for improvement ● Use live input – ● Use backing music – ●

Ideas for improvement ● Use live input – ● Use backing music – ● ● Mix in audience audio and video Mod files, midi files, . . . Use color font rendering Add a bouncing ball plugin

Gkaraoke ● Truth is stranger than fiction

Gkaraoke ● Truth is stranger than fiction

Roadmap ● ● Actual stuff to work on What can you do ?

Roadmap ● ● Actual stuff to work on What can you do ?

Actual stuff to work on ● Media-info library: – Save and load metadata and

Actual stuff to work on ● Media-info library: – Save and load metadata and streaminfo – Cache it (-> thumbnails) – Playback parameters (mixing, volume) – Shared by all apps

Actual stuff to work on ● ● ● Nautilus: – Hoverplay for audio and

Actual stuff to work on ● ● ● Nautilus: – Hoverplay for audio and video – Further audio view improvement Encoding profiles – Used by recorder, sound-juicer, . . . – Using human-readable names Editor: – Educational GStreamer tool

What can you do ? ● Users – Test our applications: ● ● ●

What can you do ? ● Users – Test our applications: ● ● ● – – – Gst-totem, gst-player, gst-editor Rhythmbox, quark, nautilus-media, sound-juicer Use media files on http: //gstreamer. net/media/ Suggest new applications Run the upcoming test suite on your computer Harass developers

What can you do ? ● Developers – – – Help us fix bugs

What can you do ? ● Developers – – – Help us fix bugs and implement new features Document Write applications Write/fix elements Test and use the bindings Use the tools we provide ● ● – Build scripts Template tarballs Go to Ronald's talk