Ticket #1400 (new enhancement)
Progressive downloads for streaming playback
| Reported by: | gamester17@xbmc.org | Owned by: | rakshasa |
|---|---|---|---|
| Priority: | normal | Component: | libtorrent |
| Version: | Severity: | normal | |
| Keywords: | progressive sequential streaming downloads | Cc: |
Description
I would like to request support for "progressive downloads" for "streaming playback" in libTorrent.
In general, BitTorrent's non-contiguous download methods have prevented it from supporting "progressive downloads" (downloading sequentially) or "streaming playback". But recent comments by Bram Cohen suggests that streaming torrent downloads will soon be commonplace.
The reason for this feature would be to be able to use the BitTorrent P2P protocol for streaming broadcast and also online video viewing, making it possible to start playing back the video file before the download is complete. One practical example would be if a multimedia-player integrated the libTorrent BitTorrent client as backend for downloading torrents files, you point the player to a torrent and libTorrent/rTorrent starts to download the file progressivly and then the player automaticly start the playback once it has cached/buffered to certain procentage of the video, (similar to how Flash Video and the Flash Video player works).
Note! This "progressive download" method should of course be optional, and also note that I am not asking for a media-player to be integrated into libTorrent but for libTorrent to have this "progressive download" feature so that libTorrent can be integrated into third-party media-players and media-center software (I am personally thinking of XBMC, Boxee, and Plex/CenterStage?).
PS! I believe that both BitComet?, FoxTorrent? and µTorrent (a.k.a. uTorrent, which is also the Mainline BitTorrent client since version 6.0) do already support progressive downloads algorithm as an option. There are also media-players such as BitLet? and WeStream?, that prioritizes the bits at the beginning of each song/video, otherwise it will be impossible to stream anything before the entire track is downloaded, (however, like most other BitTorrent clients, both BitLet? and WeStream? also gives a high priority to rare pieces in order to guarantee an optimal swarm speed, so that unhealthy swarms are not created). So integrating a BitTorrent client with this "progressive download" method support should enable XBMC (and other audio/video-players and media centers alike) to begin playback of audio and video torrents without fully downloading them, depending on your download speed it would just cache 5% to 10% before starting the playback (given that it downloaded enough bits from the beginning of the file as well as enough rare pieces in order to guarantee an optimal swarm speed).
Additional peer2peer protocols/clients that feature progressive download support:
Peer Impact can stream movies with its progressive download algorithm and they prioritise the first chucks Peer Impact also needs about a 200kbps to stream the movies that start within 30 seconds after the download is initiated in most cases . http://www.peerimpact.com/mediaCenter/index.html
Also Neocast is also streaming movies and doing live p2p in closed beta . http://neokastblog.com/
There is also some interesting research going on in the streaming space at this current time . https://www.tribler.org/test_streaming/index.php?n=Site.Introduction
