FrontPage

Farsight - Audio/Video Communications Framework

The Farsight project is an effort to create a framework to deal with all known audio/video conferencing protocols. On one side it offers a generic API that makes it possible to write plugins for different streaming protocols, on the other side it offers an API for clients to use those plugins.

The main target clients for Farsight are Instant Messaging applications. These applications should be able to use Farsight for all their Audio/Video conferencing needs without having to worry about any of the lower level streaming and NAT traversal issues.

Farsight forms an integral part of the Telepathy framework. It is used by Empathy through the Telepathy-Farsight library. It can also be easily used on embedded platforms by using Stream-Engine. The Telepathy-Farsight library binds it to the Connection Managers via D-Bus and the Telepathy Media Stream Spec and is used for all their streaming requirements.

Telepathy and Farsight constitute the first implementation of the Jingle XMPP protocol.

Farsight deals with all the streaming specific parts of the protocol and leaves the signaling to the clients. The Farsight plugin API is heavily influenced by the ICE (Interactive Connectivity Establishment) RFC draft. This API allows for an easy interaction between the signaling and streaming parts of the sessions.

Farsight uses GStreamer for all it's media streaming needs. A large part of the project is to provide the required elements and improvements to GStreamer in order to deal with streaming protocols such as RTP.

Farsight is written in C/Glib and uses GObjects extensively. Python bindings are available for Farsight2. Stream-Engine also allows any applications written in languages that have D-Bus bindings to use Farsight by way of the Telepathy Media Stream API.

This project is sponsored by http://www.collabora.co.uk/

License

Farsight is licensed under the GNU Lesser General Public License, version 2.1 or later.

Documentation

The core API documentation is available for Farsight1 and Farsight2/plugins.

There is a Farsight2FAQ and some videos/slides from Talks about Farsight2.

The H263/H263+/H263++ RTP fiasco is explained in H263Jungle.

A page documenting the new RTP design for GStreamer : GstRtpDesign. The new Farsight 2 API is being discussed Farsight2Design and the list of left todo Farsight2Todo

Available Plugins

Available Transmitters

Transmitters are plugins that are used by Farsight plugins in order to implement lower level connectivity establishment methods such as ICE or GTalk-P2P.


Git repositories

Browse the Farsight development tree on gitweb.
Fetch it using: git clone git://git.collabora.co.uk/git/farsight.git

Browse the Gst-Plugins-Farsight development tree on gitweb.
Fetch it using: git clone git://git.collabora.co.uk/git/gst-plugins-farsight.git

Browse the Farsight2 development tree on gitweb.
Fetch it using: git clone git://git.collabora.co.uk/git/farsight2.git


Releases

http://farsight.freedesktop.org/releases/farsight

http://farsight.freedesktop.org/releases/gst-plugins-farsight

http://farsight.freedesktop.org/releases/farsight2


Mailing list and IRC

You can reach the developers and other users of Farsight at our mailing list or in the #farsight channel on freenode.


Misc Pages and Links

Please report bugs in the freedesktop.org bugzilla.