User:Travislaporte/sandbox

Emby
Emby (formerly Media Browser ), is an open source software suite designed to organize, display, and stream multi-media to a variety of devices. It is designed using the client-server model by combining Emby Server, available on Windows, Linux, MacOS, FreeBSD, and a selection of NAS (network-attached storage) devices, with a number of client applications available on platforms such as Android, iOS, Windows Phone, and more.

Functionality
Emby Server is the media server software that serves as the provider for all Emby client applications. It is responsible for organizing all of the user's media and streaming it to client devices.

Organization and Metadata Management:
Emby Server allows users to organize their local media collection by automatically importing metadata from various providers. For movies and television, Emby uses providers like TheTVDB, IMDb, and TheMovieDB. These sources provide information such as titles, run times, episode orders, synopses, cast, genre, and release date. For Music, Emby uses providers like MusicBrainz and TheAudioDB to acquire information that includes album name, artists, genre, release date, studio and more. This metadata can be edited by the user as well.

Additionally, these sources can provide cover art, posters, pictures of the artists or cast, and fan art such as backgrounds and banners. Client applications can use these images to display the user's library in a manner similar to services such as Netflix and Google Play. Ratings can also be imported from sources like Rotten Tomatoes and IMDb.

Emby Server also stores data relating to client usage, such as watch status, episode progress for television series, resume status, and user provided ratings. This information can be used to let users continue watching where they left off in a previous session.

Plugins and Channels
Emby Server allows users to download and enable a number of plugins that provide additional functionality. This includes plugins that allow media to be synced with online cloud providers like Google Drive, OneDrive, and Dropbox. There are also plugins that provide support for digital books, additional metadata sources, configuration backup and more.

Channels are also available and can be used to provide access to online media sources like Twitch.tv, Vimeo, SoundCloud, and more. This allows client applications to stream content from these sources, which allows users to rely on Emby as an integrated solution for more than just their own media files.

Streaming
Emby Server uses three methods to stream media to client applications: Direct Play, Direct Stream, and Transcoding. Direct Play can be used when the media file that the client is requesting is in a format that can be played by the client device. It passes the client the location of the file and then the client plays it. This requires that the client have access to the location where the file is stored, either locally or over a network. Since Emby Server only needs to give the client the location of the file, this method does not require much processing. Like Direct Play, Direct Stream can only be used when the client can play the file it is requesting. For Direct Stream, Emby Server feeds the contents of the file, unchanged, to the client application, which plays the file. Since Emby Server is feeding the file to the client, Direct Stream can be used when the client cannot directly access the file, as it only requires the client to be connected to Emby Server. This process also does not require much processing. Transcoding is required when the client is incapable of playing the file it wants to access, due to format or other limitations. In this case, Emby Server attempts to transcode the file into a format that is playable by the client device. This process can require significant processing for files with high bit rate s.
 * Direct Play:
 * Direct Stream:
 * Transcoding:

Sync
Emby Server can also be used to sync media files to a client device. A client can request a copy of a media file on the server, and Emby Server will supply a copy that is playable on the target device. This allows clients to store media for use when a connection to the server cannot be established.

Availability
Emby Server is available on the following platforms:
 * Windows
 * OS X
 * Linux distributions including:
 * Arch Linux
 * CentOS
 * Debian
 * Fedora
 * Ubuntu
 * Docker
 * FreeBSD
 * NAS devices including:
 * ASUSTOR
 * FreeNAS
 * Open Media Vault
 * QNAP

Functionality
The Emby software suite provides a number of clients that can be used to connect to Emby Server on different devices. These clients are used to provide user interfaces that conform to the standards and conventions of the client device. For example, the Emby application for Android TV is designed to provide a 10-foot user interface, while the application for Android is designed to be used with a touch screen.

Client applications take advantage of the metadata collected by Emby Server to give the user a visual representation of their content library, similar to services like Netflix or iTunes.

Availability
Emby clients are available on the following platforms:
 * HTML5 Web Client (for use with web browsers)
 * Android
 * iOS
 * Windows
 * Windows Phone
 * Kodi
 * Xbox 360
 * Android TV
 * Amazon FireTV
 * Chromecast
 * Roku

Development
The current major version of Emby (version 3) has been in development since 2012. The project is open source and available to the public on GitHub. The development team is looking for contributors and testers.

Emby is developed using various open source tools and software. A core component of Emby Server is FFmpeg, which is software designed for working with audio and video files. Emby server uses FFmpeg for all media transcoding. To facilitate development, Emby makes use of Swagger, a tool to provide built in documentation. Emby Server also uses jQuery, Mono, and Service Stack.

Emby's Mobile applications make use of Cordova, an Apache framework designed to allow one codebase to function on a variety of platforms. It is currently being used for both the Android and iOS clients.