View Full Version : Always attempt to make multiple connections to an online source
Many of use have fast download speeds, usually faster than what most of the online streams/videos/music can download at. I'm sure many of you have used or are also aware of download managers which attempt to connect to the same resource multiple times in order to increase the speed of the download. Well, if xbmc would automatically try to connect multiple times to a resource to download the cache, it would probably keep me from ever buffering again!
ie:
a http video stream can download from the online source at 90kb/s
My internet connection download speed is 500kb/s
I could connect multiple times to the online stream and download all my parts quicker, thus actually using my faster speed to my advantage.
Yes, not all online resources allow for multiple connections from teh same IP, but xbmc should be able to determine this and at least attempt the faster alternative first. OR give us an option in settings to turn on this automatic attempt to connect multiple times...
The basic idea is to let xbmc harness the full power of a user's download speed, thus enjoying less buffering.
jmarshall
2008-08-21, 07:08
I guess this would be something that curl would have to implement. Perhaps you could see whether this is already supported within libcurl?
Cheers,
Jonathan
Why? I'd say its just a matter of changing the algorithm in which xbmc buffers, caches, and downloads the stream. I think will obvious if it is possible to connect multiple times to the same source if it allows the connection or not...
jmarshall
2008-08-21, 07:53
If libcurl can already automatically handle multiple connections to the same host for to obtain data, then all we have to do is request that it do so and supply a larger buffer, and leave it to do it's magic.
I have no idea whether curl can do this or not - thus the request for research. No point reinventing the wheel if all we have to do is flick a switch and we get it for free. :)
Certainly if it's not already available within libcurl then it could be looked at outside of libcurl (i.e. at the filesystem or caching levels.)
Cheers,
Jonathan
Gamester17
2008-08-22, 15:23
@plex, please submit a new feature request ticket to trac http://xbmc.org/trac
:nod:
http://xbmc.org/trac/ticket/4648
something would already exist if it were trivial. internet streaming video is a single tcp data stream for a reason. though i would say its possible. if the stream allowed seeking, you could open multiple connections and have them seek ahead. the issue is going to be seamless playback between these streams.
What protocol are you talking about when you say "internet streaming protocol"? I'm not so familiar with other protocols like rtsp..etc.. But on HTTP streams, I'd say its just a remotely hosted video file, nothing separates this "stream" from any other remotely hosted file vie HTTP in the way in which we can download and interact with it. I have a rudimentary understanding of the video streaming process, but I thought caching is another word for downloading, and the way it works is when we stream it we download a little piece each time to play just that piece.
Internet download manager can download some http://file.flv files and other ones just fine and can do it in multiple pieces while simultaneous connections are being made. Obviously, it can be done...? I honestly just don't understand your doubts on whether it can be done, because I have actually seen done so many times (if you are referring to HTTP hosted files) I don't mean to imply that it is super simple either.
To clarify:
What I'm really asking is, if I can DOWNLOAD it by connecting to it several times and simultaneously downloading it, whey can't I stream it using the same methodology? If its not possible, it would mean that "streaming" entails something different than "downloading".
streaming is nothing more than playing while downloading. downloading 100% and then playing is not streaming.