Kodi: Difference between revisions

From Official Kodi Wiki
Jump to navigation Jump to search
Line 1: Line 1:
{{Infobox Software
| name = XBMC
| logo = [[Image:XBMC Logo.png|100px]]
| screenshot = [[Image:XBMC Home Screen.jpg|250px]]
| caption = XBMC Home Screen
| developer = [http://xbmc.org/about/team/ Team XBMC]
| released =
| frequently_updated    = yes<!-- Release version update? Don't edit this page, just click on the version number! -->
| latest preview version = [[Neutral build]] from [[SVN]]
| latest preview date    = [[Nightly build|Nightly]] (codename: Babylon)
| programming language = [[C++]]
| operating system = [[Xbox]], [[Microsoft Windows]], [[Linux]], [[Mac OS X]], and [[Apple TV|Apple TV OS]]
| platform =  [[x86 architecture]]
| language = [[Internationalization and localization|International (multiple languages)]]
| genre = [[media player (application software)|Media player]], [[media center]]
| license = [[GNU General Public License|GNU GPL]]
| website = [http://xbmc.org xbmc.org]
}}


'''XBMC Media Center''' (formerly named "''XBox Media Center''") is a [[free and open source software|free and open source]] [[cross-platform]] media-player and entertainment hub. It was originally created for the first-generation [[Xbox]] game-console, but is now available for the [[Linux]], [[Mac OS X]] ([[Mac OS X v10.5|Leopard]], [[Mac OS X v10.4|Tiger]], [[Apple TV]]), and [[Microsoft Windows]] operating systems. There is also a bootable [[Live CD]] version referred to as "''[[XBMC#XBMC_Live|XBMC Live]]''"<ref name="xbmc.org">{{cite web |url=http://xbmc.org/lcapriotti/2008/09/18/xbmc-live-atlantis-beta1/ |title=XBMC Live Atlantis Beta1! |author=Luigi Capriotti |date=2008-09-18 |publisher=xbmc.org}}</ref><ref name="http">{{cite web |url=http://xbmc.org/lcapriotti/2008/11/15/xbmc-live-810-atlantis-released/ |title=XBMC Live 8.10 (Atlantis) released |author=Luigi Capriotti |date=2008-11-15 |publisher=xbmc.org}}</ref>
XBMC supports most common audio, video, and image formats, playlists, audio visalizations, slideshows, weather reporting, and third-party plugins. It is network-capable (internet and [[Local area network|LAN]] shares).
Through its plugin system which is based on [[Python (programming language)|Python]], XBMC is expandable via add-ons that include features such as television program guides, [[YouTube]], [[Hulu]], [[Veoh]], online movie trailer support, and [[SHOUTcast]]/[[Podcast]] streaming. XBMC also functions as a gaming platform by allowing users to play mini-games developed with [[Python (programming language)|Python]], on any operating system. In addition, the Xbox version of XBMC contains the ability to launch console games, and [[Homebrew (video games)|homebrew]] applications such as [[Console emulator|emulators]].
XBMC as a whole is distributed under the [[GNU General Public License]] (with a few libraries used by XBMC licensed under the [[GNU Lesser General Public License|LGPL]]). XBMC is not produced, endorsed, or supported by [[Microsoft]], which means that XBMC for Xbox requires a [[modchip]] or [[softmod]] exploit, or reflashing the Xbox onboard BIOS [[EEPROM]] chip with a modified BIOS.
==History==
{{See also|Xbox Media Player}}
XBMC Media Center is the successor to the popular [[Xbox Media Player|Xbox Media Player (XBMP)]] software. Xbox Media Player development stopped on [[December 13]], [[2003]], by which time its successor, XBMC, was ready for its debut, renamed as it was growing out of its 'player' name and into a 'center' for media playback. The first stable release of XBMC was on [[June 29]], [[2004]], with the official release of XBoxMediaCenter 1.0.0. This announcement also encouraged everyone using XBMP or XBMC Beta release to update, as all support for those previous versions would be dropped, and they would only officially support version 1.0.0. Some new things in XBMC 1.0.0 included the addition of the Filezilla FTP Server, DHCP Support, a newer version of [[MPlayer]] was packaged and the embedded [[Python (programming language)|Python]] was given the ability to draw interface elements.
With the release of 1.0.0 in the middle of 2004, work continued on the XBMC project to add more features, such as support for iTunes features like DAAP and Smart Playlists, as well as lots of improvements and fixes. The second stable release of XBMC, 1.1.0, was released on [[October 18]], [[2004]]. This released included support for more media, file, container formats, as well as video playback of Nullsoft streaming videos, karaoke support (CD-G).
After two years of heavy development, XBMC announced a stable point final release of XBMC 2.0.0 on [[September 29]], [[2006]]. Even more features were packed into the new version with the addition of RAR and zip archive support, a brand new player interface with support for multiple players. Such players include PAPlayer, the new audio/music player with crossfade, gapless playback and ReplayGain support, and the new DVDPlayer with support for menu and navigation support as well as ISO/img image parsing. Prior to this point release, XBMC just used a modified fork of [[MPlayer]] for all of its media needs, so this was a big step forward. Support for iTunes 6.x DAAP, and Upnp Clients for streaming was also added. A reworked Skinning Engine was included in this release to provide a more powerful way to change the appearance of XBMC. The last two features include read-only support for FAT12/16/32 formatted [[USB mass storage|USB Mass Storage devices]], and a "skinnable" 3D visualizer.
The release of XBMC 2.0.1 on [[November 12]], [[2006]] contained numerous fixes for bugs that made it through the 2.0.0 release. This also marked the change from CVS to SVN (Subversion) for the development tree. Development on the SVN Trunk is continuing which is currently 'pre-2.1', and once it goes through the [[bug bash]] and feature lockdown process will become XBMC 2.1.0.
On [[May 29]], [[2007]], the team behind XBMC put out a call for developers interested in porting XBMC to the Linux operating system. Since a few developers on Team-XBMC had already begun porting parts of XBMC over to Linux using SDL and OpenGL as a replacement for DirectX, which XBMC was using heavily on the Xbox version of XBMC.
==Features==
===Audio/video playback and handling===
XBMC can play media from CD/DVD media using an internal [[DVD-ROM]] drive. It can also play media from an internal built-in [[hard disk|hard disk drive]] and [[Server Message Block|SMB/SAMBA/CIFS]] shares (Windows File-Sharing), or stream them over [[ReplayTV]] [[digital video recorder|DVRs]], [[Universal Plug and Play|UPnP (Universal Plug and Play )]] shares, [[XBMSP]] ([[Xbox Media Stream Protocol]]) shares, or stream [[iTunes]]-shares via [[Digital Audio Access Protocol|DAAP]]. XBMC can also take advantage of the Xbox's Ethernet network port and a broadband Internet connection if available, using [[themoviedb.org]] or [[imdb.com]] to obtain [[thumbnails]] and reviews on movies, [[thetvdb.com]] for [[TV Show]] posters and episode plots, [[CDDB]] (via [[FreeDB]]) for Audio-CD track-listings), and album-[[thumbnails]] via [[Allmusic|AMG]], it can stream Internet-video-streams, and play Internet-radio-stations (such as [[SHOUTcast]]). XBMC also includes the option to submit music usage statistics to [[Last.fm]] and a weather-forecast (via [[weather.com]]). It also has music/video-playlist features, picture/image-[[slideshow]] functions, an MP3+CDG [[karaoke]] function and many [[Music visualization|audio-visualizations]] and [[screensaver]]s. XBMC can in addition [[Upscaling DVD|upscale/upconvert]] all [[SDTV|standard-definition (480i/480p/576i/576p)]] resolution videos and output them to [[HDTV|720p, 1080i, and 1080p high-definition]] resolutions.
===Format support===
XBMC can be used to play/view all common [[multimedia]] formats. It can decode these in software and optionally pass-through [[Dolby Digital|AC3]]/[[DTS Coherent Acoustics|DTS]] audio from movies directly to [[S/PDIF]] output to an external audio-[[Audio amplifier|amplifier]]/[[Audio receiver#Hi-Fi .2F Home theater|receiver]].
:'''Supported formats:'''
:* '''Physical media''': [[compact disc|CDs]], DVDs, [[Video CD]]s (including [[DVD-Video]], VCD/SVCD and Audio-CD/CDDA)
:* '''[[Container format]]s''': [[Audio Video Interleave|AVI]], [[Moving Picture Experts Group|MPEG]], [[Windows Media Video|WMV]], [[Advanced Systems Format|ASF]], [[Flash Video|FLV]], [[Matroska|MKV]], [[QuickTime|MOV]], [[MPEG-4 Part 14|MP4]], M4A, [[Advanced Audio Coding|AAC]], [[NUT Container|NUT]], [[Ogg]], [[Ogg Media|OGM]], [[RealMedia]] RAM/RM/RV/RA/RMVB, [[3gp]], VIVO, PVA, [[NuppelVideo|NUV]], [[Nullsoft Streaming Video|NSV]], [[Nullsoft Streaming Audio|NSA]], [[Autodesk|FLI]], [[Autodesk|FLC]], and [[DVR-MS]] (beta support)
:*'''[[Video format]]s''': [[MPEG-1]], [[MPEG-2]], [[H.263]], MPEG-4 [[MPEG-4 Part 2#Simple Profile .28SP.29|SP]] and [[MPEG-4 Part 2#Advanced Simple Profile .28ASP.29|ASP]], [[H.264/MPEG-4 AVC|MPEG-4 AVC]] ([[H.264]]), [[HuffYUV]], [[Indeo]], [[Motion JPEG|MJPEG]], [[RealVideo]], [[QuickTime]], [[Sorenson codec|Sorenson]], [[Windows Media Video|WMV]], [[Cinepak]],
:*'''[[Audio format]]s''': [[Audio Interchange File Format|AIFF]], [[WAV|WAV/WAVE]], [[MPEG-1 Audio Layer II|MP2]], [[MP3]], [[Advanced Audio Coding|AAC]], [[AACplus]], [[Dolby Digital|AC3]], [[DTS Coherent Acoustics|DTS]], [[Apple Lossless|ALAC]], [[Adaptive Multi-Rate|AMR]], [[Free Lossless Audio Codec|FLAC]], [[Monkey's Audio]] (APE), [[RealAudio]], [[Shorten|SHN]], [[WavPack]], [[Musepack|MPC/Musepack/Mpeg+]], [[Speex]], [[Vorbis]] and [[Windows Media Audio|WMA]].
:* '''[[Digital camera|Digital picture/image formats]]''': [[BMP file format|BMP]], [[JPEG]], [[Graphics Interchange Format|GIF]], [[Portable Network Graphics|PNG]], [[Tagged Image File Format|TIFF]], [[Multiple-image Network Graphics|MNG]], [[ICO (icon image file format)|ICO]], [[PCX]] and [[Truevision TGA|Targa/TGA]]
:*'''[[Subtitles|Subtitle formats]]''': [[AQTitle]], [[SubStation Alpha|ASS/SSA]], [[Closed captioning|CC]], [[JACOsub]], [[MicroDVD]], [[MPsub]], [[Ogg Media|OGM]], PJS, [[RealText|RT]], [[SAMI|SMI]], [[SubRip|SRT]], [[SubViewer|SUB]], [[VSFilter|VOBsub]], [[VPlayer]]
===Video playback in detail===
XBMC uses two different [[multimedia]] player 'cores' for video-playback. The first is a ported version of the [[open source]] [[cross-platform]] player, [[MPlayer]], which is known for playing practically all common media-formats. XBMC handles all [[codecs]] and [[Container format (digital)|containers]] normally supported by MPlayer (all [[FFmpeg]] supported codecs and also several external ones with the help of proprietary [[Dynamic-link library|DLL]]-files.
The second video-player 'core' for video-playback is an [[in-house]] developed [[DVD player|DVD-player]] for [[DVD-Video|DVD-Video movies]], including the support of [[DVD-Video#Menu programming interface|DVD-menus]], (based on the free [[open source]] [[Library (computing)|libraries]] code [[libdvdcss]] and [[libdvdnav]]). This video-player 'core' support all the [[FFmpeg]] codecs, and in addition the [[MPEG-2]] [[video codec]], and the [[audio codecs]] [[DTS Coherent Acoustics|DTS]] and [[AC3]] (based on the [[open source]] code [[Library (computing)|libraries]]: [[libmpeg2]], [[libdca]]/[[libdts]], and [[liba52]]/[[libac3]] respectively). One relatively unusual feature of this DVD-player core is the capability to [[on-the-fly]] parse and play [[DVD-Video]] movies that are stored in [[ISO image|ISO and IMG]] DVD-images, [[DVD-Video]] movies that are stored as [[DVD-Video]] ([[IFO]]/[[VOB]]/[[BUP]]) files on a harddrive or network-share, and also [[ISO image|ISO and IMG]] DVD-images directly from [[RAR]] and [[ZIP (file format)|ZIP]] archives.
====Video Library====
The Video Library, one of the XBMC [[metadata]] [[databases]], is a key feature of XBMC. It allows the organization of video content by information associated with the video files (eg. movies and recorded [[Television program|TV Shows]]) themselves. This information can be obtained in various ways, like through scrapers (ie. [[web scraping]] sites like [[IMDb]], [[TheMovieDB]], [[TheTVDB]], etc.), and [[.nfo|nfo]] files. The Library Mode view allows you to browse your video content by things like; [[Genre]], Title, Year, Actors and [[Film director|Directors]].
===Audio playback in detail===
For audio playback, XBMC includes its own [[in-house]] developed audio-player: [[PAPlayer|PAPlayer (Psycho-Acoustic Audio Player)]]. Some of this audio-player core's most notable features are [[on-the-fly]] [[resampling]] to the Xbox's native audio frequency (48&nbsp;kHz), [[gapless playback]], [[Fade (audio engineering)|crossfading]], [[Replay Gain]], [[cue sheet (music software)|cue sheet]] and [[Ogg]] Chapter support.
It handles a very large variety of audio file-formats: [[MP2 (format)|MP2]], [[MP3]], [[Vorbis]], [[Musepack]], [[Advanced Audio Coding|AAC]], [[HE-AAC|AACplus (AAC+)]], [[Monkey's Audio|APE]], [[FLAC]], [[WavPack]], [[Shorten]], [[AIFF]], [[WAV]], [[DTS Coherent Acoustics|DTS]], [[Dolby Digital|AC3]], [[CDDA]], [[Windows Media Audio|WMA]], [[Impulse Tracker|IT]], [[ScreamTracker|S3M]], [[MOD (file format)|MOD]] (Amiga Module), [[XM (file format)|XM]], NSF ([[NES Sound Format]]), [[SPC700 sound format|SPC]] ([[SNES]]), [[GYM]] ([[Sega Mega Drive/Sega Genesis|Genesis]]), [[MOS Technology SID|SID]] ([[Commodore 64]]), [[Adlib]], [[YM2149|YM]] ([[Atari ST]]), [[ADPCM]] ([[Nintendo GameCube|GameCube]]). It also supports many different tagging standards: APEv1, [[APEv2 tag|APEv2]], [[ID3]]v1, [[ID3#ID3v2|ID3v2]], [[ID666]] and [[Vorbis comment]]s.
====Music Library====
The Music Library, one of the XBMC [[metadata]] [[databases]], is another key feature of XBMC. It allows the organization of your music collection by information stored in your music file [[ID3|ID meta tags]], like title, artist, album, [[genre]] and popularity.
===Digital picture/image display in detail===
XBMC handles all common [[Digital camera|digital picture/image formats]] with the options of [[Ken burns effect|panning/zooming]] and [[slideshow]] with "[[Ken Burns Effect]]", with the use of [http://www.codeproject.com/bitmap/cximage.asp CxImage] open source [[Library (computing)|library]] code. XBMC can also handle [[Comic Book Archive file|CBZ (ZIP) and CBR (RAR) comic book archive files]], this feature lets you view/read, browse and [[zoom]] the pictures of [[comics]] pages these contain without uncompressing them first.
===Python scripts (widgets/gadgets) plugins===
XBMC features a [[Python (programming language)|Python Scripts Engine]] and WindowXML [[application framework]] (a [[XML]]-based [[widget toolkit]] for creating a [[GUI]] for [[Widget (computing)|widgets]]) in a similar fashion to Apple Mac OS X [[Dashboard (software)|Dashboard Widgets]] and [[Microsoft Gadgets]] in [[Windows Sidebar]]. Python [[Widget (computing)|widget]] scripts allow normal users to add new functionality to XBMC themselves, (using the easy to learn [[Python (programming language)|Python programming language]]), without knowledge of the complex [[C++|C/C++ programming language]]. Current [[plugins|plugin]] scripts include functions like [[Internet television|Internet-TV]] and [[Trailer (film)|movie-trailer]] browsers, [[Weather forecasting|weather forecast]] and [[Movie theater|cinema]]guides, [[Electronic program guide|TV-guides (EPG)]], e-mail clients, [[instant messaging]], train-timetables, scripts to [[Front-end and back-end|front-end]] control [[Personal video recorder|PVR]] software and hardware (like: [[MediaPortal]], [[MythTV]], [[TiVo]], [[ReplayTV]], [[Dreambox]]/[[DBox2]]), Internet-radio-station browsers (example [[SHOUTcast]], [[Xm radio]], [[Sirius Satellite Radio]]), [[Peer-to-peer|P2P]] file-sharing downloaders ([[BitTorrent (protocol)|BitTorrent]]), [[IRC]], also [[casual games]] (sometimes also referred to as [[Minigame|mini-games]] or [[Party game|party-games]]) such as [[Tetris]], [[Snake (video game)|Snake]], [[Space Invaders]], [[Sudoku]], and much more.
===Dashboard function (game/application launcher)===
XBMC has a "My Programs" section which functions as a replacement [[Xbox Dashboard|dashboard]] to launch [[List of Xbox games|Xbox games]] (retail and [[Homebrew (video games)|homebrew]]) and [[Application software|applications]]/[[List of emulators|emulator]] directly off the Xbox built-in [[harddrive]], all from a nice [[GUI]] with [[thumbnail]] and list options. This fully replaces the original [[Xbox Dashboard]] from [[Microsoft]], and with the exception of flashing new [[BIOS]] to an Xbox [[modchip]] it also features all extra functions that other [[Homebrew (video games)|homebrew]] [[Xbox Dashboard|dashboard]]s have.
===Language support===
XBMC also includes support for many different languages.  XBMC's structure is such that if your language is not available, or not up-to-date, then you can easily make your translation by editing an [[XML]]-file, which can be submitted to the project's database for use by others. Currently the existing supported languages are [[Brazilian Portuguese]], [[Catalan language|Catalan]], [[Simplified Chinese]], [[Traditional Chinese]], [[Croatian language|Croatian]], [[Czech language|Czech]], [[Danish language|Danish]], [[Dutch language|Dutch]], [[English language|English]], [[Esperanto]], [[Finnish language|Finnish]], [[French language|French]], [[German language|German]], [[Greek language|Greek]], [[Hebrew]], [[Hungarian language|Hungarian]], [[Icelandic language|Icelandic]], [[Italian language|Italian]], [[Japanese language|Japanese]], [[Korean language|Korean]], [[Maltese language|Maltese]], [[Norwegian language|Norwegian]], [[Polish language|Polish]], [[Portuguese language|Portuguese]], [[Romanian language|Romanian]], [[Russian language|Russian]], [[Serbian language|Serbian]], [[Slovene language|Slovene]], [[Spanish language|Spanish]], [[Swedish language|Swedish]] and [[Turkish language|Turkish]].
===Skins and skinning-engine===
A mainstay of Xbox [[Homebrew (video games)|homebrew]] applications is [[Skin (computing)|skin]]-ability in the tradition of case modifications. XBMC is noted as having a very flexible [[GUI toolkit]] and robust [[Software framework|framework]] for its [[GUI]], using a standard [[XML]] base, making [[Theme (computing)|theme]]-[[skinning]] and personal [[customization]] very accessible. Users can create their own skin (or simply modify an existing skin) and share it with others via public websites dedicated for Xbox and XBMC skins trading. "Project Mayhem" is the official [[Skin (computing)|skin]]; which is now in its third version, commonly know as "PMIII" or "PM3". Many third-party skins exist and while some are original designs, most are [[Clone (video games)|clones]] or an exact [[replica]] of other multimedia software, such as [[DivX Connected]], [[Front Row|Apple Front Row]], [[Windows XP Media Center Edition|Windows Media Center Edition (MCE)]], [[MediaPortal]], [[Meedio]]/[[MeediOS]], [[HDeeTV]], [[Kaleidescape]], [[Wii Menu|Wii Channel Menu (Xii)]], [[Xbox360#Software|Xbox 360 Blades (MC360)]], [[Xbox360#Software|Xbox 360 New Xbox Experience]], and others.
===Xbox specific features and functions===
====XBMC Trainer Support (game cheats mods)====
XBMC for Xbox also has the ability to use and apply Xbox [[Trainer (games)|Trainer]] Files. [[Trainer (games)|Trainers]] are small files that allow for in game value [[Mod (computer gaming)|modification]] (such as [[cheat code]]) through altering retail functions in game values by way of using [[Terminate and Stay Resident|TSR (Terminate and Stay Resident)]] keys.
There are many things that can be [[Mod (computer gaming)|modified]] including ammunition, extra-lifes, or even how high a character can jump. Trainer support in XBMC for Xbox was achieved through collaboration with [[Team Xored]]. This collaboration began in December 2005 and came to fruition in January 2006 by successfully integrating the [[Team Xored|Team Xored Trainer Engine]] into XBMC.
XBMC for Xbox can run trainers with the following file extensions: *.ETM and *.XBTF.
====XLink Kai (Xbox Live online-gaming alternative)====
XBMC for Xbox has an integrated [[Front-end and back-end|front-end]] for an [[Xbox Live]] alternative (called "[[XLink Kai]]"), an [[online gaming]] platform, enabling you to both control the [[XLink Kai|Kai engine]] and play system-link/LAN-enabled Xbox [[Online game|games online]], without connecting to the [[Xbox Live]] service, straight from your console.
==Official Team-XBMC ports of XBMC==
Due to the dated hardware of the Xbox and a desire to expand the project's end-user and developer-base many official [[porting|ports]] of XBMC to computer operating-systems and hardware platforms now exist. Through the processing power of modern computer hardware, XBMC is able to decode [[high-definition video]] up to and beyond [[1080p]] resolutions, bypassing hardware limitations of the original Xbox version of XBMC. However, as with the Xbox version, XBMC for Linux, Mac, and Windows does not currently support [[Video Acceleration API|GPU hardware video decoding]], thus placing the entire load of the video decoding process on the system's [[CPU]].
===XBMC platforms===
* [[XBMC#XBMC_Live|XBMC Live]]
* [[XBMC#XBMC_for_Linux|XBMC for Linux]]
* [[XBMC#XBMC_for_Mac|XBMC for Mac]]
**Compatible with [[Apple TV]] and [http://en.wikipedia.org/wiki/X86_architecture|x86 Intel] and [[x86-64]] based [[Macintosh|Mac computers]] (running [[Mac OS X v10.5|Leopard]] or [[Mac OS X v10.4|Tiger]]).
* [[XBMC#XBMC_for_Windows|XBMC for Windows]]
**Compatible with [[Windows XP]] and [[Windows Vista]].
* [[XBMC#XBMC_for_Xbox|XBMC for Xbox]]
====XBMC Live====
'''XBMC Live''' is a free [[Linux distribution]] providing a [[media center]] software suite for [[personal computer]]s. XBMC Live uses [[XBMC Media Center]] for media playback and is implemented as a bootable [[Live CD]]<ref name="xbmc.org"/><ref name="http"/>. As a Live CD, the system does not need to be permanently installed to a [[hard disk drive]], as most modern [[operating system]]s would. Instead, the computer can be booted with the XBMC Live boot CD when media playback is desired. This is a reasonable approach for those who do not need media playback services while performing other tasks with the same computer, for users who wish to repurpose older computers as media centers, and for those seeking a free alternative to [[Windows XP Media Center Edition]], or for those who simply want to try out the XBMC Media Center software for the first time without having to install anything. Following the principles of [[Mythbuntu]], [[KnoppMyth]], and [[Mythdora]], XBMC Live is also designed to simplify a permanent installation of XBMC Media Center onto a computer to be used as a dedicated [[Home Theater PC|HTPC (Home Theater PC)]] in the living-room, as such the user can directly install XBMC Media Center from the bootable [[Live CD]] to either a [[USB flash drive]] or to an internal [[hard disk drive]] and comes with a complete ([[Embedded Linux|Linux based]]) [[embedded operating system]]<ref name="xbmc.org"/><ref name="http"/>.
====XBMC for Linux====
'''XBMC for Linux''' is currently primarily developed for Ubuntu Linux and XBMC's developers own XBMC Live (Live CD Linux distribution). Third-party packages for most other Linux distributions are however available, and it is also possible to compile XBMC Media Center from scratch for any Linux distribution.
====XBMC for Mac====
'''XBMC for Mac''' runs natively on [[Mac OS X]] ([[Mac OS X v10.5|Leopard]], [[Mac OS X v10.4|Tiger]]), as well as on the [[Apple TV]].
====XBMC for Windows====
'''XBMC for Windows''' runs natively on [[Windows XP]], [[Windows Vista]], and [[Windows 7]], it is a [[32-bit]] application but runs on [[x86-64|64-bit]] Windows and hardware as well, however it not optimized for that architecture so there is no performance gain when running on [[x86-64|64-bit]] Windows.
====XBMC for Xbox====
[[Image:Mc360-screenshot-1.jpg|thumb|right|300px|MC360 skin for XBMC displaying the media blade]]'''XBMC for Xbox'''. At present, the latest 'stable' version of XBMC for Xbox is 8.10 point-release version (codename: "''Atlantis''") which was released on [[November 13]], [[2008]]. Since XBMC for Xbox is an [[open source]] software program, its development [[source code]] is stored on a publicly accessible [[Subversion (software)|Subversion]] server. This code is constantly updated on a daily basis by developers so the Subversion repository often contains more features than the most recent 'stable' release. Accordingly, [[executable]] builds from the Subversion repository are often released by [[third-party developer|third-parties]]. It should be noted, however, that [[executable]] builds from development versions typically contain bugs not present in the most recent 'stable' release versions of XBMC for Xbox.
XBMC for Xbox is not an [[authorized|authorized/signed]] [[Microsoft]] product, therefore a [[Xbox#Xbox modding|modification of the Xbox]] is required in order to run XBMC on a [[Xbox]] game-console. XBMC for Xbox can be run as an [[Application software|application]] (like any Xbox game), or as a [[Xbox Dashboard|dashboard]] that appears directly when the [[Xbox]] is turned on.
==Programming and developing==
XBMC is a non-profit [[open source]] [[hobby]] project that is developed only by volunteers in their spare-time without any [[monetary]] gain. The team of developers working on XBMC encourage anyone to submit their own [[Patch (computing)|source code patches]] for new features and functions, improve existing ones, or fix [[software bug|bugs]].
XBMC is a cross-platform software application programmed in [[C++]] (and some [[Assembly language|Assembly]]), XBMC uses [[SDL|SDL (Simple DirectMedia Layer)]] multimedia [[Software framework|framework]] and [[OpenGL]] graphics [[Rendering (computer graphics)|rendering]] under XBMC for Linux, Mac OS X, and Microsoft Windows based operating system, however XBMC for Xbox instead uses [[DirectX|Microsoft DirectX]] multimedia framework and [[Direct3D]] rendering as the [[Xbox]] does not support [[OpenGL]]. Some of the XBMC [[Library (computing)|libraries]] are also written in [[C (programming language)|C programming-language]], but are used with a C++ wrapper and loaded via XBMC's own [[Dynamic-link library|DLL]] loader.
===Hardware requirements===
XBMC has greater basic hardware requirements than a traditional 2D [[GUI toolkit]], but this basically means that it needs [[3D computer graphics|3D]] capable GPU for all rendering; on the other hand, 3D GPU chips are common today. Other than that, XBMC was designed to be resource efficient and runs extremely well on what (by [[Intel Atom]] standards) are pretty underpowered OpenGL 1.4 [[GLSL]] capable systems that are [[x86]] or [[x86-64]] [[CPU]] based. In order to allow for smooth playback of 1080p high definition content without dropping frames, an Intel Core 2 Duo 2.2 Ghz processor or better is required.
===Xbox development environment===
The Xbox [[BIOS]] is based on [[Win32]], but does not have all of the resources or capabilities of a [[Microsoft Windows|Windows NT]] operating system, (for example: [[DirectShow]], [[Windows Registry|registry]], nor [[Dynamic-link library|DLL]] are natively supported on the Xbox). Because of the constraints on the hardware and environment of the Xbox all software development for XBMC are focused on reserving the limited resources that exist, the main hindrance of which is the amount of available [[random access memory|RAM]] at any one time.
====Xbox embedded operating system====
*The Xbox does not have an operating system per-se, instead it only has a basic BIOS
**Everything else must go into the XBMC executable and its ([[XDK]] and own-made) [[Library (computing)|libraries]]
*Only a single [[Thread (computer science)|process-thread]] ([[executable]] [[Computer program|program]]) can run at any one time on the Xbox
*[[FATX|Xbox hard drive file-system]] (FATX) has many limitations, among them a filename maximum of 42-[[Character (computing)|characters]]
*The Xbox has four [[USB]] ports but the [[XDK|Xbox SDK]] (a.k.a. XDK) does not contain a full USB-[[Stack (data structure)|stack]]
**if one wanted to add support for USB hardware-devices one would have to make it for oneself
====Compiling XBMC for the Xbox====
*[[XDK|Xbox SDK]] (a.k.a. XDK) [[Software Development Kit]] (with [[Library (computing)|libraries]]) is required to [[compiler|compile]] XBMC
*Also required to compile (and [[computer programming|program]] in) XBMC is [[Microsoft Visual Studio .NET]] version 7.1
*XBMC's code also contain four multimedia-player cores which have to be [[compiler|compiled]] separately
**None of those require XDK to be compiled, they are instead compiled with [[MinGW]]/[[MSYS]]
===Third-party Forks of XBMC===
XBMC Media Center source code have over the years become a popular project to [[forking|fork]] and use as a [[Software framework|application framework platform]] for others to base their own [[media center]] software on, as if XBMC were a [[GUI toolkit]], [[windowing system]], or [[window manager]]. Today [[Boxee]], [[MediaPortal]], and [[Plexapp|Plex]] are separate projects which have based their software on XBMC's source code. Most of these third-party forks still help submit bug fixes and new features back upstream to the original XBMC project.
====Boxee====
[[Boxee]] is a free and open source software cross-platform media center and entertainment hub with [[social networking]] features that is a [[Fork (software development)|fork]] of XBMC software<ref>{{cite web |url=http://lifehacker.com/396382/boxee-is-xbmc-with-newer-look-and-social-flair |title=Boxee Is XBMC with Newer Look and Social Flair |author=Adam Pash |date=2008-06-23 |publisher=lifehacker}}</ref><ref>{{cite web |url=http://blog.boxee.tv/2008/06/25/why-we-made-boxee-social/ |title=boxee blog - why we made boxee social |author=Avner Ronen |date=2008-06-25 |publisher=Boxee}}</ref><ref>{{cite web |url=http://www.appletvhacks.net/2008/07/03/boxee-mini-review/55 |title=Boxee mini review |author=Apple TV Hacks |date=2008-07-03 |publisher=appletvhacks.net}}</ref>. Boxee is still under development and is currently only available as [[Development_stage#Alpha|Alpha]] releases for [[Mac OS X]]<ref name="blog.boxee.tv">{{cite web |url=http://blog.boxee.tv/2008/06/16/boxee-for-mac-is-available-for-download/ |title=boxee for Mac first alpha release is available for download |author=Avner Ronen |date=2008-06-18 |publisher=Boxee}}</ref> and [[Ubuntu]]<ref>{{cite web |url=http://blog.boxee.tv/2008/07/22/linux-version-is-available|title=boxee blog - linux version is available|author=Tom Sella|2008-07-22|publisher=Boxee}}</ref>, with the first Alpha made available on the 16th of June 2008<ref name="blog.boxee.tv"/>.
====MediaPortal====
[[MediaPortal]] is free and open source software media center written for Microsoft Windows that is initially based on [[forked]] XBMC source code by Erwin Beckers (a.k.a. Frodo), one of the founders of XBMC in February 2004. The reason for this fork to Microsoft Windows was to get away from hardware limitations of the Xbox platform that XBMC development started on, mainly because of the Xbox inability to support TV-tuner adapters natively as Erwin wanted [[Personal Video Recorder|PVR]] functionality. Now after several years and innumerable feature changes there has been almost a complete re-design of the source code, however the skinning engine still remains very similar to that of the original XBMC software making it relatively easy for people to port skins/themes back and forth between the two projects, something that is done quite frequently.<ref>{{cite web |url=http://www.team-mediaportal.com/about_mediaportal.html |title=MediaPortal History as told by Team-MediaPortal |author=Team-MediaPortal |date=2008-09-01 |publisher=Team-MediaPortal}}</ref>
====Plex====
On [[May 21]], [[2008]], Elan Feingold, the Team-XBMC member who first started the Mac OS X port of XBMC, left the original XBMC project. He [[forked]] the source code and started a new  free and open source software project called [[Plexapp|Plex]] (previously informally known as "''OSXBMC''") but said that he will continue to collaborate with most Team-XBMC members behind the scenes and try to keep Plex skinning engine compatible with XBMC skins.<ref>{{cite web | last= | first=Elan | url=http://www.osxbmc.com/2008-05-21/exodus/ | title=Exodus | year= | publisher=Plex | date=2007-05-21 | accessdate=2008-07-22}}</ref> Recently, the Plex project announced that they have teamed up<ref>{{cite web | last= | first=Elan | url=http://www.osxbmc.com/2008-07-13/were-teaming-up-with-centerstage/ | title= Plex (formerly OSXBMC) teaming up with CenterStage | year= | publisher=Plex | date=2007-07-13 | accessdate=2008-07-22}}</ref> with the [[Centerstage|CenterStage]] group in order to enhance the skin theme of Plex and bringing their (Center Stage) next-generation interface to life.<ref>{{cite web | last= | first= | url=http://forums.plexapp.com/index.php?showtopic=497&view=findpost&p=3643/ | title= Plex + CenterStage FAQ | year= | publisher=Plex | date=2007-07-14 | accessdate=2008-08-08}}</ref>
==Limitations==
===Cross-platform (software) limitations===
This is a list of current software limitations in the XBMC code.
*XBMC can not play any audio/video files [[Encryption|protected/encrypted]] with [[Digital Rights Management|DRM (Digital Rights Management)]], such as music purchased from the [[iTunes Music Store]], [[MSN Music]] or [[Audible.com]]. Workaround if legal in your country: Before playing the file in XBMC, first remove any DRM protection/encryption from the song or video with a [[Third-party developer|third-party]] program before you try to play it, e.g: [[JHymn|hymn]], [[FreeMe]], [[FairUse4WM]], [[DRM2WMV]] or [[DRMDBG]]).
*The  [[ISO 9660]] and [[Universal Disk Format|UDF]] reader [[Class (computer science)|class]]es in XBMC do not support reading [[Multisession#Sessions|multisession]] authored CD/DVD-media. Thus, XBMC can only read the first [[Multisession#Sessions|session]] of a [[Multisession#Sessions|multisession]] burnt CD or DVD media disc.
===Xbox-specific limitations===
This is a list of Xbox hardware and Xbox operating-system specific limitations that do not affect XBMC for Linux. Mac OS X, nor Windows.
*[[Universal Disk Format|UDF (Universal Disk Format)]] file-system limitation: XBMC for Xbox only supports UDF version 1.02 (designed for [[DVD-Video]] media), which has a maximum file-size of 1&nbsp;GB (meaning if you burn a DVD-media in a newer UDF version with a video that is larger than 1GB, XBMC will not be able to play that file), same goes for UDF/ISO hybrid formats (a.k.a. UDF Bridge format). Workaround: Burn all your CD/DVD-media in [[ISO 9660]] format, which is the most common standard for recording CD/DVDs. Unfortunately [[ISO 9660]] has a 2&nbsp;[[Gigabyte|GB]] file-size limitation, which cannot be bypassed.
*The Xbox built-in harddrive is formatted in [[FATX]] which has a 4&nbsp;GB file-size limitation, and only supports file/folder-names up to 42 characters, a maximum of 255 in total file-structure character-depth and a maximum number of 4096 files/folders in a single subfolder, plus in the root of each partition, the maximum number of files/folders is 256. [[File Allocation Table|FAT]] does not support all [[ASCII|ASCII characters]] in file/folder names (like for example < > = ? : ; " * + , / \|¤ &). XBMC will automatically rename any files/folders you transfer to the Xbox by these limitations. (None of these are XBMC issues that can be fixed as the limitation is in the Xbox itself). Workaround: Store your files/folders on your computer or a [[Network-attached storage|Network-Attached Storage (NAS)]] device/box which support [[Server Message Block|SMB/CIFS]], [[FTP]] or [[UPnP]] and share them over a [[Local area network|local-area-network]] instead.
*The [[USB flash drive]] (USB [[keydrive|key-drives/memory-keys]]) reader/writer [[Class (computer science)|class]] used by XBMC for Xbox currently has a few limitations as well. It is limited to USB flash drives and [[harddisk]]s compatible with [[USB Mass Storage Device Class]] following the USB 1.1 standard, with a maximum size of 4&nbsp;GB. It can read and write to FATX formatted flash drives, but can only read FAT12, FAT16 (including VFAT), and FAT32. [[NTFS]] formatted drives are not supported yet.
*With its 733&nbsp;MHz [[Intel Pentium III]]-like [[CPU]] and 64MB [[shared memory]], the Xbox has neither a fast enough CPU nor sufficient amounts of [[Random access memory|RAM]] to play 720p/1080i resolution [[HDTV]] video. However, XBMC can up-convert all [[SDTV|standard definition]] movies and output them at [[HDTV|720p or 1080i]].
* The Xbox is now able to play [[H264|MPEG-4 AVC (H.264)]] encoded videos with [[CABAC]] and [[deblocking]] if the video-resolution is under 720x400 pixels. For instructions, [http://www.wikihow.com/Properly-Encode-H.264-Video-Using-Megui-for-an-Xbox-Running-Xbmc click here]. If videos are encoded without CABAC and deblocking, then the Xbox hardware can handle up to 720x576 pixels video-resolution. If encoding with [[MPEG-4 Part 2|MPEG-4 ASP]], then the video's native-resolution can be anything up to 960x540 pixels (also known as [[High-Resolution High-Definition|HRHD]] resolution).
==Reception==
XBMC won two [[SourceForge]] 2006 Community Choice Awards; [http://sourceforge.net/awards/cca/ Best Multimedia Project and Best Game Project]. In the 2007 Community Choice Awards, XBMC is a nominated finalist in six categories. Also in the 2008 Community Choice Awards XBMC won an award for Best Project for Gamers.
==Legality==
While XBMC's [[source code]] for all platforms is made publicly available by the developers under an [[open source]] ([[GNU GPL]]) [[license]], the developers themselves are legally unable to distribute [[executable]] versions of XBMC for Xbox. This is because XBMC for Xbox requires Microsoft's commercial software development kit in order to compile. Thus, the only publicly available [[executable]] versions of XBMC for Xbox are from [[Third-party developer|third parties]], as a result, precompiled versions of XBMC for Xbox may be illegal to distribute in many countries around the world. XBMC binaries for all other platforms that XBMC supports (Linux, Mac OS X, and Windows) are however legal to distribute.
====Copyright====
The XBMC software is licensed under the [[GNU General Public License|GNU General Public License (GPL)]] by the developers, meaning they allow anybody to redistribute XBMC under extremely liberal conditions. However, in order to compile the XBox build of XBMC into [[executable]] form, it is currently necessary to use the [[Xbox Development Kit|Microsoft XDK (Xbox Development Kit)]] which is only available to licensed developers and the resulting code may only be distributed by them (this does not apply to the Linux, Windows or Mac OS X ports of XBMC). Accordingly, code compiled with an unauthorized copy of the [[Xbox Development Kit]] may not be distributed legally. A third-party project called [[OpenXDK]] is concerned with producing a replacement for the Microsoft XDK. While this could potentially allow legal [[Binary file|binaries]] of XBMC to be compiled, it would require significant changes to the XBMC source code.
For audio and video codecs which are not natively supported, XBMC provides a [[Dynamic-link library|DLL]] loader [[Fork (software)|forked]] from the "[[avifile]]" open source project which can load [[Third-party developer|third-party]] made DLLs to decode unsupported formats. This is potentially legal if the user owns a licensed copy of the DLL. However, some third-party XBMC builds incorporate all available third-party DLLs that XBMC can support, and the redistribution of these without a license is copyright infringement.
====Patents====
For most popular video and audio codecs, XBMC includes native support through [[free and open source software]] [[Library (computer science)|libraries]], such as [[LAME]], [[faad]], [[faac]], [[libmpeg2]], and [[libavcodec]] (from the [[FFmpeg]] project). Since these source code libraries are released under free and open source licenses they are legally redistributable. However, some of these compression method algorithms, [[MP3#Licensing and patent issues|such as the popular MP3 format]], are in many countries protected by software patents. Without a licence, this could possibly make it illegal in certain countries to distribute compiled versions of XBMC which include support for these formats.
====Other====
XBMC also includes [[libdvdcss]] to support playing back [[DVD-Video]] movies encrypted using the [[Content Scramble System|CSS (Content Scramble System)]] encryption. Since it is not a member of [[DVD Forum]], the XBMC project is not contractually obliged to insert [[user operation prohibition]] such as disallowing fast-forward or skipping during trailers and ads in [[DVD-Video]]s.  However, without membership in the DVD Forum, the project also cannot make XBMC play [[DVD-Video]]'s [[encryption|encrypted]] with [[Content Scrambling System|CSS (Content Scramble System)]] except by using reverse-engineered code. XBMC therefore uses the [[libdvdcss]] library, which was created by reverse-engineering. The legal status of libdvdcss is questionable in several nations. The distribution of [[executable]] versions of XBMC containing this code is likely to fall afoul of the [[Digital Millennium Copyright Act]] in the [[United States|U.S.]] and the [[EU Copyright Directive]] in [[European Union]] member countries which have incorporated it into national law.
==See also==
{{portal|Free software|Free Software Portal Logo.svg}}
*[[Media center]]
*[[Home theater PC]]
*[[Boxee]], media player with [[social networking]] aspects for Mac OS X and Linux, based on XBMC source code.
*[[MediaPortal]], a media center written for [[Microsoft Windows]] initially based on forked XBMC code by one of the founders of XBMC.
*[[Plexapp|Plex]], media center for Mac OS X (Leopard/Intel-based), based on forked XBMC for Mac source code.
*[[List of video players (software)|List of other software video players]]
*[[Comparison of media players|Comparison of (audio/video) media and DVD-Video players]]
*[[Comparison of PVR software packages]]
*[[List of codecs|List of multimedia (audio/video) codecs]]
==References==
{{reflist|2}}
==External links==
* [http://www.instructables.com/id/How-to-softmod-your-xbox...for-FREE/ SoftMod Xbox for Free (Hotswap Technique!)]
* [http://www.telematicsfreedom.org/en/flossmediacenter XBMC against other FLOSS Media Centers in Comparison Chart]
===Official sites===
* [http://xbmc.org XBMC official website]
* [http://xbmc.org/forum XBMC Community Forums]
* [http://xbmc.org/wiki/index.php?title=XBMC_Online_Manual XBMC Online Manual (Wiki)]
* [irc://irc.freenode.net/xbmc XBMC official IRC chat room] (on [[freenode]]) (use an [[IRC]] client like [[mIRC]] to join the #xbmc channel)
===Scripts, plugins, and skins===
====Scripts====
* [http://www.xbmcscripts.com xbmcscripts.com] (Python scripts which add additional features and functionality to XBMC)
====Plugins====
* [http://code.google.com/p/xbmc-addons/ XBMC-Addons on Google Code] (Addon plugins for XBMC)
====Skins====
* [http://sourceforge.net/projects/xboxmediacenter XBMC official skin development and download site]
* [http://blackmarket.ictcsc.net XBMC Black Market] - an unofficial XBMC skin download site
* [http://www.allxboxskins.com allxboxskins.com] - another unofficial XBMC skin download site (currently down?)
* [http://www.aeonproject.com/ AEON] - "''AEON''" is a unique skin for XBMC (not available on any other skin download site*[Recently ported to MediaPortal])
* [http://www.teamrazorfish.co.uk MediaStream] - "''MediaStream''" is a unique skin for XBMC (not available on any other skin download site*[Recently ported to MediaPortal])
* [http://savvygeek.com/xbmc-skins SavvyGeek] - Hosts compiled downloads of some but not all XBMC skins
====Reviews====
* [http://www.telematicsfreedom.org/en/flossmediacenter XBMC against other FLOSS media center software comparison chart]
[[Category:DVD]]
[[Category:Free cross-platform software]]
[[Category:Free media software]]
[[Category:Free media players]]
[[Category:Free software programmed in C++]]
[[Category:Free video software]]
[[Category:Free television software]]
[[Category:Cross-platform software]]
[[Category:Linux media players]]
[[Category:Linux software]]
[[Category:Mac OS X media players]]
[[Category:Mac OS X software]]
[[Category:Multimedia software]]
[[Category:Software DVD players]]
[[Category:SourceForge projects]]
[[Category:Windows media players]]
[[Category:Windows software]]
[[Category:Xbox]]
[[Category:Xbox Dashboards]]
[[de:Xbox Media Center]]
[[es:XBMC]]
[[fr:XBMC Media Center]]
[[it:Xbox Media Center]]
[[nl:XBMC]]
[[no:Xbox Media Center]]
[[pl:XBMC]]
[[fi:Xbox Media Center]]
[[sv:XBMC]]

Revision as of 13:36, 3 April 2009