tomeshnet / ipfs-live-streaming

Like HTTP live streaming, but with IPFS which is maybe better?
GNU General Public License v3.0
449 stars 74 forks source link

Added stability patches #22

Closed darkdrgn2k closed 6 years ago

darkdrgn2k commented 6 years ago

Ability to restart stream without restarting ffmpeg

5 second timeout in ipfs 15 seconds chunks

benhylau commented 6 years ago

Now I have rtmp-server, ipfs-server, ipfs-mirror all coming up and working together when the cluster is brought up. I can reliably yggdrasil-connect, then publish from OBS, both the RTMP and IPNS streams come up automatically:

root@ipfs-server:~# tail live/current.m3u8
#EXTINF:16.667000,
http://ipfs-server.mesh.world:8080/ipfs/QmeHPGesNrGwsTJSt25sekw42rkw6SPNnMbzTxUJUg9a76
#EXTINF:16.667000,
http://ipfs-server.mesh.world:8080/ipfs/QmTFCB2SrFcW86DCAVd9AVS53RELCsoVHv5xq2bKD8xjcU
#EXTINF:16.666000,
http://ipfs-server.mesh.world:8080/ipfs/QmZXWbSd7g2HsfNYoCWzsNiCDRNgtsGKDZsGH8fbypa7rr
#EXTINF:8.334000,
http://ipfs-server.mesh.world:8080/ipfs/QmUTW4LpUEJnYBVxwf8oVmycRaTr4zXpwersQuQTbxLJHh
#EXTINF:16.666000,
http://ipfs-server.mesh.world:8080/ipfs/QmPQxQ1ieULyCcVLDR78fADUMfs9gcXhScwg3SBJgz4g9H

The mirror is also pinning all the chunks:

root@ipfs-mirror:~# ipfs pin ls | tail
QmVrxf14mbeYPfLBgufW6vSGUmT2ecTNLPMdjB4SRkwRJf indirect
QmXnyL4DiRp9sH2BBrpdWuTzrT2puFevwwAHcppg1RDdZt indirect
QmQxgjTsPvJbYoDfpLfxrEU4p5ahJ2BZpEe5apBYWBbmsH indirect
QmSRwKfrFwt6WGHPzMNR6SKmEP1PaZAJyK2eQdgJDNMarG indirect
QmTpTvLNwuwaPNL6BpvQ3BhqCBSiBGKNRpmPmJgZT2T41z indirect
QmUcs9rTVnGeWy3Z6cj2my2zbzwA2Q7AWAYokz6PHXtuAx indirect
QmPc5iCWuuxD6hTHSLPgVSwiNCrTEcGAQD2LDUTj9K65LY indirect
QmPj7rJZ1AMgM1zjcqTDE5PT8XLq7GYZS2v1w3iPPqq588 indirect
Qmbvyeb2eSpurRDuCTNmguvVjvKYtgtwMXerhmvYvxLaUb indirect
QmeHaQTWqXWnPzNTQXMm4BiSpG4sK6R25QZw3KsgPKuyp7 indirect
root@ipfs-mirror:~# ipfs pin ls | grep QmZLMQ3R6fPLDYibogdsBjS5WpbnpBYjuUvqiGKzHbGBd6
QmZLMQ3R6fPLDYibogdsBjS5WpbnpBYjuUvqiGKzHbGBd6 recursive

The video player is giving me errors though (both Chrome and Brave):

screen shot 2018-06-30 at 1 57 46 am

For the mirror(s), I believe the following tasks remain:

darkdrgn2k commented 6 years ago

Can we do a f12 (more... Dev tools I think on mac) and check network to see what is being requested (ipns wise)

Is it an error or time out

benhylau commented 6 years ago

Before we do that, let's merge all these into master, and open a new PR with the client code in this repo. Then we can work off of that and change things as needed?