9 ms·
Bringing Peer-to-Peer Streaming to the World.
- streptomycin 13y agoThe most common use of p2p streaming today is pirating live sporting events. Will there be any problems with using Swirl for that purpose?
- scrym 13y agoWhat's the difference with a mobile peercast ?
- jsonified 13y agoHi, I'm the author of swirl, such as it is. In principle there's nothing stopping you from streaming anything with PPSPP. The current erlang implementation could run on an android tablet for example. And if you had a pcell nearby http://venturebeat.com/2014/02/20/steve-perlman-pcell-is-real-and-it-will-change-the-world-interview/ http://venturebeat.com/2014/02/20/steve-perlman-pcell-is-rea... then b/w really wouldn't be a constraint. There's a fair bit of work remaining, in particular browser/client support is something I've not even considered, it's not my speciality. I'm sure VLC and Firefox etc would be awesome clients, but one step at a time.
- toggle 13y agoThis is exciting -- the only similar thing I'm aware of is BitTorrent Live. Seems like the same idea, except I'm pretty sure they have no intention of making BitTorrent Live open source. (The protocol is patented[0], even.) Seems like they've stopped developing it, too. [0] http://www.scribd.com/doc/132418122/bittorrent-live-patent http://www.scribd.com/doc/132418122/bittorrent-live-patent
- rdtsc 13y agoLooks interesting. Erlang VM (BEAM) is a good choice for this. It is also a hard problem. I copied a short description of the protocol from their GitHub overview doc: https://github.com/skunkwerks/swirl/blob/feature/docs/doc/overview.md https://github.com/skunkwerks/swirl/blob/feature/docs/doc/ov... --- PPSP is a transport protocol — it transfers a stream of opaque binary data from one location to another. It is unique amongst transport protocols as it is a many-to-many transfer protocol, that is, there is no single master server or endpoint that manages the data transfer. A swarm is a set of peers that are sharing (receiving and/or transferring) the same data, as a set of small chunks, which is identified by a unique cryptographic recursive hash of the data, called the Root Hash. ---
- Jxnathan 13y agoIs this like StreamNation or Put.io?
- jsonified 13y agoNot yet, but integrating with apps like dropbox or similar etc is a nice feature, I'll add that to the official list. PPSP's key features are: - live streaming using an innovative method that can be easily secured - optimised for fast start - using a standard protocol (UDP) for maximum carrier friendliness - efficient storage of hash tables via binmap - use of merkle trees for verifying content without needing the whole hash table to be transferred to every client - LEDBAT for playing fair with other bandwidth on the client connections More details on these https://github.com/skunkwerks/swirl/blob/feature/docs/doc/merkle.md https://github.com/skunkwerks/swirl/blob/feature/docs/doc/me... and also in the IETF spec http://tools.ietf.org/html/draft-ietf-ppsp-peer-protocol http://tools.ietf.org/html/draft-ietf-ppsp-peer-protocol
- foobarqux 13y agoHow does it compare to Bittorrent Live?
- jsonified 13y agoHey, I'm the lead developer of swirl project. I'd like to add that I wouldn't be working on this today without the support of NLNet who has provided a grant that allows me to work on swirl full time atm: http://nlnet.nl/project/swirl/ http://nlnet.nl/project/swirl/ Huge props.
- jbk 13y agoWith VLC, we've looked at various P2P video streaming technologies, like Tribler, Goalbit or Peercast. But so far, nothing actually worked correctly... If something standard (or close enough) actually emerges, and is not insane to integrate, this would change a lot of things :)
- jsonified 13y agoI'd love to talk further with you about that.
- fsckin 13y agoWhat do you think of Ace Player? It's a VLC branch adding BitTorrent support, which is a pretty slick addition. I've not been able to find their source code (wiki is down) but it looks decent.
- jbk 13y agoAce Player is unfortunately a GPL violation, so we're not sooo in love with it...
- yairharel 13y agoWe've built a fully functional peering solution at Kontiki and have millions of users (all on corporate networks). If you're interested in that sort of stuff come join us - we're hiring. http://www.kontiki.com/products/enterprise-content-delivery-network/ http://www.kontiki.com/products/enterprise-content-delivery-...
- jsonified 13y agoYour tech sounds cool but I don't think it's open source ;-). If you are at IETF89 in London next week, I'd love to talk P2P streaming. I'm @dch__ on twitter.
- anewhnaccount 13y agoThis is neat, but I think if peercasting software which is "good enough" can be built on top of WebRTC data connections (mandatory encryption and forced TCP are at least two drawbacks) I think it will win in terms of public adoption if is inferior in other technical aspects simply because people will end up using it without knowing it.
- rdtsc 13y agoThat doesn't include discovery, tracking. It would have to be developed on top. It also necessitates a pretty much full implementation of the WebRTC client signaling, which is not too trivial. BTW lately they are probably switching to use SCTP for data streaming. Encryption is still mandatory.
- b0z0 13y agoThis is great, and I'd love using it. What's the (if any) connection with WebRTC? And PPSPP is a pretty unfortunate choice of acronym... A Google search only unearths something about emulating a PlayStation Portable.
- jsonified 13y agoWe're going to be discussing WebRTC & PPSP together at the IETF meetup next week in London. I see WebRTC as a browser technology atm, so effectively a potential PPSP client and seeder. PPSP's aimed squarely at one-to-many sharing, so maybe there's some cross-over for video conferencing, but I'm not too familiar with it to say for the moment. BTW googling IETF acronyms isn't easy -- try UDP, TCP, HTTP... ;-). The protocol's described here http://tools.ietf.org/html/draft-ietf-ppsp-peer-protocol http://tools.ietf.org/html/draft-ietf-ppsp-peer-protocol and there's a corresponding tracker protocol that's not finalised either. These are drafts and in theory can change at any point in time.
- jmspring 13y agoWhich working group will the webrtc tie in be discussed?
- jsonified 13y agothe PPSP one, if you're going to be around at IETF let's discuss there. https://datatracker.ietf.org/meeting/89/agenda/ppsp/ https://datatracker.ietf.org/meeting/89/agenda/ppsp/
- anonymousDan 13y agoCan anyone who is interested go along and sit in on those sessions? I live in London and that sounds interesting.
- jsonified 13y agophysical attendance at the conference costs; it's minimal for a day session for a student, but its possible to listen in remotely.
- _zen 13y agoPlease please please let this lead to a P2P version of Twitch.tv. It would be amazing if gaming broadcasters could stream directly to their subscribers/followers, with very little latency (not the 30 second video lag Twitch adds). Broadcaster monetizing could be tricky, but definitely doable.
- panabee 13y agohow would you monetize?
- _zen 13y agoWell, if you had a website that cataloged and displayed the streams, much like Twitch.tv, then people can still find streams and subscribe to them in much the same way they do over at Twitch, while the site gets a cut. Additionally, broadcasters can still do Paypal donation links, like they do over at Twitch. Advertisements playing before videos, I'm not sure how it could be done, but it probably could be an overlay before the stream starts, or just a HTML5 video that loads first and must finish before the P2P stream begins.
- panabee 13y agocool, thanks. just curious what your thoughts were along monetization.
- jsonified 13y agoStreaming should be free, as should the protocol it's developed on top of, so anybody can use it, and trust it. Revenue streams come from supporting the back-end telcos (billing, active traffic mgmt & shaping), and content generators (disney/pixar etc), and a couple of other things I'm not ready to talk about just yet ;-).
- blantonl 13y agoIn this case, this is like asking how you would monetize TCP. This specification is a transport protocol and could apply to multiple use cases, not including video.
- DanBlake 13y agoTrue P2P streaming is more trouble than its worth. Take it from a guy who streams petabytes a month and has looked into it more times than most. P2P has 2 main advantages, both of which are voided by this implementation: 1: Better latency. If Joe talks directly to Sue, that is the fastest connection possible, as opposed to Joe -> Server -> Sue 2: The host saves on bandwidth costs Now, point #1 is moot because this needs servers to work for live broadcasts with lots of viewers. Also, even if server were not on the mix, you are still going to need your data relayed several times depending on how far from the source you are. You cannot hype away the fact that if a person is streaming a 1080p video at 1mb/s and the average peer has less than 5mb/s outbound, that the delay in getting that video to the thousandth viewer is going to be exponential unless you add in servers anyways. Point #2 is mostly moot for 2 reasons. The first reason is the cost of bandwidth is almost dirt cheap now. You can get a unmetered 1gb/s line for under $200/month. The second reason is that when you go full P2P, you lose out on a lot of value adds that people like. Things like transcoding for different sizes / mobile as well as DVR style seeking/recording. Another reason which I am sure will be hotly contested by the developers is that the quality will be more unreliable than a direct server. Last mile Peers are the worst for sending data. You want to typically be in a hub for direct peering to the various end points (comcast/tw/etc.) In most cases, Its unfortunately the case that P2P causes exponentially more headaches than it solves. Now, that is not to say that multicast does not have its place in the world. Just that its more of a feature to compliment traditional relay streaming vs being a product on its own.
- jsonified 13y agoPlease read the PPSP protocol more carefully, your statements are invalid. #1 if Jose is streaming to Sue, there's no middle server here. PPSP doesn't mandate a "central server", and I hope on the swirl website I can make this use case clear too. I'd love us to be able to stream from our devices to friends etc and not need to store everything on youtube or dropbox or some other indexed/sliced/diced/resold for profit system. With PPSP however you could have your home network be a peer, and pull down the content safe and sound with minimal impact to your phone. This type of sharing is something I would love to roll out for journalists in the field, protesters in Venezuela and Ukraine, where media suppression by the government and confiscation of phones is a sad reality. #2 Spoken like a true American ;-). This is not the reality for 99% of the internet users. I'm unable to get more than shoddy ADSL, even in a major European city. What about India, China, Africa, South America? Places where the monthly income is not even close to $200. Hopefully that will change over time, but it's not practical for most people today. I concur that live P2P streaming is tricky, and I'm sure you have plenty of practical experience to back that up. PPSP allows DVR style seek / record, the way the protocol is laid out makes that almost trivial. Now if your device at home doesn't have that content, you'll need to retrieve that from a peer, and I'd like to see that peer be close to you. Today, with bit torrent & friends, there's no standard implementation to refer to, so there's no way for an ISP to put an intermediary cache in to support the functionality you want, assuming you're paying a premium for that content, which is what is done with HTTP & friends on a regular basis. By having a standard protocol in place, multiple implementations & vendors can share the same caching peer technology within a single telco's network. Those peers can be located at edges within the exchange, similar to how major CDNs and google etc do today. Finally, PPSP is more than just streaming, it's a completely new transport layer protocol for the internet -- like HTTP, we're only just beginning to explore the use cases.
- jamii 13y agoI had some fun implementing binmaps a while ago - http://scattered-thoughts.net/blog/2012/01/03/binmaps-compressed-bitmaps/ http://scattered-thoughts.net/blog/2012/01/03/binmaps-compre... I originally encountered them in http://libswift.org/ http://libswift.org/ which was the predecessor to http://datatracker.ietf.org/doc/draft-ietf-ppsp-peer-protocol/ http://datatracker.ietf.org/doc/draft-ietf-ppsp-peer-protoco.... Both are very elegant simplifications of bittorrent and the IETF draft is pretty readable.
- jsonified 13y agoJamii I've seen your ocaml implementations, your code has been very instructive - thanks!
- jamii 13y agoHow do you manage in erlang without mutable arrays? It must be expensive to build it out of tuples.
- jsonified 13y agoatm I'm not doing live streaming so I can store & reload these from disk. I'm likely to end up using hipe_bifs:bitarray* or https://github.com/ferd/bitarray https://github.com/ferd/bitarray where those are not available, if needed. See http://erlang.org/pipermail/erlang-questions/2009-May/043485.html http://erlang.org/pipermail/erlang-questions/2009-May/043485... for an example.
- fungi 13y agohttp://www.sopcast.org/ http://www.sopcast.org/ has been around for years (decade?) Whenever Olympics or world cup rolls around ill download and watch. Found it to be pretty bloody good, too complicated for your mum but fine anyone with a little computer savvy. But it is 2014, we should be well on the way to awesome idiot proof webrtc goodness.
- Grue3 13y agoSopcast called. AcePlayer too.