Multi-room playout (Home Area entertainment) Jan Schmidt- - - PowerPoint PPT Presentation

multi room playout home area entertainment
SMART_READER_LITE
LIVE PREVIEW

Multi-room playout (Home Area entertainment) Jan Schmidt- - - PowerPoint PPT Presentation

Multi-room playout (Home Area entertainment) Jan Schmidt- thaytan@noraisin.net - jan.schmidt@oracle.com Concept My cousin Levi Concept Music in every room Zones Remote control Synchronisation Don't sound like a stadium


slide-1
SLIDE 1

Multi-room playout (Home Area entertainment)

Jan Schmidt- thaytan@noraisin.net

  • jan.schmidt@oracle.com
slide-2
SLIDE 2

Concept

  • My cousin Levi
slide-3
SLIDE 3

Concept

  • Music in every room
  • Zones
  • Remote control
slide-4
SLIDE 4

Synchronisation

  • Don't sound like a stadium
  • Within a millisecond?

http://www.flickr.com/photos/bbmexplorer/2954373489

slide-5
SLIDE 5

Video

  • Not much extra work – fundamentally the

same

slide-6
SLIDE 6

Bandwidth

  • Unicast OK for audio
  • Not so good for video – multicast is better
slide-7
SLIDE 7

Sinks and synchs

  • Playback synchronisation happens in the

sink elements

  • Requires a clock and a base time
  • Audio resampling
  • NTP
  • PTP
slide-8
SLIDE 8

GStreamer network clock

  • Master: GstNetTimeProvider

– Listens for UDP packets on a port,

responds with the time

– Wraps a GstClock

  • Slave: GstNetClientClock

– Correlates between observations of the

remote time and the system clock

– A normal GstClock

slide-9
SLIDE 9

Aurena

slide-10
SLIDE 10

Implementation

Server Daemon Server Daemon UI (Web Browser) UI (Web Browser) Client Client Client Client Client Client

slide-11
SLIDE 11

Implementation

  • Avahi for server discovery
  • JSON event stream to clients - libjson-glib
  • GstNetClock
  • Media streams
  • HTML/Javascript UI – libsoup
  • Media library
slide-12
SLIDE 12

Streaming – RTSP

  • gst-rtsp-server makes it easy
  • Problems with synchronisation
  • Multicast possible
slide-13
SLIDE 13

Streaming – HTTP

  • Stream via libsoup
  • Bandwidth concern
slide-14
SLIDE 14

GSS

  • Aurena duplicates big pieces
  • Need to investigate integration
slide-15
SLIDE 15

Communication

  • Chunked HTTP
  • Websocket implementation
  • GstStructure vs JSON-glib
slide-16
SLIDE 16

UI

  • AJAX is fun
slide-17
SLIDE 17

Demo

slide-18
SLIDE 18

Code

  • Available on github:

– https://github.com/thaytan/aurena

slide-19
SLIDE 19

Next steps...

  • media library with metadata

(GstDiscoverer)

  • Multiple zones, ability to move players

between zones

  • RTP multicast streaming
  • Improve clock stability
slide-20
SLIDE 20

Questions?

slide-21
SLIDE 21

Questions?

slide-22
SLIDE 22

Next steps...

Questions?