Kodi: Difference between revisions
(→Other) |
|||
Line 133: | Line 133: | ||
===Other=== | ===Other=== | ||
XBMC also includes support for playing back [[DVD-Video]] movies encrypted using the [[Content Scramble System|CSS (Content Scramble System)]] encryption. The distribution of [[executable]] versions of XBMC containing this code is likely to fall | XBMC also includes support for playing back [[DVD-Video]] movies encrypted using the [[Content Scramble System|CSS (Content Scramble System)]] encryption. The distribution of [[executable]] versions of XBMC containing this code is likely to fall afoul of the [[Digital Millennium Copyright Act]] in the [[U.S.]] and the [[EU Copyright Directive]] in the [[European Union]] member countries which have so far incorporated it into national law. | ||
==See also== | ==See also== |
Revision as of 02:02, 9 May 2007
Template:Expand Template:Infobox Software2
Xbox Media Center (XBMC) is an award-winning media player for the original Xbox game-console. XBMC can play music, play videos and display images from the Xbox's DVD drive, its internal hard-drive drive, a local network, USB flash drive, and the internet. It also functions as a replacement dashboard to launch Xbox games off the hard-disk drive. Other functions of XBMC include displaying weather forecasts and TV guides, watching YouTube videos and apple.com movie trailers, listening to SHOUTcast and Podcasts streaming internet radio/video, also XBMC functions as a gaming platform by allowing users to play python-based mini-games and a free online-gaming alternative to Xbox Live. It is important to note that the software requires a modchip, softmod exploit or other means by which to execute on the Xbox as it is a homebrew application. XBMC is free and open source software, the source code is distributed under the GNU General Public License.
Awards
XBMC won two categories SourceForge 2006 Community Choice Awards, for Best Multimedia Project and Best Game Project. Winners were announced at the Slashdot Lounge at LinuxWorld Expo, Boston, April 5, 2006.
Features
Audio/Video playback and handling
XBMC can play media from CD/DVD media using the Xbox's built-in DVD-ROM drive. It can also play media from the Xbox's built-in harddisk-drive, or stream them over SMB/SAMBA/CIFS shares (Windows File-Sharing), ReplayTV DVRs, UPnP (Universal Plug and Play ) shares, XBMSP (Xbox Media Stream Protocol) shares, or stream iTunes-shares via DAAP. XBMC can also take advantage of the Xbox's Ethernet network port and a broadband Internet connection if available, using the IMDb to obtain thumbnails and reviews on movies, CDDB (via FreeDB) for Audio-CD track-listings), and album-thumbnails via 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 audio-visualizations and screensavers. XBMC can in addition upscale/upconvert all 480p/576p standard-resolution videos and output them to 720p or 1080i HDTV-resolutions.
Format support
XBMC can be used to play/view all common multimedia formats 'straight out-of-the-box'. It can decode these in software and optionally pass-through AC3/DTS audio from movies directly to S/PDIF output to an external audio-amplifier/receiver. For a detailed up-to-date list see the "Supported Formats" list in XBMC online-manual here.
Supported formats/codecs:
- Physical media: CDs, DVDs, Video CDs (including DVD-Video, VCD/SVCD and Audio-CD/CDDA)
- Container formats: AVI, MPEG/MPG, WMV, ASF, FLV, MKV, MOV, MP4, M4A, AAC, NUT, OGG, OGM, RealMedia RAM/RM/RV/RA/RMVB (RealAudio/RealVideo), 3gp, VIVO, PVA, NUV, NSV, NSA, FLI, FLC, and DVR-MS (beta support)
- Video codecs: MPEG-1, MPEG-2, MPEG-4 (SP and ASP, including DivX, XviD, 3ivx, DV, H.263), MPEG-4 AVC (H.264, including Nero Digital), HuffYUV, Indeo, MJPEG, RealVideo, QuickTime, Sorenson, Theora, WMV, Cinepak,
- Audio codecs: AIFF, WAV/WAVE, MP2, MP3, AAC, AACplus, AC3, DTS, ALAC, AMR, FLAC, Monkey's Audio (APE), RealAudio, SHN, WavPack, MPC/Musepack/Mpeg+, Speex, Vorbis and WMA.
- Digital picture/image formats: BMP, JPEG/JPG, GIF, PNG, TIF/TIFF, MNG, ICO, PCX and Targa/TGA
- Subtitle formats: AQTitle, ASS/SSA, CC, JACOsub, MicroDVD, MPsub, OGM, PJS, RT, SMI, SRT, SUB, 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 proprietary media-formats without having to pay license fees. XBMC handles all codecs and containers normally supported by MPlayer (all FFmpeg supported codecs and also several external ones with the help of proprietary DLL-files: RealMedia/RealVideo/RealAudio, QuickTime, WMV9/WMA9, VP4/VP5/VP6), and the sources are synced at regular intervals.
The second video-player 'core' for video-playback is an in-house developed DVD-player for DVD-Video movies, including the support of DVD-menus, (based on the open source and free 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 and AC3 (based on the open source code 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 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 and IMG DVD-images directly from RAR and ZIP archives. In addition to this, the XBMC DVD-player 'core' can upscale/upconvert all DVD-Video movies and output them to 720p or 1080i HDTV resolutions in better quality than most, if not all, high-definition television set's native function for upscaling/upconverting video.
Audio playback in detail
For audio playback, XBMC includes its own in-house developed audio-player: 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 kHz), gapless playback, crossfading, Replay Gain, cue sheet and Ogg Chapter support. It handles a very large variety of audio file-formats: MP2, MP3, Vorbis, MPC, AAC, AACplus (AAC+), APE, FLAC, WavPack, Shorten, AIFF, WAV, DTS, AC3, CDDA, WMA, IT, S3M, MOD (Amiga Module), XM, NSF (NES Sound Format), SPC (SNES), GYM (Genesis), SID (Commodore 64), Adlib, YM (Atari ST), ADPCM (GameCube). It also supports many different tagging standards: APEv1, APEv2, ID3v1, ID3v2, ID666 and Vorbis comments.
Digital picture/image display in detail
XBMC handles all common digital picture/image formats with the options of panning/zooming and slideshow with "Ken Burns Effect", with the use of CxImage open source library code. XBMC can also handle 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 Scripts Engine in a similar fashion to Apple Mac OS X Dashboard Widgets and Microsoft Gadgets in Windows Sidebar, so users can add new functionality to XBMC (using the Python programming language) without an illegal copy of the XDK and without knowledge of the C/C++ programming language. Current plugin scripts include functions like Internet-TV and movie-trailer browsers, weather forecast and cinemaguides, TV-guides (EPG), e-mail clients, instant messaging, train-timetables, scripts to front-end control PVR software and hardware (like: MediaPortal, MythTV, TiVo, ReplayTV, Dreambox/DBox2), Internet-radio-station browsers (example SHOUTcast, Xm radio, Sirius Satellite Radio), P2P file-sharing downloaders (BitTorrent), IRC, also casual games (sometimes also referred to as mini-games or party-games) such as Tetris, Snake, Space Invaders, Sudoku, and much more.
Dashboard function (game/application launcher)
XBMC has a "My Programs" section with functions as a replacement dashboard to launch Xbox games (retail and homebrew) and applications/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 a Xbox modchip it also features all extra functions that other homebrew dashboards have.
XBMC Trainer Support (game cheats mods)
XBMC also has the ability to use and apply Xbox Trainer Files. Trainers are small files that allow for in game value modification (such as cheat code) through altering retail functions in game values by way of using TSR (Terminate and Stay Resident) keys. There are many things that can be modified including ammunition, extra-lifes, or even how high a character can jump. Trainer support in XBMC 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 Trainer Engine into XBMC. XBMC can run trainers with the following file extensions: *.ETM and *.XBTF.
XLink Kai (Xbox Live online-gaming alternative)
XBMC has an integrated front-end for an Xbox Live alternative (called "XLink Kai"), an online gaming platform, enabling you to both control the Kai engine and play system-link/LAN-enabled Xbox games online, without connecting to the Xbox Live service, straight from your console.
Running XBMC
At present, the latest 'stable' version of XBMC is 2.0.1 final point-release which was released on 12 November, 2006. Since XBMC is an open source software program, its development source code is stored on a publicly-accessible 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-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.
XBMC is not a authorized/signed Microsoft product, therefore a modification of the Xbox is required in order to run XBMC on a Xbox game-console. XBMC can be run as an application (like any Xbox game), or as a dashboard that appears directly when the Xbox is turned on. It takes approximately ten seconds to fully load XBMC.
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, Simplified Chinese, Traditional Chinese, Croatian, Czech, Danish, Dutch, English, Esperanto, Finnish, French, German, Greek, Hebrew, Hungarian, Icelandic, Italian, Japanese, Korean, Maltese, Norwegian, Polish, Portuguese, Romanian, Russian, Serbian, Slovene, Spanish, Swedish and Turkish.
Skins and skinning-engine
A mainstay of Xbox homebrew applications is skin-ability in the tradition of case modifications. XBMC is noted as having a very flexible and robust framework for its GUI, making theme-skinning and personal customization very accessible. Users can create their own skin (or modify an existing skin) and share it with others via public websites dedicated for Xbox skins trading. "Project Mayhem" is the official skin; which is now in its third version, commonly know as "PMIII"
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 encurage anyone submit your own source code patches for new features are functions, improve or existing ones, or fix bugs.
XBMC's main program (including the GUI) is developed in Microsoft Visual Studio .NET. The source code is programed in C++ (and some Assembly), and uses Microsoft DirectX multimedia framework, (the Xbox does not support OpenGL). Some of the XBMC libraries are also in C programming-language but those then uses a C++ wrapper and are loaded via XBMC's own DLL loader. The Xbox Operating-System/BIOS is Win32-based but does have all of the resources or capabilities of a full Microsoft Windows Operating-System, (for example: DirectShow, registry, nor DLL are nativly 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 resourses that exist, the main hindrance of which is the amount of available random access memory at any one time.
Xbox Development Environment
It is important to always keep in mind all the aspects of the Xbox environment when developing XBMC for the Xbox.
Hardware
- Xbox only has a 733Mhz Intel Pentium III CPU @ 133 MHz FSB (supporting MMX/MMX2 and SEE)
- The Xbox only has 64MB of shared RAM (memory is shared between CPU and GPU)
- Xbox GPU is a nVidia NV2A @ 233 MHz (somewhat in between GeForce 2 and GeForce 3 series)
- The APU is a nVidia MPC (designed for Xbox, a.k.a. MPCX), which only support 48Khz-output
- The Xbox-chipset can be described in layman terms as something similar to the first nVidia nForce
- Most Xbox DVD-ROM drives are made by Philips/Thomson/Hitatchi and can't read CD-R media
- DVD-ROM drives made by Philips/Thomson/Hitatchi can not read CD/DVD subchannels either
- Samsung made Xbox DVD-ROM drives can read CD-R media and sub-channels
- DVD-ROM drives made by Philips/Thomson/Hitatchi can not read CD/DVD subchannels either
Operating-System
- The Xbox does not have a Operating-System per-se, instead it only has a basic BIOS
- Only a single process-thread (executable program) can run at any one time on the Xbox
- Xbox hard drive file-system (FATX) has many limitations, among them a maximum of 42-characters
- The Xbox has four USB ports but the Xbox SDK (a.k.a. XDK) does not contain a full USB-stack
- if wanted to add support for USB hardware-devices one would have to make it for oneselves
Compiling
- Xbox SDK (a.k.a. XDK) Software Development Kit (with libraries) is required to compile XBMC
- Also required to compile (and program in) XBMC is Microsoft Visual Studio .NET version 7.1
- XBMC's code also contain four multimedia-player cores which has to be compiled seperatly
Limitations
- XBMC can not currently play any audio/video files protected/encrypted with DRM (Digital Rights Management), such as music purchased from the iTunes Music Store, MSN Music or Audible.com. Workaround: Before playing the file in XBMC, first remove any DRM protection/encryption from the song or video with a third-party program before you try to play it, e.g: hymn, FreeMe, Unfuck, FairUse4WM, DRM2WMV or DRMDBG).
- UDF (Universal Disk Format) file-system limitation: XBMC only supports UDF version 1.02 (designed for DVD-Video media), which has a maximum file-size of 1GB (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 2GB file-size limitation, which cannot be bypassed.
- The ISO 9660 and UDF reader classes in XBMC does not support reading multisession authored CD/DVD-media. That is XBMC can only read the first sessions of a multisession burnt CD or DVD media disc.
- The Xbox built-in harddrive is formatted in FATX which has a 4GB 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. FAT does not support all 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 (NAS) device/box which support SMB/CIFS, FTP or UPnP and share them over a local-area-network instead.
- The USB flash drive (USB key-drives/memory-keys) reader/writer class used by XBMC currently has a few limitations as well. It is limited to USB flash drives and harddisks compatible with USB Mass Storage Device Class following the USB 1.1 standard, with a maximum size of 4GB. It can read and write to FATX formatted flash drives, but can only read FATs FAT12, FAT16 (including VFAT), and FAT32. NTFS formatted drives are not supported yet.
- With its 733 MHz Intel Pentium III Celeron and 64MB shared memory, the Xbox does not have enough hardware-resources (not fast enough CPU nor large enough RAM-memory) to play 720p/1080i resolution-native HDTV video (at 1280x720 and 1920x1080 pixels), (like WMV HD). XBMC can however upconvert all 480p/576p standard-resolution movies and output them to 720p or 1080i HDTV resolutions in better quality than most (if not all) HDTV's native function to upconvert video.
- Again with its 733 MHz Intel Pentium III Celeron and 64MB shared memory, the Xbox does not have enough hardware-resources (not fast enough CPU nor large enough RAM-memory) to play MPEG-4 AVC (H.264) encoded videos with Cabac and Deblocking if the video-resolution is higher than 352x288 pixels. Workaround: If you encode your MPEG-4 AVC (H.264) videos without Cabac and Deblocking then the Xbox hardware can handle up to 720x576 pixels video-resolution. It is best to encode your videos to MPEG-4 ASP (like DivX or XviD) instead, as then that video's native-resolution can be anything up to 960x540 pixels (also known as HRHD resolution).
Legality
While XBMC source code is made publicly available from the developers under an open source (GNU GPL) license, the developers themselves are legally unable to distribute executable versions of XBMC. Due to this, the only publicly available executable versions of XBMC are from third parties and are of dubious legal status.
Copyright
The XBMC software is licensed under the 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 XBMC into executable form, it is currently necessary to use the Microsoft XDK (Xbox Development Kit) which is only available to licensed developers and the resulting code may only be distributed by them. 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 binaries of XBMC to be compiled, it would require significant changes to the XBMC source code.
XBMC provides, for audio and video codecs which are not natively supported, a DLL loader forked from the "avifile" open source project which can load third-party made DLLs to decode unsupported formats. Where the user owns a licensed copy of the DLL, this is potentially legal. However, some third-party XBMC builds incorporate all available third-party DLLs that XBMC can support and the redistribution of these without a licence is copyright infringement.
Patents
For most popular video and audio codecs, XBMC includes native support through the libavcodec library from the FFmpeg project. Since this code is released under a free and open source license, it is legally redistributable. However, some of these compression methods, such as the popular MP3 format, are covered by patents in many countries. Absent a licence, this would make it illegal to redistribute versions of XBMC including support for these patented formats. This is a problem common among many open source multimedia projects/applications.
Other
XBMC also includes support for playing back DVD-Video movies encrypted using the CSS (Content Scramble System) encryption. The distribution of executable versions of XBMC containing this code is likely to fall afoul of the Digital Millennium Copyright Act in the U.S. and the EU Copyright Directive in the European Union member countries which have so far incorporated it into national law.
See also
- Media player, the definition of "mediaplayer" software
- Media center, the definition of "mediacenter" software
- MPlayer, the open source and cross-platform software XBMC uses as its main video player core
- FFmpeg, the audio and video codecs suit source code XBMC uses for all its player cores
- Comparison of (audio/video) media and DVD-Video players
- List of other software video players
- List of multimedia (audio/video) codecs
- Comparison of (audio/video) container formats
External links
Official sites
- XboxMediaCenter (XBMC) official website
- XboxMediaCenter (XBMC) official community forum (for posting help/support requests, bugs and development discussions)
- XboxMediaCenter (XBMC) 'new' official online-manual (wiki-based user-guide, uses the same Wiki-engine as Wikipedia)
- XboxMediaCenter (XBMC) 'old' official online-manual (wiki-based)
- XBMC official IRC chat room (on Freenode) (use an IRC client like mIRC to join the #xbmc channel)
- XBMC official IRC chat room (on EFnet) (use an IRC client like mIRC to join the #xbmc channel) - channel now muted, Freenode chat room (link above) remains active
Modifications
- XBMC Widget/Gadget Plug-in Scripts (Python plugins which adds additional features and functionality to XBMC)
- The official XBMC-skin download and developers site (XBMC Skinning Project)
- Unofficial XBMC skin download site (www.xbox-skins.net)
- Another unofficial XBMC skin download site (www.allxboxskins.com)
Articles & Reviews
- Review on tvharmony.com
- Review and HOW-TO on Popular Science (popsci.com)
- Review by Digital Intermediates
- Review in Hardcore Gamer Magazine (Volume 1, Issue 3, August 2005)
- O'Grady's PowerPage Article: Why Your Next iMac may be an Xbox
- GamePro.com: 6 ways to resurrect your Xbox
- XboxMediaCenter (XBMC) official SourceForge.net project (CVS/source-code/patches//tools/bug-tracker/feature-requests)
- freshmeat.net: Project details for The XboxMediaCenter Project
Third-party support forums and guides
- XBMC community forums @ xbox-scene.com (unofficial but affiliated by shared moderators)
- HOW-TO use a Mac to install/setup XBMC
- Transform an Xbox into the ultimate media center in 30-minutes A popular step-by-step HOW-TO guide for softmodding your Xbox
News
- "XBMC Win32 PC environment for skinners and python developers, XBMC was in November 2006 partially ported to Win32 to run on Microsoft Windows
- Only the GUI part for development purposes so far, however anyone can finish this port to make the software complete.
de:Xbox Media Center fr:Xbox Media Center it:Xbox Media Center no:Xbox Media Center pl:Xbox Media Center fi:Xbox Media Center sv:Xbox Media Center