Integrating Video Conferencing into Everyday Applications Olivier - - PowerPoint PPT Presentation

integrating video conferencing into everyday applications
SMART_READER_LITE
LIVE PREVIEW

Integrating Video Conferencing into Everyday Applications Olivier - - PowerPoint PPT Presentation

Integrating Video Conferencing into Everyday Applications Olivier Crte Calls integrated Calls in their own app Easy! Skype, Ekiga, WLM, etc Call directly in other apps NEW! EXCITING! INNOVATIVE! Ingredients Call


slide-1
SLIDE 1

Integrating Video Conferencing into Everyday Applications

Olivier Crête

slide-2
SLIDE 2

Calls integrated

  • Calls in their own app
  • Easy!
  • Skype, Ekiga, WLM, etc
  • Call directly in other apps
  • NEW!
  • EXCITING!
  • INNOVATIVE!
slide-3
SLIDE 3

Ingredients

  • Call signallings
  • Telepathy
  • Media Framework
  • GStreamer
  • Call protocol abstraction
  • Farsight 2
slide-4
SLIDE 4

Farsight 2: Overview

  • Audio & video conferencing abstraction
  • Multiple protocols abstracted
  • RTP (XMPP Jingle, SIP, MSN SIP, etc)
  • MSN Webcam
  • Raw (soon)
  • Others...
  • Regular GStreamer element
slide-5
SLIDE 5

Widely deployed

  • Maemo
  • MeeGo
  • GNOME's Empathy
  • New KDE Telepathy Call UI
  • Pidgin
  • aMSN
slide-6
SLIDE 6

decodebin for calls

  • Encoder
  • Decoder
  • Payloader
  • Depayloader
  • Network sources
  • Network sinks
slide-7
SLIDE 7

High level objects

  • Participants
  • People
  • Sessions
  • Media types (audio, video)
  • Stream
  • Intersection of Participant and Session
slide-8
SLIDE 8

Session

  • One type of media (audio, video, etc)
  • One local media source

– One microphone – One camera – File – etc

  • Multiple stream from other participants
  • RTP session
slide-9
SLIDE 9

Stream

  • One participant in one session
  • Use for communication with participant

– Codecs – Candidates

  • Remote media comes out of here
slide-10
SLIDE 10

Conference

  • The GStreamer element
  • Multiple synchronized sessions
  • Contains everything else
slide-11
SLIDE 11

Conference

Session (audio) Session (video 1) Participant Bob Participant Alice Session (video 2) Stream Stream Stream Stream Stream Stream

slide-12
SLIDE 12

Farsight 2: RTP

  • Complete RTP with RTCP
  • Including A/V sync
  • Full DTMF
  • Offer/Answer Codec Negotiation
  • Multiple transports for RTP
  • ICE (RFC, Google and MSN)
  • Unicast UDP
  • Multicast UDP
  • Shared memory
slide-13
SLIDE 13

Telepathy Farsight integration

  • Telepathy-Farsight library
  • Hides all signalling
  • Easy API
  • Telepathy streamed media interface limited
  • Only one-to-one
  • Strange session/stream separation
  • New Call interface is the bright future
  • Will require some improvements in tp-fs
slide-14
SLIDE 14

Farsight 2 element

My Audio → My Video → → Remote Video → Remote Audio → Remote Audio fs*conference sink_1 sink_2 src_1_3213212_8 src_2_9875203_34 src_1_3213212_96

slide-15
SLIDE 15

Integrated Farsight 2: Simple Case

sink pulsesink src pulsesrc sink pulsesink sink xvimagesink src v4l2src fs*conference sink_1 sink_2 src_1_3213212_8 src_2_9875203_34 src_1_3213212_96

slide-16
SLIDE 16

Another simple case

fs*conference pulsesrc

  • sssink

xvimagesink v4l2src

liveadder

slide-17
SLIDE 17

Adding More stuff

fs*conference pulsesrc pulsesink xvimagesink v4l2src

tee tee

slide-18
SLIDE 18

Add recording

fs*conference pulsesrc pulsesink xvimagesink v4l2src

tee tee vorbisenc theoraenc

  • ggmux

filesink

slide-19
SLIDE 19

Steps to get a Telepathy call

  • 1. Get D-Bus bus
  • 2. Get Telepathy Account & Contact
  • 3. Find the handle for that contact
  • 4. Request a Telepathy Channel
  • 5. Wrap it into Telepathy-Python
  • 6. Wrap it into Telepathy-Farsight
  • 7. Attach session-created and session-created
  • 8. Add members
  • 9. Request streams
slide-20
SLIDE 20

Steps to get a Telepathy call

  • 10. Put the conference into the pipeline on

Telepathy session creation

  • 11. Add/Link the sink/source on stream creation
slide-21
SLIDE 21

Extras

  • Hook up UI to add added streaming-side

features

  • Example:
  • The Record button adds the recording pipeline
slide-22
SLIDE 22

Soon in Farsight2

  • Developer ease of use
  • Adaptive behaviour for better quality
slide-23
SLIDE 23

Ease of use

  • Brought to you by Youness Alaoui
  • Magical source and sink
  • Filters
  • Even higher level APIs
  • For custom Uis
  • Adjustable level of abstraction
slide-24
SLIDE 24

Auto Sources & Sinks

  • Auto-discovery across APIs
  • Video4Linux 1
  • Video4Linux 2
  • DV cams ?
  • Etc
  • Dynamically switch
  • GstPropertyProbe sucks
  • Need a better Interface
slide-25
SLIDE 25

Source

  • Adds tee
  • Only start source when needed
  • When something is connected (to the tee)
  • Property to disable it (for Hold)
slide-26
SLIDE 26

Sink

  • Add mixing only if required
  • Drop all buffers using easy API (for Hold)
slide-27
SLIDE 27

Filter

  • Between two pads
  • NOT an element, maybe includes many
  • Attach to a pad
  • Returns a new pad
  • Transforms GstMessages to signals
  • Works in both directions
slide-28
SLIDE 28

Filter Manager

  • Handle adding multiple filters
  • Works with playing pipeline
  • Does pad blocking magic
  • Simple API
slide-29
SLIDE 29

Multi Filter Manager

  • Same API as regular Filter Manager
  • Same filters
  • Multiple pads
  • Useful when using sinks that mix
slide-30
SLIDE 30

Simple Farsight Fsu ⇒

  • FsuConference
  • FsuSession
  • FsuStream
  • Do all the plugging
  • Zero GStreamer knowledge required
slide-31
SLIDE 31

Telepathy-Fsu

  • Library
  • Above Fsu & Telepathy-Farsight
  • Telepathy Call handler without a UI
  • Ideal for Mobile
slide-32
SLIDE 32

Adaptive behaviours

  • Standards based
  • Experimental !!!
  • Extended RTP Profile for Real-time Transport

Control Protocol (RTCP)-Based Feedback (AVPF)

  • Keyframes on demand
  • NACKs
  • Other feedback
  • TCP Friendly Rate Control (TFRC)
slide-33
SLIDE 33

More to come ?

  • Generic Forward Error Correction (FEC)
  • Which type to use ?
  • Interactive Connectivity Establishment (ICE)

with SIP

  • SIP Forking & ICE
  • Contiguous ports for fallback
  • Secure RTP (SRTP)
slide-34
SLIDE 34

What can you do ?

  • Innovative Call UIs
  • Collaborative text editing
  • OOo, Abiword, Gnumeric, KOffice
  • Stream slides with Evince, Okular
  • Remote desktop viewing (exists using VNC)
  • Mobile UIs
  • Other ideas?
slide-35
SLIDE 35

Thank you

  • #farsight, #telepathy, #gstreamer @ FreeNode
  • #empathy @ GimpNet
  • http://farsight.freedesktop.org/
  • http://telepathy.freedesktop.org/
  • http://gstreamer.net/