[vls-devel] P2P Video Streaming

Bastian Gerhard bastian at denshi360.com
Thu Nov 1 16:49:56 CET 2007


Hi Sean and Michael

Thanks for your input. Upon your advice I took a look at Miro, however, 
I'm afraid it is not very useful as it doesn't support streaming of 
video contents. It merely downloads the entire video via BitTorrent 
before it begins to play.

I was very surprised that the Miro team promotes this as a feature, 
putting the player on par with Joost: "Better than Joost. [...] Unlike 
tiny videos on websites like YouTube, Miro videos are usually very high 
quality and look great when watched full screen. Since Miro downloads 
videos completely before you watch, your videos will never skip or 
stutter while they are playing."

The concept of embedding BitTorrent and VLC into a stand-alone 
application seems to work though. Thats a good thing, although I 
recently came to the conclusion that BitTorrent does not really 
transport the data in a way I am looking for:

Basically I'm looking for a P2P video player that is suitable for 
traditional VOD (video-on-demand) streaming but also more or less 
real-time playback (with some seconds of delay) of live video contents.

The broadcast itself targets on domestic urban areas which behave like a 
high-speed local area network. Thus we don't need to worry about network 
topology because we don't aim to serve clients spread across the globe.

Now, I understand that the nature of P2P argues against video streaming 
because the chunks of data reach the client application randomly, i.e. 
it is possible that the client receives the end of the video first and 
not the starting sequence which is crucial for instant playback.

Another problem is that the majority of users is likely to stop watching 
the video after a minute or so. As a result, the starting chunks will be 
  widely spread while the availability of subsequent chunks gradually 
decreases.

A possible solution for these problems could be that the starting 
sequence will always be streamed directly from the main server. The rest 
of the video will be provided in chunks (a few MB in size each; a bit 
larger than normal P2P chunks because our network is faster and 
smaller). These chunks (and in particular those chunks that are required 
further down the road) are provided by dedicated P2P relay-stations 
until a certain repletion of chunks has been reached.

Does this make sense to you? What do you think about it?

Bastian


> I want to throw this out... have you thought about miro as a vehicle what is
> being discussed?
> 
> On 10/30/07, jambarama <jambarama at gmail.com> wrote:
>> This is the VLS dev list - as you know VLS has been merged into VLC.  I'd
>> recommend sending them the same question as to streaming capabilities after
>> reading their howto <http://www.videolan.org/doc/streaming-howto/en/>.  I
>> can comment that VLC network streaming typically simply streams the video
>> (in any of a long list of supported encapsulations) as tcp stream over http
>> or as a udp multicast or unicast.  I've never used VLC to stream anything
>> outside of my LAN, so I can't comment on that, but I see no reason why it
>> would work.
>>
>> I don't know what Joost and Zattoo build on, both are proprietary.  Since
>> both are video on demand services they are probably not built on bit
>> torrent.  Bittorrent typically can't guarantee you get the sequential data
>> fast enough (or "in time") - hence the new service announcement you've
>> pointed at is kind of a 1st and I don't understand how it works.
>>
>> I've not used Zattoo myself, but looking at wireshark logs while using
>> Joost it is clear there isn't much client uploading going on, so I'm certain
>> this isn't bit torrent.  I can't comment on Zattoo, but again it is quite
>> unlikely bittorrent is the means of transferring data.
>>
>> As for bit torrent, VLC does not support bit torrent streaming.  If you
>> can figure out how to prioritize the right parts bittorrent traffic in the
>> right order (so that there are no gaps in the video as it is playing) for
>> streaming, I suppose you could build bittorrent streaming into VLC (both VLC
>> and the bittorrent protocol are open source) and enough seeders were on a
>> torrent, it could work.  Currently I don't believe bittorrent streaming is
>> possible over VLC.
>>
>>
>> On 10/28/07, Bastian Gerhard <bastian at denshi360.com> wrote:
>>> Hey Michael
>>>
>>> I posted the following on the VLC mailinglist as a follow-up:
>>>
>>> Actually I'm interested in launching a development project for a live
>>> streaming plugin (not necessarily within the official VLC tree, but
>>> still under the GNU General Public License) involving strong P2P experts
>>> who are already familiar with the VLC, BitTorrent or equivalent
>>> technologies.
>>>
>>> The project would be financially sponsored by a IPTV content provider
>>> who requires the client for its services while having a great
>>> interest in leaving the sources open to the public.
>>>
>>> From my understanding BitTorrent is not the preferred solution for live
>>> broadcasts and a lot of research is being conducted in this field. Does
>>> it even work? What do Joost and Zattoo build on?
>>>
>>> Cheers
>>> Bastian
>>>
>>>
>>> Michael Trout schrieb:
>>>> We very interested in this please cc us in any discussions.
>>>>
>>>>
>>>> On 10/28/07, Bastian Gerhard < bastian at denshi360.com> wrote:
>>>>> Hi everybody
>>>>>
>>>>> I am new to the list and not yet very familiar with VLC's streaming
>>>>> capabilities but I was hoping that someone could give me a quick
>>> insight
>>>>> into what can already be done in regards to P2P streaming.
>>>>>
>>>>> As you might know, just recently BitTorrent announced a new service
>>>>> aiming for streaming video programs over the Internet:
>>>>> http://www.textually.org/tv/archives/2007/10/017574.htm
>>>>>
>>>>> Are there any sustainable P2P implementations of the BitTorrent
>>> protocol
>>>>> available for VLC? How feasible would it be to roll out a simplified
>>>>> open-source P2P video client that runs on Windows, MacOSX and Linux?
>>>>>
>>>>> Appreciating any input on this.
>>>>>
>>>>> Thanks a lot in advance
>>>>> Bastian



More information about the vls-devel mailing list