Ticket #1400 (new enhancement)

Opened 4 years ago

Last modified 8 months ago

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

Change History

  Changed 4 years ago by gamester17@xbmc.org

Also checkout and this is P2P concept by 1-Click Media  http://www.1-click.com

"1-Click Media is based in Paris, France and provides peer-to-peer plug-in to top TV channel portal. 1-Click Media guarante Speed, Bandwidth savings and Browser experience".

1-Click Media is an hybrid mixing BitTorrent tracker and a HTTP webseed for each video (that way the video is always available even if there is not enough peers seeding online).

follow-up: ↓ 10   Changed 4 years ago by anonymous

Progressive downloading substantially hurts BT protocol performance. It causes an uneven, strongly skewed piece distribution and that reduces the overall download speed of the swarm. It should not be something the user can enable for this reason.

While you claim other clients support this, I have found no evidence for this.

On the contrary, if this were to become an option the user can enable, as opposed to a flag in the metadata (which would need to be coordinated as a BT BEP), the client is likely to get banned from private trackers for this reason.

Unless it becomes an official extension as a BT BEP, I very much doubt libtorrent will do this (see also the recent discussion on the mailing list).

follow-up: ↓ 4   Changed 4 years ago by anonymous

Checkout SwarmPlayer? and the EU-funded P2P-Next project:

EZTV (and probably some other torrent download sites) have now starting to add this new type of torrents files that allows you to stream their releases using the BitTorrent protocol so instead of having to wait for your torrents to finish downloading, you can stream them and watch them right away as you are downloading them instead of having to wait.

As I doubt that I am allowed to post a URL to the EZTV website here I'm not going to but I'm sure everyone here knows where to find it, or at least know how to use a search engine (just google "EZTV AND SwarmPlayer?").

SwarmPlayer? beta version can be downloaded here:  http://trial.p2p-next.org

You might also be interested in reading this pages:  http://www.pcpro.co.uk/news/213549/swarmplayer-brings-peertopeer-streaming.html  http://www.lifehacker.com.au/tags/swarmplayer  http://www.dslreports.com/shownews/EU-Aims-To-Replace-TV-with-Live-BitTorrent-Streaming-96234  http://torrentfreak.com/eztv-trials-streaming-080726/

in reply to: ↑ 3   Changed 4 years ago by anonymous

Replying to anonymous:

this new type of torrents files that allows you to stream their releases using the BitTorrent protocol

So where exactly is this "new" type of file documented then?

Those links have a bunch of marketing fluff but no details whatsoever. For instance, how does one detect whether a particular torrent should be downloaded progressively? If it is meant to be implemented by other clients it should be proposed as a BEP at bittorrent.org anyway.

  Changed 3 years ago by anonymous

SwarmPlayer? is now open source (coded in Python and has a MIT license):  http://trial.p2p-next.org/linux/

SwarmPlayer? is actually being developed by Bram Cohen, the BitTorrent protocol inventor and author of the mainline BitTorrent client.

EZTV and Mininova are are two very popular torrent sites that supports SwarmPlayer?:  http://eztv.it/tstream/tstreamhowto.html  http://forum.mininova.org/index.php?showtopic=235017441

  Changed 2 years ago by Silvia

FNu5sJ I am always excited to visit this blog in the evenings.Please churning hold the contents. It is very entertaining.

  Changed 20 months ago by Silvia

I am always excited to visit this blog in the evenings.Please churning hold the contents. It is very entertaining.

  Changed 17 months ago by private student loans

Keep posting stuff like this i really like it

  Changed 10 months ago by DeersevapsDog

starts to take effect in 30 minutes to 1 hour and its effect lasts for about 4 hours.

in reply to: ↑ 2   Changed 9 months ago by anonymous

Replying to anonymous:

Progressive downloading substantially hurts BT protocol performance.

Of what performance do you tell about if movies are seeded with 300+ seeds with overall throughput of tens of MB/s. I download movie in 30 minutes, then seed 10 hours -- there is *no* difference in performance. But there is difference if I wait 30 mins before start watching. Of course if there is small throughput I not set sequential download, because I understand that download time will be longer. Neither I set it on non-media files. So your will to maximize throughput based on assumption that people are dumb and will behave badly is ridiculous!

  Changed 9 months ago by anonymous

new utorrent has this feature and it works great. they allow connecting with video player to utorrent builtin video streaming server, which feeds the downloaded torrent data and controls the downloading process by keeping some buffer zone near the current playback position downloaded, while rest of file is still being downloaded randomly.

  Changed 8 months ago by OEM software download

BNhBlA Are you interested in webmaster`s income?!...

Note: See TracTickets for help on using tickets.