= 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 [[http://telepathy.freedesktop.org/|Telepathy]] framework. It is used by Empathy through the Telepathy-Farsight library. It can also be easily used on embedded platforms by using [[http://projects.collabora.co.uk/darcs/telepathy/stream-engine/|Stream-Engine]]. The Telepathy-Farsight library binds it to the Connection Managers via [[http://dbus.freedesktop.org|D-Bus]] and the [[http://telepathy.freedesktop.org/spec.html|Telepathy Media Stream Spec]] and is used for all their streaming requirements. Telepathy and Farsight constitute the first implementation of the [[http://www.xmpp.org/extensions/xep-0166.html|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 [[http://gstreamer.freedesktop.org|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/|{{http://farsight.freedesktop.org/images/collabora-logo-54.png}}]] == License == Farsight is licensed under the [[http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html|GNU Lesser General Public License, version 2.1]] or later. == Documentation == The core API documentation is available for [[http://farsight.freedesktop.org/apidoc/farsight/|Farsight1]] and [[http://farsight.freedesktop.org/apidoc/farsight2/|Farsight2]]/[[http://farsight.freedesktop.org/apidoc/farsight2-plugins/|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 == * RtpPlugin : Farsight offers a mature RTP plugin. * MsnWebcamPlugin : Farsight has an MSN Webcam plugin. * YahooWebcamPlugin : Farsight has a Yahoo Webcam plugin, but it needs to be ported to the new API. == 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. * RawUdp : This is a raw udp transmitter with external IP detection using STUN, and can also open up ports with UPnP * Multicast : Multicast UDP (only in Farsight2) * GoogleTalkP2p (libjingle) : This is a transmitter that uses libjingle to do GTalk-P2P (required for PC GTalk interoperability). This transmitter does decent NAT traversal based on older draft version of ICE (~6). (only in Farsight1) * nice ([[http://nice.freedesktop.org/|libnice]]) : This is a transmitter that uses libnice to do ICE (as defined in the ICE-19 draft), as well as Google Talk and MSN compatible ICE-like protocols. (only in Farsight2) ---- == Git repositories == Browse the Farsight development tree on [[http://git.collabora.co.uk/?p=farsight.git;a=summary|gitweb]]. <
> Fetch it using: git clone git://git.collabora.co.uk/git/farsight.git Browse the Gst-Plugins-Farsight development tree on [[http://git.collabora.co.uk/?p=gst-plugins-farsight.git;a=summary|gitweb]]. <
> Fetch it using: git clone git://git.collabora.co.uk/git/gst-plugins-farsight.git Browse the Farsight2 development tree on [[http://git.collabora.co.uk/?p=farsight2.git;a=summary|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 [[https://lists.sourceforge.net/lists/listinfo/farsight-devel|mailing list]] or in the #farsight channel on [[http://freenode.net/|freenode]]. ---- == Misc Pages and Links == Please report bugs in the [[https://bugs.freedesktop.org/enter_bug.cgi?product=Farsight|freedesktop.org bugzilla]]. ----